PFREE_FUNCTION penunjuk fungsi
Driver filter warisan sistem file dapat mendaftarkan rutinitas PFREE_FUNCTION yang ditik sebagai rutinitas panggilan balik FreeCallback filter. Sistem file memanggil FreeCallback ketika sistem file menghapus objek konteks file dengan menggunakan FsRtlTeardownPerFileContexts atau menghapus objek konteks aliran dengan menggunakan FsRtlTeardownPerStreamContexts.
Anda harus mendeklarasikan rutinitas panggilan balik dengan menggunakan jenis FREE_FUNCTION . Untuk informasi selengkapnya, lihat contoh di bagian Keterangan.
Sintaks
typedef VOID ( *FreeCallback)(
_In_ PVOID Buffer
);
Parameter
- Buffer [in]: Pointer ke FSRTL_PER_FILE_CONTEXT atau struktur FSRTL_PER_STREAM_CONTEXT yang akan dikosongkan.
Nilai kembali
Tidak ada
Keterangan
Ketika sistem file merobek objek konteks per file untuk file, sistem file harus memanggil FsRtlTeardownPerFileContexts. Rutinitas ini memanggil rutinitas FreeCallback dari semua struktur konteks per file yang terkait dengan file. Rutinitas panggilan balik ini harus membebaskan memori apa pun yang digunakan untuk objek FSRTL_PER_FILE_CONTEXT dan informasi konteks terkait. Ini juga terjadi untuk konteks per aliran ketika FsRtlTeardownPerStreamContexts dipanggil dan FreeCallback akan membebaskan memori yang digunakan untuk objek FSRTL_PER_STREAM_CONTEXT .
Untuk keterangan tentang menyinkronkan akses ke objek konteks per file atau ke objek konteks per aliran selama panggilan ke FreeCallback, lihat FsRtlTeardownPerFileContexts dan FsRtlTeardownPerStreamContexts.
Catatan
Rutinitas FreeCallback tidak dapat secara rekursif memanggil ke dalam sistem file atau memperoleh sumber daya sistem file apa pun.
Untuk menentukan fungsi panggilan balik FreeCallback yang bernama MyFreeFunction, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan Pemverifikasi Driver Statis (SDV) dan alat verifikasi lainnya, sebagai berikut:
FREE_FUNCTION MyFreeFunction;
Lalu terapkan fungsi panggilan balik Anda sebagai berikut:
VOID
MyFreeFunction (
__in PVOID Buffer
)
{...}
Persyaratan
Jenis persyaratan | Persyaratan |
---|---|
Klien minimum yang didukung | Windows Vista |
Header | Wdm.h (termasuk Wdm.h atau Ntddk.h) |
IRQL | <= APC_LEVEL |
Lihat juga
FsRtlTeardownPerStreamContexts
Melacak Konteks Per-File dalam Driver Filter Sistem File Warisan
Melacak Konteks Per-Stream dalam Driver Filter Sistem File Warisan