Fungsi WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfDeviceConfigureWdmIrpDispatchCallback mendaftarkan fungsi panggilan balik driver EvtDeviceWdmIrpDispatch.
NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
[in] WDFDEVICE Device,
[in, optional] WDFDRIVER Driver,
[in] UCHAR MajorFunction,
PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
[in, optional] WDFCONTEXT DriverContext
);
[in] Device
Handel ke objek perangkat kerangka kerja.
[in, optional] Driver
Handel ke objek driver kerangka kerja driver yang diperoleh driver dari panggilan sebelumnya ke WdfDriverBuat atau WdfGetDriver. Parameter ini bersifat opsional.
[in] MajorFunction
Salah satu kode fungsi utama IRP berikut: IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ, IRP_MJ_WRITE.
EvtDeviceWdmIrpDispatch
Penunjuk ke fungsi panggilan balikdriver EvtDeviceWdmIrpDispatch.
[in, optional] DriverContext
Penunjuk yang tidak dijelajahi ke informasi konteks yang ditentukan driver yang diteruskan kerangka kerja ke fungsi panggilan balik driver EvtDeviceWdmIrpDispatch. Parameter ini bersifat opsional dan dapat berupa NULL.
Jika metode WdfDeviceConfigureWdmIrpDispatchCallback tidak mengalami kesalahan, metode tersebut mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:
Mengembalikan kode | Deskripsi |
---|---|
|
Nilai MajorFunction tidak valid disediakan. |
|
Memori tidak cukup tersedia. |
Driver memanggil metode WdfDeviceConfigureWdmIrpDispatchCallback untuk mendaftarkan fungsi panggilan balik EvtDeviceWdmIrpDispatch. Kerangka kerja kemudian memanggil EvtDeviceWdmIrpDispatch setiap kali menerima paket permintaan I/O (IRP) yang berisi kode fungsi utama IRP yang cocok dengan parameter MajorFunction dari metode ini.
Driver biasanya memanggil WdfDeviceConfigureWdmIrpDispatchCallback dari fungsi panggilan balik EvtDriverDeviceAdd.
Anda harus memanggil WdfDeviceConfigureWdmIrpDispatchCallback sekali untuk setiap fungsi MJ tempat driver ingin mendaftarkan fungsi panggilan balik. Dengan kata lain, beberapa panggilan diperlukan untuk mencegat beberapa fungsi MJ.
Driver mungkin memanggil metode WdfDeviceConfigureWdmIrpDispatchCallback karena alasan ini:
- Untuk memeriksa IRP dan menetapkannya ke antrean tertentu berdasarkan kriteria khusus domain, misalnya, mengarahkan semua I/O yang terkait dengan objek file ke antrean tertentu.
- Untuk memilih berdasarkan permintaan individual, perlu memanggil fungsi panggilan balik EvtIoInCallerContext.
Untuk informasi selengkapnya tentang menentukan antrean untuk RUN saat tiba, lihat Mengirimkan IRP ke Antrean I/O.
Syarat | Nilai |
---|---|
Platform Target | Universal |
versi KMDF Minimum | 1.11 |
versi UMDF Minimum | 2.17 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
aturan kepatuhan DDI | DriverBuat(kmdf) |