Bagikan melalui


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

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

FsRtlTeardownPerFileContexts

FsRtlTeardownPerStreamContexts

FSRTL_PER_FILE_CONTEXT

FSRTL_PER_STREAM_CONTEXT

Melacak Konteks Per-File dalam Driver Filter Sistem File Warisan

Melacak Konteks Per-Stream dalam Driver Filter Sistem File Warisan