Partager via


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 passé en tant que paramètre à FltPerformAsynchronousIo, FltReadFileou FltWriteFile.

Valeur de retour

Aucun

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.

Lorsque l’opération d’E/S est terminée, cette routine de rappel est appelée dans un contexte de thread arbitraire, à l'<IRQL = DISPATCH_LEVEL.

Étant donné que la routine PFLT_COMPLETED_ASYNC_IO_CALLBACK peut être appelée à l’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 des ressources, des mutex ou des mutex rapides. Toutefois, il peut acquérir des verrous de rotation.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête fltkernel.h (include Fltkernel.h)
IRQL Voir la section Remarques.

Voir aussi

FLT_CALLBACK_DATA

FltPerformAsynchronousIo

FltReadFile

FltWriteFile