PFLT_COMPLETED_ASYNC_IO_CALLBACK fonction de rappel (fltkernel.h)
Un pilote minifilter qui lance une opération d’E/S asynchrone peut spécifier une routine de type PFLT_COMPLETED_ASYNC_IO_CALLBACK routine à appeler une fois l’opération terminée.
Syntaxe
PFLT_COMPLETED_ASYNC_IO_CALLBACK PfltCompletedAsyncIoCallback;
void PfltCompletedAsyncIoCallback(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_CONTEXT Context
)
{...}
Paramètres
[in] CallbackData
Pointeur vers la structure de données de rappel pour l’opération d’E/S.
[in] Context
Pointeur de contexte que le pilote minifilter a transmis en tant que paramètre à FltPerformAsynchronousIo, FltReadFile ou FltWriteFile.
Valeur de retour
None
Remarques
Lorsqu’un pilote minifilter appelle FltPerformAsynchronousIo, FltReadFile ou FltWriteFile pour lancer une opération d’E/S asynchrone, le pilote minifilter peut éventuellement spécifier une routine de rappel à appeler lorsque l’opération d’E/S est terminée. Pour ce faire, spécifiez une routine de type PFLT_COMPLETED_ASYNC_IO_CALLBACK pour le paramètre CallbackRoutine .
Une fois l’opération d’E/S terminée, cette routine de rappel est appelée dans un contexte de thread arbitraire, à l’adresse IRQL <= DISPATCH_LEVEL.
Étant donné que la routine PFLT_COMPLETED_ASYNC_IO_CALLBACK peut être appelée au DISPATCH_LEVEL IRQL, elle est soumise aux contraintes suivantes :
- Il ne peut pas appeler en toute sécurité des routines en mode noyau qui nécessitent un IRQL inférieur.
- Toutes les structures de données utilisées dans cette routine doivent être allouées à partir d’un pool non paginé.
- Il ne peut pas être rendu paginable.
- Il ne peut pas acquérir de ressources, de mutex ou de mutex rapides. Toutefois, il peut acquérir des verrous de rotation.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | fltkernel.h (inclure Fltkernel.h) |
IRQL | Consultez la section Notes. |