Rappel préopération du système de fichiers minifiltre _Flt_CompletionContext_Outptr_ annotation
Utilisez l’annotation _Flt_CompletionContext_Outptr_ lorsque vous déclarez la fonction de rappel de pré-opération du système de fichiers minifiltre PFLT_PRE_OPERATION_CALLBACK. Placez cette annotation sur le paramètre CompletionContext . Cette annotation indique à l’outil d’analyse du code de case activée que la valeur CompletionContext est correcte pour la valeur de retour FLT_PREOP_CALLBACK_STATUS.
Si une fonction de rappel de pré-opération (PFLT_PRE_OPERATION_CALLBACK) retourne FLT_PREOP_SUCCESS_WITH_CALLBACK ou FLT_PREOP_SYNCHRONIZE la valeur CompletionContext peut ou non être NULL. Pour tout autre FLT_PREOP_CALLBACK_STATUS valeur de retour, la valeur CompletionContext doit avoir la valeur NULL. L’état CompletionContext est défini par le filtre qui est passé du rappel de pré-opération du filtre à la fonction de rappel post-opération correspondante (PFLT_POST_OPERATION_CALLBACK). Le rappel post-opération est appelé uniquement si le filtre a renvoyé FLT_PREOP_SUCCESS_WITH_CALLBACK ou FLT_PREOP_SYNCHRONIZE à partir de sa fonction de rappel avant l’opération. Si le filtre ne transmet aucun état de sa fonction de rappel avant l’opération à sa fonction de rappel post-opération, la valeur CompletionContext a la valeur NULL. Par conséquent, CompletionContext dans sa fonction de rappel post-opération aura la valeur NULL. Chaque filtre individuel décide s’il faut retourner l’état dans CompletionContext à partir d’une fonction de rappel avant l’opération. Il appartient donc à chaque filtre individuel de savoir s’il doit ou non examiner CompletionContext dans sa fonction de rappel post-opération.
Exemple
L’exemple suivant montre le prototype de fonction d’une fonction PFLT_PRE_OPERATION_CALLBACK appelée SwapPreReadBuffers. Le paramètre CompletionContext reçoit le contexte qui sera passé à la fonction de rappel post-opération et il est déclaré avec _Flt_CompletionContext_Outptr_ annotation.
FLT_PREOP_CALLBACK_STATUS
SwapPreReadBuffers(
_Inout_ PFLT_CALLBACK_DATA Data,
_In_ PCFLT_RELATED_OBJECTS FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *CompletionContext
);
L’annotation _Flt_CompletionContext_Outptr_ est définie dans specstrings.h. L’utilisation de l’annotation peut ajouter une vérification des erreurs précieuse sans ajouter de surcharge ou de complexité à votre code.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour