Partager via


FltAllocateCallbackDataEx, fonction (fltkernel.h)

La routine FltAllocateCallbackDataEx alloue une structure de données de rappel et peut préallouer la mémoire pour des structures supplémentaires qu’un pilote minifilter peut utiliser pour lancer une requête d’E/S.

Syntaxe

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

Paramètres

[in] Instance

Pointeur d’instance opaque vers l’instance de pilote minifilter qui lance l’opération d’E/S. Ce paramètre est obligatoire et ne peut pas être NULL.

[in/optional] FileObject

Pointeur vers un objet de fichier à utiliser dans l’opération d’E/S. Ce paramètre est facultatif et peut être NULL. Définissez FileObject sur NULL s’il s’agit d’une opération CREATE.

[in] Flags

Valeur zéro ou indicateur suivant : FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

Si cet indicateur est défini, la routine préalloue toute la mémoire nécessaire par le gestionnaire de filtres pour les structures supplémentaires à utiliser dans une requête d’E/S.

[out] RetNewCallbackData

Pointeur vers une variable allouée par l’appelant qui reçoit l’adresse des données de rappel nouvellement allouées FLT_CALLBACK_DATA structure.

Valeur de retour

La routine FltAllocateCallbackDataEx retourne STATUS_SUCCESS en cas de réussite ou de STATUS_INSUFFICIENT_RESOURCES si la routine a rencontré un échec d’allocation de pool lors de la tentative d’allocation de la structure de données de rappel ou si l’indicateur de FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY est défini et que la mémoire supplémentaire n’a pas pu être allouée.

Remarques

Si l’indicateur FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY est défini, la routine alloue toutes les mémoires nécessaires pour que des structures de gestionnaire de filtre supplémentaires soient utilisées dans une requête d’E/S ultérieure. L’utilisation de cet indicateur permet à un minifilter de préallouer une ou plusieurs structures de données de rappel à utiliser pour émettre des demandes d’E/S dans des conditions de mémoire faibles ou dans des situations où la récupération d’un échec d’allocation de mémoire peut être compliquée.

Note

La mémoire allouée supplémentaire est utilisée par le gestionnaire de filtres. Le système de fichiers ou d’autres filtres peut toujours échouer à la demande d’E/S en raison d’une condition de mémoire insuffisante.

Important

Les commentaires de FltAllocateCallbackData s’appliquent également à FltAllocateCallbackDataEx. Passez en revue ces informations pour sélectionner la routine appropriée pour votre conception.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 7 et versions ultérieures du système d’exploitation Windows.
plateforme cible Universel
d’en-tête fltkernel.h (include FltKernel.h)
bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FLT_CALLBACK_DATA

FltAllocateCallbackData