IOCTL_WRITE_REGISTERS IOCTL (usbscan.h)
Schreibt mithilfe der Steuerpipe in USB-Geräteregister.
Hauptcode
Eingabepuffer
Zeiger auf eine IO_BLOCK-Struktur .
Länge des Eingabepuffers
Größe des Eingabepuffers.
Ausgabepuffer
NULL
Länge des Ausgabepuffers
Null
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_WRITE_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.
Strukturelement | Wert sssigned |
---|---|
TransferFlags | 0 |
TransferBufferLength | pIoBlock-uLength> |
TransferBuffer | pIoBlock-pbyData> |
TransferBufferMDL | NULL |
RequestTypeReservedBits | 0x40 |
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.
DWORD cbRet;
BOOL bRet;
IO_BLOCK IoBlock;
OVERLAPPED overlapped;
IoBlock.uOffset = (BYTE)byOffset;
IoBlock.uLength = (BYTE)byNbOfReg;
IoBlock.pbyData = pbyData;
memset(&overlapped, 0, sizeof(OVERLAPPED));
overlapped.hEvent =
CreateEvent(NULL, // pointer to security attributes
// WIN95 ignores this parameter
FALSE, // automatic reset
FALSE, // initialize to not signaled
NULL); // pointer to the event-object name
bRet = DeviceIoControl( DeviceHandle,
(DWORD) IOCTL_WRITE_REGISTERS,
&IoBlock,
sizeof(IO_BLOCK),
NULL,
0,
&cbRet,
&overlapped);
if( bRet == TRUE )
{
WaitForSingleObject(overlapped.hEvent, INFINITE);
// we do not the test, the result is zero
}
CloseHandle(overlapped.hEvent);
Anforderungen
Anforderung | Wert |
---|---|
Header | usbscan.h (include Usbscan.h) |