Bagikan melalui


Fungsi WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfDeviceConfigureWdmIrpDispatchCallback mendaftarkan fungsi panggilan balik EvtDeviceWdmIrpDispatch driver.

Sintaks

NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
  [in]           WDFDEVICE                      Device,
  [in, optional] WDFDRIVER                      Driver,
  [in]           UCHAR                          MajorFunction,
                 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
  [in, optional] WDFCONTEXT                     DriverContext
);

Parameter

[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 WdfDriverCreate 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 balik EvtDeviceWdmIrpDispatch driver.

[in, optional] DriverContext

Penunjuk yang tidak ditik ke informasi konteks yang ditentukan driver yang diteruskan kerangka kerja ke fungsi panggilan balik EvtDeviceWdmIrpDispatch driver. Parameter ini bersifat opsional dan dapat berupa NULL.

Mengembalikan nilai

Jika metode WdfDeviceConfigureWdmIrpDispatchCallback tidak mengalami kesalahan, metode tersebut mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Nilai MajorFunction tidak valid disediakan.
STATUS_INSUFFICIENT_RESOURCES
Memori tidak cukup tersedia.

Keterangan

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 yang drivernya ingin mendaftarkan fungsi panggilan balik. Dengan kata lain, beberapa panggilan diperlukan untuk mencegat beberapa fungsi MJ.

Driver mungkin memanggil metode WdfDeviceConfigureWdmIrpDispatchCallback karena alasan berikut:

  • 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 runtime integrasi saat runtime integrasi tiba, lihat Mengirimkan IRP ke Antrean I/O.

Persyaratan

Persyaratan Nilai
Target Platform 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 DriverCreate(kmdf)

Lihat juga

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue