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

KsFastPropertyHandler

KsPropertyHandler