IOCTL_READ_REGISTERS IOCTL (usbscan.h)
Liest aus USB-Geräteregistern mithilfe der Steuerpipe.
Hauptcode
Eingabepuffer
Zeiger auf eine IO_BLOCK-Struktur .
Länge des Eingabepuffers
Größe des Eingabepuffers.
Ausgabepuffer
Zeiger auf einen Puffer zum Empfangen von Registerinhalten.
Länge des Ausgabepuffers
Größe des Ausgabepuffers. Der Wert muss mit dem Inhalt des uLength-Elements der IO_BLOCK-Struktur übereinstimmen.
Statusblock
Irp->IoStatus.Status wird auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls wird Status zur entsprechenden Fehlerbedingung als NTSTATUS-Code verwendet.
Hinweise
DeviceIoControl-Parameter
Wenn die DeviceloControl-Funktion mit dem IOCTL_READ_REGISTERS E/A-Steuerungscode aufgerufen wird, muss der Aufrufer die Adresse einer IO_BLOCK-Struktur als lpInBuffer-Parameter der Funktion angeben.
Mithilfe der IO_BLOCK Inhalte erstellt der Kernelmodustreiber eine URB , die eine _URB_CONTROL_VENDOR_OR_CLASS_REQUEST-Struktur enthält.
In der folgenden Tabelle sind die Werte angegeben, die _URB_CONTROL_VENDOR_OR_CLASS_REQUEST Strukturmember zugewiesen sind.
Strukturmember | Zugewiesener Wert |
---|---|
TransferFlags | 1 |
TransferBufferLength | pIoBlock-uLength> |
TransferBuffer | Das Argument lpOutBuffer von DeviceIoControl. |
TransferBufferMDL | NULL |
RequestTypeReservedBits | 0xC0 |
Anforderung | (pIoBlock->uLength> 1) ? 0x04 : 0x0C |
Wert | (KURZ)pIoBlock-uOffset> |
Index | pIoBlock-uIndex> |
Weitere Informationen finden Sie unter Zugreifen auf Kernel-Mode Treiber für Standbildgeräte.
Anforderungen
Anforderung | Wert |
---|---|
Header | usbscan.h (include Usbscan.h) |