KsCreateDefaultAllocatorEx, fonction (ks.h)
Crée un allocateur par défaut qui utilise le pool de mémoire spécifié et associe le IoGetCurrentIrpStackLocation(pIrp)->FileObject à cet allocator à l’aide d’une table de répartition interne (KSDISPATCH_TABLE).
Syntaxe
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
);
Paramètres
[in] Irp
Contient l’IRP avec la demande de création d’allocator en cours de traitement.
[in, optional] InitializeContext
Contient éventuellement un contexte à utiliser avec un allocateur externe. Cela est utilisé uniquement comme contexte d’initialisation pour le rappel Facultatif InitializeAllocator lors de la création d’un contexte d’allocator. Le paramètre n’est pas utilisé autrement. Si aucun allocateur externe n’est fourni, ce paramètre doit être défini sur NULL .
[in, optional] DefaultAllocate
Contient éventuellement une fonction d’allocation externe utilisée à la place de l’allocation de pool par défaut. S’il s’agit NULL, l’allocation par défaut est utilisée.
[in, optional] DefaultFree
Contient éventuellement une fonction libre externe utilisée à la place de l’allocation de pool par défaut. Si aucun allocateur externe n’est fourni, ce paramètre doit être défini sur NULL .
[in, optional] InitializeAllocator
Contient éventuellement une fonction d’initialisation d’allocator externe à laquelle le paramètre InitializeContext est passé. Cette fonction est censée retourner un contexte d’allocateur basé sur le trame de l’allocateur. Si aucun allocateur externe n’est fourni, ce paramètre doit être défini sur NULL .
[in, optional] DeleteAllocator
Contient éventuellement une fonction de suppression d’allocator externe utilisée pour les allocateurs externes. Si aucun allocateur externe n’est fourni, ce paramètre doit être défini sur NULL .
Valeur de retour
Retourne STATUS_SUCCESS, sinon une erreur lors de l’échec de création d’un allocateur par défaut. Ne termine pas l’IRP ou définit l’état dans l’IRP.
Remarques
Avant d’appeler cette routine, la macro KSCREATE_ITEM_IRP_STORAGE(Irp) doit retourner un pointeur vers la structure KSOBJECT_CREATE_ITEM qui est l’élément de création pour cet allocateur. KsCreateDefaultAllocatorEx définit FsContext pour pointer vers la valeur de retour de cette macro. Par conséquent, FsContext peut être utilisé ultérieurement pour les requêtes de descripteur de sécurité ou les modifications.
Vous trouverez des (Irp) KSCREATE_ITEM_IRP_STORAGE(Irp) et des macros associées dans ks.h.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |