Infos wmi des disques durs (lien lecteur logique / lecteur physique)

Description

Encore un titre obscur... j'ai pas trouvé mieux :p

En fait, il s'agit de manipuler WMI (je ne connais que très peu WMI)
afin d'établir le lien entre lecteur logique (C: par exemple) et la classe WMI représentant le lecteur physique.

Il s'agit d'aider un peu la discussion débutée ici:
http://www.vbfrance.com/code.aspx?ID=27883

Source / Exemple :


Private Function GetDiskDriveFromLogical(ByRef vsDriveLetter As String) As Object
Dim sBuffer As String
Dim oWMI As Object
Dim oItem As Object
Dim oCol As Object
    If LenB(vsDriveLetter) Then
        sBuffer = Left$(vsDriveLetter, 1)
    Else
        sBuffer = Left$(App.Path, 1)
    End If
    
    Set oWMI = GetObject("winmgmts:root\cimv2")
    If Not Nothing Is oWMI Then
        '# On récupère la partition liée au lecteur logique
        Set oCol = oWMI.ExecQuery("REFERENCES OF {Win32_LogicalDisk='" & sBuffer & ":'} WHERE ResultClass = Win32_LogicalDiskToPartition")
        For Each oItem In oCol
            '# On passe du lien, à la partition
            Set oItem = GetObject("winmgmts:" & oItem.Antecedent)
            Exit For
        Next oItem
        
        '# On refait la même, on passe de la partition au disque physique
        sBuffer = oItem.DeviceId
        Set oCol = oWMI.ExecQuery("REFERENCES OF {Win32_DiskPartition='" & sBuffer & "'} WHERE ResultClass=Win32_DiskDriveToDiskPartition")
        For Each oItem In oCol
            '# On passe du lien "partition/disque" au disque
            Set GetDiskDriveFromLogical = GetObject("winmgmts:" & oItem.Antecedent)
            Exit For
        Next oItem
    End If
End Function

Conclusion :


Y'a peut être plus simple, que de faire toutes ces requêtes. Comme énoncé, je ne manipule que très occasionnellement WMI, donc...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.