Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi KsMethodHandlerWithAllocator melakukan penanganan yang sama seperti KsMethodHandler, dengan batasan yang sama, tetapi memungkinkan panggilan balik alokator opsional digunakan untuk menyediakan buffer untuk parameter. Jika digunakan, filter mungkin perlu membebaskan buffer dengan cara yang tidak konvensional. Perhatikan bahwa bendera IRP_BUFFERED_IO dan IRP_DEALLOCATE_BUFFER tidak diatur saat menggunakan alokator kustom.
Sintaksis
KSDDKAPI NTSTATUS KsMethodHandlerWithAllocator(
[in] PIRP Irp,
[in] ULONG MethodSetsCount,
[in] const KSMETHOD_SET *MethodSet,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG MethodItemSize
);
Parameter
[in] Irp
Menentukan IRP dengan permintaan metode yang sedang ditangani.
[in] MethodSetsCount
Menunjukkan jumlah struktur set metode yang diteruskan.
[in] MethodSet
Menentukan penunjuk ke daftar informasi kumpulan metode.
[in, optional] Allocator
Secara opsional menunjuk ke fungsi alokasi yang akan digunakan untuk mengalokasikan memori untuk menyimpan parameter metode.
[in, optional] MethodItemSize
Secara opsional berisi ukuran setiap struktur KSMETHOD_ITEM di setiap daftar metode. Item metode dapat diperluas untuk menyimpan informasi privat. Jika parameter ini nol, ukuran struktur diasumsikan normal. Jika lebih besar dari atau sama dengan struktur item metode, makro KSMETHOD_ITEM_IRP_STORAGE dapat digunakan untuk mengembalikan penunjuk ke item metode sehingga data kustom dapat diambil. Pada platform 64-bit, parameter ini harus kelipatan 8.
Mengembalikan nilai
Fungsi KsMethodHandler mengembalikan STATUS_SUCCESS jika berhasil, atau kesalahan khusus untuk metode yang ditangani jika tidak berhasil. Fungsi ini selalu mengatur IO_STATUS_BLOCK. Bidang informasi PIRP. Elemen IoStatus dalam IRP menjadi nol karena kesalahan internal, atau elemen diatur oleh handler metode. Fungsi tidak mengatur IO_STATUS_BLOCK. Bidang status atau melengkapi IRP.
Pada platform 64-bit, jika parameter PropertyItemSize bukan kelipatan 8, STATUS_INVALID_PARAMETER dikembalikan, dan panggilan gagal.
Persyaratan
| Syarat | Nilai |
|---|---|
| Platform Target | Universal |
| Header | ks.h (termasuk Ks.h) |
| Pustaka | Ks.lib |