IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME IOCTL (usbioctl.h)
La demande de contrôle d’E/S IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME récupère le nom de clé de Registre du pilote associé à l’appareil connecté au port indiqué.
IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME est une demande de contrôle d’E/S en mode utilisateur. Cette requête cible l’appareil du hub USB (GUID_DEVINTERFACE_USB_HUB).
Code principal
Mémoire tampon d’entrée
Le membre AssociatedIrp.SystemBuffer pointe vers une structure USB_NODE_CONNECTION_DRIVERKEY_NAME allouée par l’utilisateur. Lors de l’entrée, le ConnectionIndex membre de cette structure contient le nombre de ports auxquels l’appareil est connecté.
Longueur de la mémoire tampon d’entrée
Taille d’une structure USB_NODE_CONNECTION_DRIVERKEY_NAME.
Mémoire tampon de sortie
En sortie, le DriverKeyName membre de la structure USB_NODE_CONNECTION_DRIVERKEY_NAME à AssociatedIrp.SystemBuffer contient le nom de clé de pilote associé à l’appareil connecté au port indiqué par ConnectionIndex.
Le membre ActualLength indique la longueur, en octets, du nom de clé de pilote. Le membre Parameters.DeviceIoControl.OutputBufferLength indique la taille, en octets, de l’ensemble de la structure USB_NODE_CONNECTION_DRIVERKEY_NAME.
Longueur de la mémoire tampon de sortie
Taille d’une structure USB_NODE_CONNECTION_DRIVERKEY_NAME.
Bloc d’état
La pile USB définit Irp->IoStatus.Status sur STATUS_SUCCESS si la requête réussit. Sinon, la pile USB définit 'état à la condition d’erreur appropriée, telle que STATUS_INVALID_PARAMETER ou STATUS_INSUFFICIENT_RESOURCES.
Si l’appelant alloue une mémoire tampon de sortie suffisamment grande pour contenir toutes les données de sortie, IoStatus.Information est égal à la valeur de ActualLength. Si la mémoire tampon de sortie est suffisamment grande pour contenir toutes les données de sortie, IoStatus.Information est égale à sizeof(USB_NODE_CONNECTION_DRIVERKEY_NAME)
.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | usbioctl.h (include Usbioctl.h) |