IOCTL_READ_REGISTERS IOCTL (usbscan.h)

Liest aus USB-Geräteregistern mithilfe der Steuerpipe.

Hauptcode

IRP_MJ_DEVICE_CONTROL

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)