anotasi _Flt_CompletionContext_Outptr_

Gunakan anotasi _Flt_CompletionContext_Outptr_ saat Anda mendeklarasikan fungsi callback 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 benar untuk nilai pengembalian FLT_PREOP_CALLBACK_STATUS.

Jika fungsi callback 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 callback pra-operasi filter ke fungsi callback pasca operasi yang sesuai (PFLT_POST_OPERATION_CALLBACK). Callback pasca operasi hanya dipanggil jika filter kembali FLT_PREOP_SUCCESS_WITH_CALLBACK atau FLT_PREOP_SYNCHRONIZE dari fungsi callback pra-operasinya. Jika filter tidak meneruskan status apa pun dari fungsi callback pra-operasinya ke fungsi callback pasca operasinya, CompletionContext adalah NULL, dan oleh karena itu CompletionContext dalam fungsi callback pasca operasinya adalah NULL. Setiap filter individu memutuskan apakah akan mengembalikan status di CompletionContext dari fungsi callback pra-operasi, jadi terserah pada setiap filter individual untuk mengetahui apakah harus melihat CompletionContext dalam fungsi callback 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 callback pasca operasi dan dideklarasikan 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 Pengemudi Windows