IOCTL_WRITE_REGISTERS IOCTL (usbscan.h)
Menulis ke daftar perangkat USB, menggunakan pipa kontrol.
Kode utama
Buffer input
Arahkan ke struktur IO_BLOCK .
Panjang buffer input
Ukuran buffer input.
Buffer output
NULL
Panjang buffer output
Nol
Blok status
Irp->IoStatus.Status diatur ke STATUS_SUCCESS jika permintaan berhasil. Jika tidak, Status ke kondisi kesalahan yang sesuai sebagai kode NTSTATUS .
Keterangan
Parameter DeviceIoControl
Ketika fungsi DeviceloControl dipanggil dengan kode kontrol I/O IOCTL_WRITE_REGISTERS, pemanggil harus menentukan alamat struktur IO_BLOCK sebagai parameter lpInBuffer fungsi.
Dengan menggunakan konten IO_BLOCK, driver mode kernel membuat URB yang berisi struktur _URB_CONTROL_VENDOR_OR_CLASS_REQUEST .
Tabel berikut menunjukkan nilai yang ditetapkan untuk _URB_CONTROL_VENDOR_OR_CLASS_REQUEST anggota struktur.
Anggota struktur | Nilai yang ditandatangani |
---|---|
TransferFlags | 0 |
TransferBufferLength | pIoBlock-uLength> |
TransferBuffer | pIoBlock-pbyData> |
TransferBufferMDL | NULL |
RequestTypeReservedBits | 0x40 |
Permintaan | (pIoBlock->uLength> 1) ? 0x04 : 0x0C |
Nilai | (PENDEK) pIoBlock-uOffset> |
Indeks | pIoBlock-uIndex> |
Untuk informasi selengkapnya, lihat Mengakses Driver Kernel-Mode untuk Perangkat Gambar Diam.
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);
Persyaratan
Persyaratan | Nilai |
---|---|
Header | usbscan.h (termasuk Usbscan.h) |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk