Funzione KsMethodHandlerWithAllocator (ks.h)
Le funzioni KsMethodHandlerWithAllocator eseguono la stessa gestione di KsMethodHandler, 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. Si noti che i flag di IRP_BUFFERED_IO e IRP_DEALLOCATE_BUFFER non vengono impostati quando si usa un allocatore personalizzato.
Sintassi
KSDDKAPI NTSTATUS KsMethodHandlerWithAllocator(
[in] PIRP Irp,
[in] ULONG MethodSetsCount,
[in] const KSMETHOD_SET *MethodSet,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG MethodItemSize
);
Parametri
[in] Irp
Specifica l'IRP con la richiesta di metodo gestita.
[in] MethodSetsCount
Indica il numero di strutture del set di metodi passate.
[in] MethodSet
Specifica il puntatore all'elenco delle informazioni del set di metodi.
[in, optional] Allocator
Facoltativamente, punta a una funzione di allocazione che verrà usata per allocare memoria per archiviare i parametri del metodo.
[in, optional] MethodItemSize
Facoltativamente, contiene le dimensioni di ogni struttura KSMETHOD_ITEM in ogni elenco di metodi. L'elemento del metodo 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 del metodo, la macro KSMETHOD_ITEM_IRP_STORAGE può essere usata per restituire un puntatore all'elemento del metodo 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 KsMethodHandler restituisce STATUS_SUCCESS se ha esito positivo o un errore specifico del metodo gestito se non è riuscito. La funzione imposta sempre il IO_STATUS_BLOCK. Campo informazioni del PIRP. Elemento IoStatus all'interno di IRP su zero a causa di un errore interno o l'elemento viene impostato da un gestore dei metodi. La funzione non imposta il IO_STATUS_BLOCK. Campo stato né completare 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.
Requisiti
Piattaforma di destinazione | Universale |
Intestazione | ks.h (include Ks.h) |
Libreria | Ks.lib |
Commenti e suggerimenti
Invia e visualizza il feedback per