Fungsi KsSetMajorFunctionHandler (ks.h)

Fungsi KsSetMajorFunctionHandler mengatur handler untuk fungsi utama tertentu untuk menggunakan pengiriman internal. Ini merutekan melalui KSDISPATCH_TABLE yang terkandung dalam header objek buram untuk menjadi elemen pertama dalam struktur yang diarahkan oleh FsContext dalam objek file. Pengiriman mengasumsikan tabel dan struktur FsContext diinisialisasi oleh perangkat menggunakan KsAllocateObjectHeader.

Sintaks

KSDDKAPI NTSTATUS KsSetMajorFunctionHandler(
  [in] PDRIVER_OBJECT DriverObject,
  [in] ULONG          MajorFunction
);

Parameter

[in] DriverObject

Menentukan objek driver yang fungsi utamanya akan ditangani.

[in] MajorFunction

Menentukan pengidentifikasi fungsi utama yang akan ditangani. Ini mengatur penunjuk fungsi utama di objek driver ke fungsi internal yang kemudian dikirim ke fungsi KSDISPATCH_TABLE . Penunjuk ke tabel ini diasumsikan sebagai elemen pertama dalam struktur yang ditujukkan oleh FsContext dalam objek file dari IRP tertentu yang dikirim. Pengidentifikasi fungsi utama yang valid seperti yang tercantum.

Pengidentifikasi Deskripsi
IRP_MJ_CREATE Create IRP. Dalam hal ini, permintaan buat dapat digunakan untuk membuat instans baru filter, atau untuk membuat beberapa objek seperti pin di bawah filter atau jam di bawah pin. Ini mengasumsikan bahwa elemen pertama dalam tingkat objek driver berisi struktur KSDEVICE_HEADER yang digunakan untuk menemukan jenis objek yang akan dibuat, berdasarkan nama yang diteruskan. Jika objek file induk ditentukan, maka objek tersebut KSDISPATCH_TABLE. ChildCreateHandlerTable di FsContext dilihat untuk menentukan handler apa yang akan digunakan untuk membuat, atau menggunakan tabel objek perangkat.
IRP_MJ_CLOSE Tutup IRP.
IRP_MJ_DEVICE_CONTROL IRP kontrol perangkat.
IRP_MJ_READ Baca IRP.
IRP_MJ_WRITE Tulis IRP.
IRP_MJ_FLUSH_BUFFERS Siram IRP.
IRP_MJ_QUERY_SECURITY Mengkueri informasi keamanan.
IRP_MJ_SET_SECURITY Atur informasi keamanan.
KSDISPATCH_FASTIO Bendera ini dapat ditambahkan ke pengidentifikasi MajorFunction untuk menentukan bahwa entri mengacu pada tabel pengiriman I/O yang cepat, bukan entri fungsi utama yang khas. Ini hanya berlaku dengan IRP_MJ_READ, IRP_MJ_WRITE, atau IRP_MJ_DEVICE_CONTROL. Driver bertanggung jawab untuk membuat tabel DriverObject-FastIoDispatch>. Seperti halnya pengiriman normal, jika handler diatur untuk objek driver, semua objek file harus menangani I/O cepat itu, bahkan jika entri hanya menunjuk ke DispatchFastIoDeviceControlFailure atau fungsi serupa.

Menampilkan nilai

Mengembalikan STATUS_SUCCESS jika pengidentifikasi MajorFunction valid.

Keterangan

Jika handler fungsi utama diatur untuk objek driver, semua objek file harus menangani fungsi utama tersebut, bahkan jika entri hanya menunjuk ke KsDispatchInvalidDeviceRequest.

KSDISPATCH_FASTIO

Bendera ini dapat digunakan untuk menentukan bahwa entri I/O cepat harus diatur daripada entri berbasis IRP.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ks.h (termasuk Ks.h)
Pustaka Ks.lib