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 |