Bagikan melalui


struktur FSRTL_PER_STREAM_CONTEXT (ntifs.h)

Struktur FSRTL_PER_STREAM_CONTEXT berisi informasi konteks yang dikelola driver filter sistem file tentang aliran file.

Sintaks

typedef struct _FSRTL_PER_STREAM_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;

Anggota

Links

Tautkan untuk struktur ini dalam daftar semua struktur konteks per aliran yang terkait dengan aliran file yang sama. FsRtlInsertPerStreamContext menyisipkan anggota ini ke dalam daftar semua struktur konteks per aliran untuk aliran file. Untuk mendapatkan penunjuk ke kepala daftar dari objek file, gunakan makro FsRtlGetPerStreamContextPointer , dan transmisikan hasilnya ke penunjuk PFSRTL_ADVANCED_FCB_HEADER . Penunjuk daftar adalah anggota FilterContexts dalam struktur header blok kontrol file tingkat lanjut (FCB) untuk aliran file.

OwnerId

Penunjuk ke variabel filter-driver-alokasi yang secara unik mengidentifikasi pemilik struktur konteks per aliran. Format variabel ini khusus untuk filter-driver. Penulis filter harus memilih nilai yang bermakna dan nyaman, seperti alamat objek driver atau objek perangkat. Driver filter harus mengatur anggota ini ke nilai non-NULL .

InstanceId

Penunjuk ke variabel filter-driver-alokasi yang dapat digunakan untuk membedakan antara struktur konteks per aliran yang dibuat oleh driver filter yang sama. Format variabel ini khusus untuk filter-driver. 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 .)

Anggota ini bersifat opsional dan dapat berupa NULL.

FreeCallback

Arahkan ke rutinitas panggilan balik yang membebaskan struktur konteks per aliran. Rutinitas ini dan parameternya didefinisikan sebagai berikut:

VOID
(*PFREE_FUNCTION) (
     IN PVOID Buffer
     );

Buffer

Arahkan ke struktur FSRTL_PER_STREAM_CONTEXT untuk membebaskan.

Keterangan

Driver filter sistem file dapat menggunakan struktur FSRTL_PER_STREAM_CONTEXT untuk mempertahankan informasi konteks untuk aliran file. Struktur ini dapat digunakan apa adanya atau disematkan dalam struktur konteks per aliran yang ditentukan driver.

Ketika sistem file meluapkan objek konteks aliran untuk aliran file, sistem file harus memanggil FsRtlTeardownPerStreamContexts, yang pada gilirannya memanggil rutinitas FreeCallback dari semua struktur konteks per aliran yang terkait dengan aliran file.

Catatan Rutinitas FreeCallback tidak dapat secara rekursif memanggil ke dalam sistem file atau memperoleh sumber daya sistem file apa pun. Selain itu, rutinitas ini harus mengasumsikan bahwa objek file untuk aliran file telah dibebaskan.
 
Struktur FSRTL_PER_STREAM_CONTEXT dapat dialokasikan dari kumpulan halaman atau tidak bertumpuk.

Makro FsRtlSupportsPerStreamContexts menentukan apakah sistem file mendukung konteks per aliran untuk aliran file tertentu.

BOOLEAN FsRtlSupportsPerStreamContexts(
  [in] PFILE_OBJECT FileObject
);

Parameter

FileObject [in]

PFILE_OBJECT

Penunjuk ke objek file untuk aliran file.

Nilai kembali

BOOLEAN

Makro FsRtlSupportsPerStreamContexts mengembalikan TRUE jika sistem file mendukung konteks per aliran untuk aliran file, FALSE jika tidak.

Driver filter sistem file memanggil FsRtlSupportsPerStreamContexts untuk menentukan apakah sistem file yang mendasar mendukung konteks per aliran untuk aliran file yang diwakili oleh objek file tertentu. Perhatikan bahwa sistem file mungkin mendukung konteks per aliran untuk beberapa jenis file tetapi tidak untuk yang lain. Misalnya, NTFS dan FAT saat ini tidak mendukung konteks per aliran untuk file paging.

Untuk informasi selengkapnya, lihat Melacak konteks Per-Stream dalam Driver Filter Sistem File Warisan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Struktur ini adalah Windows XP
Header ntifs.h (termasuk Ntifs.h)

Lihat juga

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

Melacak Konteks Per-Stream dalam Driver Filter Sistem File Warisan