Baca dalam bahasa Inggris

Bagikan melalui


Fungsi WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfDeviceConfigureWdmIrpDispatchCallback mendaftarkan fungsi panggilan balik driver EvtDeviceWdmIrpDispatch.

Sintaksis

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 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.

Mengembalikan nilai

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

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

Komentar

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.

Persyaratan

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)

Lihat juga

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue