Partager via


Fonction FltAllocateCallbackDataEx (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 de minifiltre peut utiliser pour lancer une demande 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

Opaque instance pointeur vers le pilote minifiltre instance qui lance l’opération d’E/S. Ce paramètre est obligatoire et ne peut pas avoir la valeur 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 au gestionnaire de filtres pour les structures supplémentaires à utiliser dans une demande 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 retournée

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 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 toute la mémoire nécessaire à l’utilisation d’autres structures de gestionnaire de filtres dans une demande d’E/S suivante. L’utilisation de cet indicateur permet à un minifiltre 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 faible ou dans des situations où la récupération après un échec d’allocation de mémoire peut s’avérer compliquée.

Notes

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

Important

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 7 et versions ultérieures du système d’exploitation Windows.
Plateforme cible Universal
En-tête fltkernel.h (inclure FltKernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FLT_CALLBACK_DATA

FltAllocateCallbackData