IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)
Un pilote peut utiliser IOCTL_STORAGE_QUERY_PROPERTY pour retourner les propriétés d’un périphérique de stockage ou d’une carte. La demande indique le type d’informations à récupérer, telles que les données d’enquête pour un appareil ou des fonctionnalités et des limitations d’un adaptateur. IOCTL_STORAGE_QUERY_PROPERTY pouvez également être utilisé pour déterminer si le pilote de port prend en charge une propriété particulière ou quels champs du descripteur de propriété peuvent être modifiés avec une demande de propriété de modification suivante.
Code principal
Mémoire tampon d’entrée
Parameters.DeviceIoControl.InputBufferLength indique la taille, en octets, de la mémoire tampon de paramètres à Irp->AssociatedIrp.SystemBuffer, qui doit être >= sizeof(STORAGE_PROPERTY_QUERY).
Irp->AssociatedIrp.SystemBuffer contient STORAGE_PROPERTY_QUERY données qui spécifient s’il faut interroger l’appareil ou l’adaptateur, le type de requête à effectuer et tous les paramètres supplémentaires requis pour la requête, tels que le code de page d’une page de sens de mode SCSI spécifique. Les propriétés de l’appareil doivent être récupérées uniquement à partir d’un appareil ; la tentative de récupération des propriétés de l’appareil à partir d’un adaptateur entraîne une erreur.
Parameters.DeviceIoControl.OutputBufferLength indique le nombre d’octets pouvant être écrits dans Irp->AssociatedIrp.SystemBuffer. OutputBufferLength peut être égal à zéro pour déterminer si une propriété existe sans récupérer ses données.
Longueur de la mémoire tampon d’entrée
Parameters.DeviceIoControl.InputBufferLength indique la taille, en octets, de la mémoire tampon de paramètres à Irp->AssociatedIrp.SystemBuffer, qui doit être >= sizeof(STORAGE_PROPERTY_QUERY).
Mémoire tampon de sortie
Le pilote retourne des données de requête à la mémoire tampon à Irp->AssociatedIrp.SystemBuffer. Des quantités variables de données spécifiques au bus peuvent être ajoutées à la structure.
Longueur de la mémoire tampon de sortie
Convertissez la structure en STORAGE_DESCRIPTOR_HEADER et vérifiez son Taille membre pour déterminer le nombre d’octets requis par la structure.
Bloc d’état
Le champ Informations est défini sur le nombre d’octets retournés. Le champ Status est défini sur STATUS_SUCCESS, ou éventuellement sur STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER ou STATUS_NOT_SUPPORTED.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ntddstor.h (include Ntddstor.h) |