Condividi tramite


Funzione KsCreateDefaultAllocatorEx (ks.h)

Crea un allocatore predefinito che usa il pool di memoria specificato e associa IoGetCurrentIrpStackLocation(pIrp)->FileObject a questo allocatore usando una tabella dispatch interna (KSDISPATCH_TABLE).

Sintassi

KSDDKAPI NTSTATUS KsCreateDefaultAllocatorEx(
  [in]           PIRP                     Irp,
  [in, optional] PVOID                    InitializeContext,
  [in, optional] PFNKSDEFAULTALLOCATE     DefaultAllocate,
  [in, optional] PFNKSDEFAULTFREE         DefaultFree,
  [in, optional] PFNKSINITIALIZEALLOCATOR InitializeAllocator,
  [in, optional] PFNKSDELETEALLOCATOR     DeleteAllocator
);

Parametri

[in] Irp

Contiene l'IRP con la richiesta di creazione dell'allocatore gestita.

[in, optional] InitializeContext

Facoltativamente, contiene un contesto da usare con un allocatore esterno. Viene usato solo come contesto di inizializzazione per il callback initializeAllocator facoltativo durante la creazione di un contesto allocatore. Il parametro non viene usato in altro modo. Se non viene specificato un allocatore esterno, questo parametro deve essere impostato su NULL.

[in, optional] DefaultAllocate

Facoltativamente, contiene una funzione di allocazione esterna usata al posto dell'allocazione del pool predefinita. Se è NULL, viene usata l'allocazione predefinita.

[in, optional] DefaultFree

Facoltativamente, contiene una funzione esterna libera usata al posto dell'allocazione del pool predefinita. Se non viene specificato un allocatore esterno, questo parametro deve essere impostato su NULL.

[in, optional] InitializeAllocator

Facoltativamente, contiene una funzione di inizializzazione dell'allocatore esterno a cui viene passato il parametro InitializeContext. Questa funzione dovrebbe restituire un contesto allocatore in base al frame dell'allocatore. Se non viene specificato un allocatore esterno, questo parametro deve essere impostato su NULL.

[in, optional] DeleteAllocator

Facoltativamente, contiene una funzione di eliminazione dell'allocatore esterno usata per gli allocatori esterni. Se non viene specificato un allocatore esterno, questo parametro deve essere impostato su NULL.

Valore restituito

Restituisce STATUS_SUCCESS. In caso contrario, si verifica un errore in caso di errore di creazione dell'allocatore predefinito. Non completa l'IRP o imposta lo stato in IRP.

Commenti

Prima di chiamare questa routine, la macro KSCREATE_ITEM_IRP_STORAGE(Irp) deve restituire un puntatore alla struttura KSOBJECT_CREATE_ITEM che rappresenta l'elemento di creazione per questo allocatore. KsCreateDefaultAllocatorEx imposta FsContext in modo che punti al valore restituito di questa macro. Di conseguenza, FsContext può essere usato in un secondo momento per le query o le modifiche del descrittore di sicurezza.

È possibile trovare KSCREATE_ITEM_IRP_STORAGE(Irp) e le macro correlate in ks.h.

Requisiti

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