IRP_MJ_DEVICE_CONTROL

Setiap driver yang objek perangkatnya termasuk dalam jenis perangkat tertentu (lihat Menentukan Jenis Perangkat) diperlukan untuk mendukung permintaan ini dalam rutinitas DispatchDeviceControl , jika ada satu set kode kontrol I/O (IOCTLs) yang ditentukan sistem. Untuk info selengkapnya tentang IOCTLs, lihat Pengenalan Kode Kontrol I/O.

Driver tingkat tinggi biasanya meneruskan permintaan ini ke driver perangkat yang mendasarinya. Setiap driver perangkat dalam tumpukan driver diasumsikan mendukung permintaan ini, bersama dengan satu set IOCTLs khusus tipe perangkat, publik atau pribadi. Untuk informasi selengkapnya tentang IOCTLs untuk jenis perangkat tertentu, lihat dokumentasi khusus tipe perangkat di Microsoft Windows Driver Kit (WDK).

Saat Dikirim

Kapan saja setelah berhasil menyelesaikan permintaan buat.

Parameter Input

Kode kontrol I/O terdapat di Parameters.DeviceIoControl.IoControlCode di lokasi tumpukan I/O driver IRP.

Parameter input lainnya bergantung pada nilai kode kontrol I/O. Untuk informasi selengkapnya, lihat Deskripsi Buffer untuk Kode Kontrol I/O.

Parameter Keluaran

Parameter output bergantung pada nilai kode kontrol I/O. Untuk informasi selengkapnya, lihat Deskripsi Buffer untuk Kode Kontrol I/O.

Operasi

Driver menerima kode kontrol I/O ini karena utas mode pengguna telah memanggil fungsi Microsoft Win32 DeviceIoControl , atau driver mode kernel tingkat yang lebih tinggi telah menyiapkan permintaan. Mungkin, driver mode pengguna telah memanggil DeviceIoControl, meneruskan kode kontrol I / O yang ditentukan driver (juga disebut pribadi), untuk meminta dukungan khusus perangkat atau driver dari driver perangkat kernel-mode yang digabungkan erat.

Saat menerima permintaan kontrol I/O perangkat, driver tingkat yang lebih tinggi biasanya meneruskan IRP ke driver berikutnya yang lebih rendah. Namun, ada beberapa pengecualian untuk praktik ini. Misalnya, driver kelas yang telah menyimpan informasi konfigurasi yang diperoleh dari driver port yang mendasarinya dapat menyelesaikan permintaan IOCTL_XXX tertentu tanpa meneruskan IRP ke driver port yang sesuai.

Saat menerima permintaan kontrol I/O perangkat, driver perangkat memeriksa kode kontrol I/O untuk menentukan cara memenuhi permintaan. Untuk sebagian besar kode kontrol I /O publik, driver perangkat mentransfer sejumlah kecil data ke atau dari buffer di Irp-AssociatedIrp.SystemBuffer>.

Untuk informasi umum tentang kode kontrol I/O untuk permintaan IRP_MJ_DEVICE_CONTROL atau IRP_MJ_INTERNAL_DEVICE_CONTROL , lihat Menggunakan Kode Kontrol I/O. Lihat juga Permintaan I/O Type-Specific Perangkat.

Persyaratan

Header

Wdm.h (termasuk Wdm.h, Ntddk.h, atau Ntifs.h)

Lihat juga

DispatchDeviceControl