共用方式為


IOCTL_READ_REGISTERS IOCTL (usbscan.h)

使用控制管道從 USB 裝置緩存器讀取。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

IO_BLOCK 結構的指標。

輸入緩衝區長度

輸入緩衝區的大小。

輸出緩衝區

要接收快取器內容的緩衝區指標。

輸出緩衝區長度

輸出緩衝區的大小。 值必須符合 IO_BLOCK 結構 之 uLength 成員的內容。

狀態區塊

Irp->如果要求成功,IoStatus.Status 會設定為 STATUS_SUCCESS。 否則, 狀態 為適當的錯誤狀況為 NTSTATUS 程式碼。

備註

DeviceIoControl 參數

使用 IOCTL_READ_REGISTERS I/O 控制項程式代碼呼叫 DeviceloControl 函式時,呼叫端必須將 IO_BLOCK 結構的位址指定為函式 的 lpInBuffer 參數。

使用IO_BLOCK內容,核心模式驅動程式會建立包含_URB_CONTROL_VENDOR_OR_CLASS_REQUEST結構的URB

下表指出指派給_URB_CONTROL_VENDOR_OR_CLASS_REQUEST結構成員的值。

結構成員 已指派的值
TransferFlags 1
TransferBufferLength pIoBlock-uLength>
TransferBuffer DeviceIoControllpOutBuffer 自變數。
TransferBufferMDL NULL
RequestTypeReservedBits 0xC0
要求 (pIoBlock-uLength>> 1) ? 0x04: 0x0C
(SHORT) pIoBlock-uOffset>
Index pIoBlock-uIndex>

如需詳細資訊,請參閱 存取仍然映像裝置的 Kernel-Mode 驅動程式

規格需求

需求
標頭 usbscan.h (包含 Usbscan.h)