Makro FsRtlInitPerStreamContext (ntifs.h)
Makro FsRtlInitPerStreamContext menginisialisasi struktur konteks driver filter.
Sintaks
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
Parameter
_fc
Penunjuk ke struktur FSRTL_PER_STREAM_CONTEXT yang dialokasikan pemanggil yang akan digunakan untuk mempertahankan informasi konteks untuk aliran file. Struktur ini dapat digunakan apa adanya atau disematkan dalam struktur konteks per aliran yang ditentukan driver. Kedua jenis struktur biasanya dialokasikan dengan memanggil ExAllocatePoolWithTag.
_owner
Penunjuk ke variabel yang dialokasikan pemanggil yang secara unik mengidentifikasi pemilik struktur konteks per aliran. Format variabel ini adalah driver filter − spesifik. Penulis filter harus memilih nilai yang bermakna dan nyaman, seperti alamat objek driver atau objek perangkat. Penelepon harus menentukan nilai non-NULL untuk parameter ini.
_inst
Pointer ke driver filter − variabel yang dialokasikan yang dapat digunakan untuk membedakan antara struktur konteks per aliran yang dibuat oleh driver filter yang sama. Format variabel ini adalah driver filter − spesifik. Penulis filter harus memilih nilai yang bermakna dan nyaman, seperti alamat objek konteks aliran untuk aliran file. (Untuk mendapatkan alamat ini dari objek file, gunakan makro FsRtlGetPerStreamContextPointer .) Parameter ini bersifat opsional dan dapat berupa NULL.
_cb
Arahkan ke rutinitas panggilan balik yang membebaskan struktur konteks per aliran. Penelepon harus menentukan nilai non-NULL untuk parameter ini. Rutinitas ini dan parameternya didefinisikan sebagai berikut:
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
- Buffer
Arahkan ke struktur konteks per aliran yang akan dikosongkan. Rutinitas FreeCallback biasanya mentransmisikan pointer ini ke jenis penunjuk struktur yang sesuai dan membebaskannya dengan memanggil ExFreePool.
Nilai kembali
Tidak ada
Keterangan
Driver filter sistem file menggunakan makro FsRtlInitPerStreamContext untuk menginisialisasi struktur konteks per aliran yang baru dialokasikan sebelum mengaitkannya dengan aliran file. Struktur konteks yang diinisialisasi dapat diteruskan sebagai parameter ke FsRtlInsertPerStreamContext.
FsRtlInitPerStreamContext menyimpan alamat rutinitas FreeCallback di anggota FreeCallback dari struktur FSRTL_PER_STREAM_CONTEXT.
Rutinitas FreeCallback disebut di IRQL <= APC_LEVEL. Biasanya, itu disebut di IRQL PASSIVE_LEVEL.
Setelah struktur konteks dikaitkan dengan aliran file, struktur tersebut dapat diambil dengan memanggil FsRtlLookupPerStreamContext atau dihapus dengan memanggil FsRtlRemovePerStreamContext.
Untuk informasi selengkapnya, lihat Melacak konteks Per-Stream dalam Driver Filter Sistem File Warisan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP; Pembaruan Rollup untuk Windows 2000 Paket Layanan 4 (SP4) |
Target Platform | Desktop |
Header | ntifs.h (termasuk Ntifs.h) |
IRQL | Tingkat apa pun |
Lihat juga
FsRtlGetPerStreamContextPointer
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk