structure STORAGE_DEVICE_DESCRIPTOR (ntddstor.h)
La structure STORAGE_DEVICE_DESCRIPTOR est utilisée conjointement avec la demande de IOCTL_STORAGE_QUERY_PROPERTY pour récupérer les données de descripteur d’appareil de stockage pour un appareil.
Syntaxe
typedef struct _STORAGE_DEVICE_DESCRIPTOR {
ULONG Version;
ULONG Size;
UCHAR DeviceType;
UCHAR DeviceTypeModifier;
BOOLEAN RemovableMedia;
BOOLEAN CommandQueueing;
ULONG VendorIdOffset;
ULONG ProductIdOffset;
ULONG ProductRevisionOffset;
ULONG SerialNumberOffset;
STORAGE_BUS_TYPE BusType;
ULONG RawPropertiesLength;
UCHAR RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
Membres
Version
Indique la taille de la structure STORAGE_DEVICE_DESCRIPTOR . 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, y compris les chaînes d’ID 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 support, 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 (file d’attente marquée SCSI ou équivalent). Lorsque la valeur est FALSE, l’appareil ne prend pas en charge la mise en file d’attente marquée par SCSI ou l’équivalent. Le pilote STORPORT est responsable de la synchronisation des commandes.
VendorIdOffset
Spécifie le décalage d’octet 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’octet entre le début de la structure et 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’octet 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’octet entre le début de la structure et 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 de support de place pour le premier octet des données de propriété spécifiques du bus.
Remarques
Les applications et les pilotes de classe de stockage émettent une demande de contrôle de périphérique avec le code de contrôle d’E/S IOCTL_STORAGE_QUERY_PROPERTY pour récupérer cette structure, qui contient des informations sur un appareil cible. La structure ne peut être récupérée qu’à partir d’un FDO ; la tentative de récupération des propriétés de l’appareil à partir d’un adaptateur génère une erreur.
Une application ou un pilote peut déterminer la taille de mémoire tampon requise en cassant la structure STORAGE_DEVICE_DESCRIPTOR récupérée dans un STORAGE_DESCRIPTOR_HEADER, qui contient uniquement Version et Size.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntddstor.h (inclure Ntddstor.h) |