Condividi tramite


Funzione KsPropertyHandlerWithAllocator (ks.h)

KsPropertyHandlerWithAllocator esegue la stessa gestione di KsPropertyHandler, con le stesse restrizioni, ma consente l'uso di un callback di allocatore facoltativo per fornire un buffer per i parametri. Se usato, il filtro potrebbe dover liberare il buffer in modo nonventionale. IRP_BUFFERED_IO e flag di IRP_DEALLOCATE_BUFFER non vengono impostati quando si usa un allocatore personalizzato.

Sintassi

KSDDKAPI NTSTATUS KsPropertyHandlerWithAllocator(
  [in]           PIRP                 Irp,
  [in]           ULONG                PropertySetsCount,
  [in]           const KSPROPERTY_SET *PropertySet,
  [in, optional] PFNKSALLOCATOR       Allocator,
  [in, optional] ULONG                PropertyItemSize
);

Parametri

[in] Irp

Specifica l'IRP con la richiesta di proprietà gestita.

[in] PropertySetsCount

Specifica il numero di set di proprietà passati.

[in] PropertySet

Specifica il puntatore a una matrice di informazioni sul set di proprietà.

[in, optional] Allocator

Facoltativamente, punta a una funzione di allocazione usata per allocare memoria per archiviare i parametri della proprietà.

[in, optional] PropertyItemSize

Facoltativamente, contiene le dimensioni di ogni struttura KSPROPERTY_ITEM nelle proprietà. L'elemento della proprietà può essere esteso per archiviare informazioni private. Se questo parametro è zero, si presuppone che la dimensione della struttura sia normale. Se è maggiore o uguale a una struttura dell'elemento di proprietà, è possibile utilizzare la macro KSPROPERTY_ITEM_IRP_STORAGE per restituire un puntatore all'elemento della proprietà in modo che i dati personalizzati possano essere recuperati. Nelle piattaforme a 64 bit, questo parametro deve essere un multiplo di 8.

Valore restituito

La funzione KsPropertyHandler restituisce STATUS_SUCCESS se ha esito positivo o un errore specifico della proprietà gestita se non riesce. La funzione imposta il membro Irp-IoStatus.Information>, impostandolo su zero a causa di un errore interno o tramite un gestore delle proprietà che lo imposta. La funzione non imposta il membro lrp-IoStatus.Status> né completa l'IRP.

Nelle piattaforme a 64 bit, se il parametro PropertyItemSize non è un multiplo di 8, STATUS_INVALID_PARAMETER viene restituito e la chiamata ha esito negativo.

Commenti

KsPropertyHandlerWithAllocator inserisce un puntatore alla struttura di KSPROPERTY_ITEM pertinente nel parametro Irp-Tail.Overlay.DriverContext> in IRP. Il minidriver può usare la macro KSPROPERTY_ITEM_IRP_STORAGE definita in ks.h per accedere a questo puntatore.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)

Vedi anche

KsFastPropertyHandler

KsPropertyHandler