IOCTL_READ_REGISTERS IOCTL(usbscan.h)
제어 파이프를 사용하여 USB 디바이스 레지스터에서 읽습니다.
주 코드
입력 버퍼
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 구조체 멤버에 할당된 값을 나타냅니다.
Structure Member | 할당된 값 |
---|---|
TransferFlags | 1 |
TransferBufferLength | pIoBlock-uLength> |
TransferBuffer | DeviceIoControl의 lpOutBuffer 인수입니다. |
TransferBufferMDL | NULL |
RequestTypeReservedBits | 0xC0 |
요청 | (pIoBlock->uLength> 1) ? 0x04: 0x0C |
값 | (SHORT) pIoBlock-uOffset> |
Index | pIoBlock-uIndex> |
자세한 내용은 스틸 이미지 디바이스용 Kernel-Mode 드라이버 액세스를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | usbscan.h(Usbscan.h 포함) |