Fungsi KsPropertyHandlerWithAllocator (ks.h)
KsPropertyHandlerWithAllocator melakukan penanganan yang sama dengan KsPropertyHandler, 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. bendera IRP_BUFFERED_IO dan IRP_DEALLOCATE_BUFFER tidak diatur saat menggunakan alokator kustom.
Sintaks
KSDDKAPI NTSTATUS KsPropertyHandlerWithAllocator(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG PropertyItemSize
);
Parameter
[in] Irp
Menentukan IRP dengan permintaan properti yang sedang ditangani.
[in] PropertySetsCount
Menentukan jumlah set properti yang diteruskan.
[in] PropertySet
Menentukan penunjuk ke array informasi kumpulan properti.
[in, optional] Allocator
Secara opsional menunjuk ke fungsi alokasi yang digunakan untuk mengalokasikan memori untuk menyimpan parameter properti.
[in, optional] PropertyItemSize
Secara opsional berisi ukuran setiap struktur KSPROPERTY_ITEM dalam properti. Item properti dapat diperluas untuk menyimpan informasi privat. Jika parameter ini nol, ukuran struktur diasumsikan normal. Jika lebih besar dari atau sama dengan struktur item properti, makro KSPROPERTY_ITEM_IRP_STORAGE dapat digunakan untuk mengembalikan penunjuk ke item properti sehingga data kustom dapat diambil. Pada platform 64-bit, parameter ini harus kelipatan 8.
Nilai kembali
Fungsi KsPropertyHandler mengembalikan STATUS_SUCCESS jika berhasil, atau kesalahan khusus untuk properti yang ditangani jika tidak berhasil. Fungsi ini mengatur anggota Irp-IoStatus.Information>, baik melalui pengaturan ke nol karena kesalahan internal, atau melalui penangan properti yang mengaturnya. Fungsi ini tidak mengatur anggota lrp-IoStatus.Status> juga tidak menyelesaikan IRP.
Pada platform 64-bit, jika parameter PropertyItemSize bukan kelipatan 8, STATUS_INVALID_PARAMETER dikembalikan, dan panggilan gagal.
Keterangan
KsPropertyHandlerWithAllocator menempatkan pointer ke struktur KSPROPERTY_ITEM yang relevan dalam parameter Irp-Tail.Overlay.DriverContext> di IRP. Minidriver dapat menggunakan makro KSPROPERTY_ITEM_IRP_STORAGE, yang ditentukan dalam ks.h, untuk mengakses penunjuk ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ks.h (termasuk Ks.h) |
Lihat juga
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