Bagikan melalui


Panggilan balik pra-operasi File System Minifilter _Flt_CompletionContext_Outptr_ anotasi

Gunakan anotasi _Flt_CompletionContext_Outptr_ saat Anda mendeklarasikan fungsi panggilan balik pra-operasi minifilter sistem file PFLT_PRE_OPERATION_CALLBACK. Tempatkan anotasi ini pada parameter CompletionContext . Anotasi ini mengarahkan alat analisis kode untuk memeriksa apakah CompletionContext sudah benar untuk nilai pengembalian FLT_PREOP_CALLBACK_STATUS.

Jika fungsi panggilan balik pra-operasi (PFLT_PRE_OPERATION_CALLBACK) mengembalikan FLT_PREOP_SUCCESS_WITH_CALLBACK atau FLT_PREOP_SYNCHRONIZE CompletionContext mungkin atau mungkin bukan NULL. Untuk nilai pengembalian FLT_PREOP_CALLBACK_STATUS lainnya , CompletionContext harus NULL. CompletionContext adalah status yang ditentukan filter yang diteruskan dari panggilan balik pra-operasi filter ke fungsi panggilan balik pasca-operasi yang sesuai (PFLT_POST_OPERATION_CALLBACK). Panggilan balik pasca-operasi hanya dipanggil jika filter mengembalikan FLT_PREOP_SUCCESS_WITH_CALLBACK atau FLT_PREOP_SYNCHRONIZE dari fungsi panggilan balik pra-operasinya. Jika filter tidak meneruskan status apa pun dari fungsi panggilan balik pra-operasinya ke fungsi panggilan balik pasca-operasinya, CompletionContext adalah NULL, dan oleh karena itu CompletionContext dalam fungsi panggilan balik pasca-operasinya akan NULL. Setiap filter individu memutuskan apakah akan mengembalikan status dalam CompletionContext dari fungsi panggilan balik pra-operasi, sehingga terserah setiap filter individu untuk mengetahui apakah harus melihat CompletionContext dalam fungsi panggilan balik pasca-operasinya.

Contoh

Contoh berikut menunjukkan prototipe fungsi untuk fungsi PFLT_PRE_OPERATION_CALLBACK yang disebut SwapPreReadBuffers. Parameter CompletionContext menerima konteks yang akan diteruskan ke fungsi panggilan balik pasca-operasi dan dinyatakan dengan anotasi _Flt_CompletionContext_Outptr_ .

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

Anotasi _Flt_CompletionContext_Outptr_ didefinisikan dalam specstrings.h. Menggunakan anotasi dapat menambahkan pemeriksaan kesalahan yang berharga tanpa menambahkan overhead atau kompleksitas ke kode Anda.

PFLT_PRE_OPERATION_CALLBACK

PFLT_POST_OPERATION_CALLBACK

Anotasi SAL 2.0 untuk Driver Windows