Partager via


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