FltAllocateCallbackData, fonction (fltkernel.h)
FltAllocateCallbackData alloue une structure de données de rappel qu’un pilote minifilter peut utiliser pour lancer une requête 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 d’instance opaque pour 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 d’objet de 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 nouvellement allouées (FLT_CALLBACK_DATA).
Valeur de retour
FltAllocateCallbackData retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :
Retourner le code | 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 minifilter 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 minifilter.
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 minifilter attachées sous l’instance de lancement (spécifiée dans le paramètre Instance) et au système de fichiers. Les pilotes Minifilter attachés au-dessus de l’instance spécifiée ne reçoivent pas l’opération d’E/S.
Les pilotes minifilter ne peuvent lancer que des opérations d’E/S basées sur IRP. Ils ne peuvent pas lancer des opérations de rappel rapides d’E/S ou de filtre de système de fichiers (FSFilter).
Les pilotes Minifilter doivent utiliser FltAllocateCallbackData, FltPerformAsynchronousIoet FltPerformSynchronousIo uniquement pour les opérations d’E/S pour lesquelles les 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 le libérer en appelant FltFreeCallbackData.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |