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 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk