FSRTL_PER_STREAM_CONTEXT結構 (ntifs.h)
FSRTL_PER_STREAM_CONTEXT 結構包含文件系統篩選驅動程式維護檔案數據流的內容資訊。
語法
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
成員
Links
此結構的連結位於與相同檔案數據流相關聯的所有每個數據流內容結構清單中。 FsRtlInsertPerStreamContext 將此成員插入檔案數據流的所有每個數據流內容結構清單中。 若要從檔案物件取得清單前端的指標,請使用 FsRtlGetPerStreamContextPointer 巨集,並將結果轉換成 PFSRTL_ADVANCED_FCB_HEADER 指標。 清單指標是檔案數據流進階檔案控制區塊 (FCB) 標頭結構中 FilterContexts 成員。
OwnerId
篩選驅動程式配置的變數指標,可唯一識別每個數據流內容結構的擁有者。 此變數的格式為 filter-driver-specific。 篩選寫入器應該選擇有意義且方便的值,例如驅動程式物件或裝置對象的位址。 篩選驅動程式必須將這個成員設定為非NULL 值。
InstanceId
filter-driver-allocated 變數的指標,可用來區分相同篩選驅動程式所建立的每個數據流內容結構。 此變數的格式為 filter-driver-specific。 篩選寫入器應該選擇有意義且方便的值,例如檔案數據流的數據流內容對象的位址。 (若要從檔案物件取得此位址,請使用 FsRtlGetPerStreamContextPointer 巨集。
這個成員是選擇性的,而且可以 NULL。
FreeCallback
釋放每個數據流內容結構的回呼例程指標。 此例程及其參數的定義如下:
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
緩衝區
要釋放之 FSRTL_PER_STREAM_CONTEXT 結構的指標。
言論
檔系統篩選驅動程式可以使用 FSRTL_PER_STREAM_CONTEXT 結構來維護檔案數據流的內容資訊。 此結構可以像以前一樣使用,或內嵌在驅動程式定義的每個數據流內容結構中。
當文件系統卸除檔案數據流的數據流內容物件時,它必須呼叫 FsRtlTeardownPerStreamContexts,進而呼叫與檔案數據流相關聯之所有每個數據流內容結構 FreeCallback 例程。
FsRtlSupportsPerStreamContexts 巨集會決定文件系統是否支援指定檔案數據流的每個數據流內容。
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
參數
FileObject [in]
PFILE_OBJECT
檔案數據流之檔案物件的指標。
傳回值
布爾值
如果文件系統支援檔案數據流的每個數據流內容,則 FsRtlSupportsPerStreamContexts 巨集會傳回 true TRUE,否則為 FALSE。
文件系統篩選驅動程式會呼叫 FsRtlSupportsPerStreamContexts,以判斷基礎文件系統是否支援指定檔案物件所表示之檔案數據流的每個數據流內容。 請注意,檔案系統可能會針對某些類型的檔案支援個別數據流內容,但不支援其他類型。 例如,NTFS 和 FAT 目前不支援分頁檔案的每個數據流內容。
如需詳細資訊,請參閱舊版文件系統篩選驅動程式中的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 此結構為 Windows XP |
標頭 | ntifs.h (include Ntifs.h) |
另請參閱
FsRtlGetPerStreamContextPointer
FsRtlTeardownPerStreamContexts
在舊版文件系統篩選驅動程式 中