파일 시스템 미니필터 사전 작업 콜백 _Flt_CompletionContext_Outptr_ 주석

파일 시스템 미니필터 사전 작업 콜백 함수 PFLT_PRE_OPERATION_CALLBACK 선언할 때 _Flt_CompletionContext_Outptr_ 주석을 사용합니다. 이 주석을 CompletionContext 매개 변수에 배치합니다. 이 주석은 코드 분석 도구에 CompletionContext가 FLT_PREOP_CALLBACK_STATUS 반환 값에 대해 올바른지 검사 지시합니다.

사전 작업 콜백 함수(PFLT_PRE_OPERATION_CALLBACK)가 FLT_PREOP_SUCCESS_WITH_CALLBACK 반환하거나 FLT_PREOP_SYNCHRONIZE 경우 CompletionContext 는 NULL일 수도 있고 그렇지 않을 수도 있습니다. 다른 FLT_PREOP_CALLBACK_STATUS 반환 값의 경우 CompletionContext 는 NULL이어야 합니다. CompletionContext는 필터의 사전 작업 콜백에서 해당 작업 후 콜백 함수(PFLT_POST_OPERATION_CALLBACK)로 전달되는 필터 정의 상태입니다. 사후 작업 콜백은 필터가 FLT_PREOP_SUCCESS_WITH_CALLBACK 반환하거나 사전 작업 콜백 함수에서 FLT_PREOP_SYNCHRONIZE 경우에만 호출됩니다. 필터가 사전 작업 콜백 함수에서 사후 작업 콜백 함수로 상태를 전달하지 않으면 CompletionContext 는 NULL이므로 작업 후 콜백 함수의 CompletionContext 는 NULL이 됩니다. 각 개별 필터는 사전 작업 콜백 함수에서 CompletionContext 의 상태를 반환할지 여부를 결정하므로 각 개별 필터는 작업 후 콜백 함수에서 CompletionContext 를 확인해야 하는지 여부를 알 수 있습니다.

예제

다음 예제에서는 SwapPreReadBuffers라는 PFLT_PRE_OPERATION_CALLBACK 함수의 함수 프로토타입을 보여 있습니다. CompletionContext 매개 변수는 사후 작업 콜백 함수에 전달될 컨텍스트를 수신하며 _Flt_CompletionContext_Outptr_ 주석으로 선언됩니다.

FLT_PREOP_CALLBACK_STATUS
SwapPreReadBuffers(
    _Inout_ PFLT_CALLBACK_DATA Data,
    _In_ PCFLT_RELATED_OBJECTS FltObjects,
    _Flt_CompletionContext_Outptr_ PVOID *CompletionContext
    );

_Flt_CompletionContext_Outptr_ 주석은 specstrings.h에 정의되어 있습니다. 주석을 사용하면 코드에 오버헤드 또는 복잡성을 추가하지 않고 중요한 오류 검사를 추가할 수 있습니다.

PFLT_PRE_OPERATION_CALLBACK

PFLT_POST_OPERATION_CALLBACK

Windows 드라이버용 SAL 2.0 주석