次の方法で共有


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
Request (pIoBlock->uLength> 1) ? 0x04: 0x0C
Value (SHORT)pIoBlock-uOffset>
Index pIoBlock-uIndex>

詳細については、「 静止画像デバイスの Kernel-Mode ドライバーへのアクセス」を参照してください。

要件

要件
Header usbscan.h (Usbscan.h を含む)