Fonction FltAllocateCallbackData (fltkernel.h)
FltAllocateCallbackData alloue une structure de données de rappel qu’un pilote de minifiltre peut utiliser pour lancer une demande d’E/S.
Syntaxe
NTSTATUS FLTAPI FltAllocateCallbackData(
[in] PFLT_INSTANCE Instance,
[in, optional] PFILE_OBJECT FileObject,
[out] PFLT_CALLBACK_DATA *RetNewCallbackData
);
Paramètres
[in] Instance
Pointeur de instance opaque pour le pilote de 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 d’objet fichier à utiliser dans l’opération d’E/S. Ce paramètre est facultatif et peut être NULL.
[out] RetNewCallbackData
Pointeur vers une variable allouée par l’appelant qui reçoit l’adresse de la structure de données de rappel (FLT_CALLBACK_DATA) nouvellement allouée.
Valeur retournée
FltAllocateCallbackData retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :
Code de retour | Description |
---|---|
|
FltAllocateCallbackData a rencontré un échec d’allocation de pool lors de la tentative d’allocation de la structure de données de rappel. Il s’agit d’un code d’erreur. |
Remarques
Un pilote de minifiltre peut appeler FltAllocateCallbackData pour allouer une structure de données de rappel (FLT_CALLBACK_DATA) pour une opération d’E/S initiée par le pilote de minifiltre.
Après avoir initialisé les paramètres de la structure de données de rappel retournée par FltAllocateCallbackData, l’appelant lance l’opération d’E/S en passant la structure à FltPerformSynchronousIo ou FltPerformAsynchronousIo. Ces routines envoient l’opération d’E/S uniquement aux instances de pilote de minifiltre attachées sous la instance de lancement (spécifiée dans le paramètre Instance) et au système de fichiers. Les pilotes de minifiltre attachés au-dessus du instance spécifiés ne reçoivent pas l’opération d’E/S.
Les pilotes de minifiltre peuvent uniquement lancer des opérations d’E/S basées sur IRP. Ils ne peuvent pas lancer d’opérations de rappel rapides d’E/S ou de filtre de système de fichiers (FSFilter).
Les pilotes de minifiltre doivent utiliser FltAllocateCallbackData, FltPerformAsynchronousIo et FltPerformSynchronousIo uniquement pour les opérations d’E/S pour lesquelles des routines telles que les suivantes ne peuvent pas être utilisées :
Lorsque la structure de données de rappel allouée par FltAllocateCallbackData n’est plus nécessaire, l’appelant est chargé de la libérer en appelant FltFreeCallbackData.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |