KsCreateDefaultAllocatorEx, fonction (ks.h)
Crée un répartiteur par défaut qui utilise le pool de mémoire spécifié et associe l’objet 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. Il est uniquement utilisé comme contexte d’initialisation du rappel Facultatif InitializeAllocator lors de la création d’un contexte d’allocator. Le paramètre n’est pas utilisé autrement. Si un allocateur externe n’est pas fourni, ce paramètre doit être défini sur NULL.
[in, optional] DefaultAllocate
Contient éventuellement une fonction d’allocation externe qui est utilisée à la place de l’allocation de pool par défaut. Si cette valeur est NULL, l’allocation par défaut est utilisée.
[in, optional] DefaultFree
Contient éventuellement une fonction gratuite externe qui est utilisée à la place de l’allocation de pool par défaut. Si un allocateur externe n’est pas 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’allocation basé sur le cadrage de l’allocateur. Si un allocateur externe n’est pas fourni, ce paramètre doit être défini sur NULL.
[in, optional] DeleteAllocator
Contient éventuellement une fonction de suppression d’allocateur externe qui est utilisée pour les allocateurs externes. Si un allocateur externe n’est pas fourni, ce paramètre doit être défini sur NULL.
Valeur retournée
Retourne STATUS_SUCCESS, sinon une erreur sur l’échec de création de l’allocateur par défaut. Ne termine pas l’IRP ou ne définit pas le status 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 ou modifications de descripteurs de sécurité.
Vous trouverez KSCREATE_ITEM_IRP_STORAGE(Irp) et les macros associées dans ks.h.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ks.h (inclure Ks.h) |
Bibliothèque | Ks.lib |