STORAGE_DEVICE_DESCRIPTOR structure (winioctl.h)
Utilisé conjointement avec le code de contrôle IOCTL_STORAGE_QUERY_PROPERTY pour récupérer les données de descripteur de dispositif de stockage d’un dispositif.
Syntaxe
typedef struct _STORAGE_DEVICE_DESCRIPTOR {
DWORD Version;
DWORD Size;
BYTE DeviceType;
BYTE DeviceTypeModifier;
BOOLEAN RemovableMedia;
BOOLEAN CommandQueueing;
DWORD VendorIdOffset;
DWORD ProductIdOffset;
DWORD ProductRevisionOffset;
DWORD SerialNumberOffset;
STORAGE_BUS_TYPE BusType;
DWORD RawPropertiesLength;
BYTE RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
Membres
Version
Contient la taille de cette structure, en octets. La valeur de ce membre change à mesure que des membres sont ajoutés à la structure.
Size
Spécifie la taille totale du descripteur, en octets, qui peut inclure l’ID de fournisseur, l’ID de produit, la révision du produit, les chaînes de numéro de série de l’appareil et les données spécifiques au bus qui sont ajoutées à la structure.
DeviceType
Spécifie le type d’appareil tel que défini par la spécification SCSI (Small Computer Systems Interface).
DeviceTypeModifier
Spécifie le modificateur de type d’appareil, le cas échéant, tel que défini par la spécification SCSI. S’il n’existe aucun modificateur de type d’appareil, ce membre est égal à zéro.
RemovableMedia
Indique quand TRUE que le média de l’appareil (le cas échéant) est amovible. Si l’appareil n’a pas de média, ce membre doit être ignoré. Lorsque la valeur est FALSE , le média de l’appareil n’est pas amovible.
CommandQueueing
Indique quand TRUE que l’appareil prend en charge plusieurs commandes en attente (mise en file d’attente marquée SCSI ou équivalent). Si la valeur est FALSE, l’appareil ne prend pas en charge la mise en file d’attente marquée par SCSI ou l’équivalent.
VendorIdOffset
Spécifie le décalage d’octets entre le début de la structure et une chaîne ASCII terminée par null qui contient l’ID de fournisseur de l’appareil. Si l’appareil n’a pas d’ID de fournisseur, ce membre est égal à zéro.
ProductIdOffset
Spécifie le décalage d’octets du début de la structure vers une chaîne ASCII terminée par null qui contient l’ID de produit de l’appareil. Si l’appareil n’a pas d’ID de produit, ce membre est égal à zéro.
ProductRevisionOffset
Spécifie le décalage d’octets entre le début de la structure et une chaîne ASCII terminée par null qui contient la chaîne de révision du produit de l’appareil. Si l’appareil n’a pas de chaîne de révision de produit, ce membre est égal à zéro.
SerialNumberOffset
Spécifie le décalage d’octets du début de la structure vers une chaîne ASCII terminée par null qui contient le numéro de série de l’appareil. Si l’appareil n’a pas de numéro de série, ce membre est égal à zéro.
BusType
Spécifie une valeur d’énumérateur de type STORAGE_BUS_TYPE qui indique le type de bus auquel l’appareil est connecté. Cela doit être utilisé pour interpréter les propriétés d'appareil brutes à la fin de cette structure (le cas échéant).
RawPropertiesLength
Indique le nombre d’octets de données spécifiques au bus qui ont été ajoutées à ce descripteur.
RawDeviceProperties[1]
Contient un tableau de longueur qui sert d’espace réservé pour le premier octet des données de propriété spécifiques du bus.
Remarques
Une application peut déterminer la taille de mémoire tampon requise en émettant un code de contrôle IOCTL_STORAGE_QUERY_PROPERTY en passant une structure de STORAGE_DESCRIPTOR_HEADER pour la mémoire tampon de sortie, puis en utilisant le membre Size retourné de la structure STORAGE_DESCRIPTOR_HEADER pour allouer une mémoire tampon de la taille appropriée.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | winioctl.h (inclure Windows.h) |