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)

Voir aussi

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR