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 指標。 清單指標是進階檔案控制區塊中的 FilterContexts 成員, (FCB) 檔數據流的標頭結構。
OwnerId
篩選驅動程式配置的變數指標,可唯一識別每個數據流內容結構的擁有者。 此變數的格式為 filter-driver-specific。 篩選寫入器應該選擇有意義且方便的值,例如驅動程式物件或裝置對象的位址。 篩選驅動程式必須將這個成員設定為非 NULL 值。
InstanceId
篩選驅動程式配置的變數指標,可用來區分相同篩選驅動程式所建立的每個數據流內容結構。 此變數的格式為 filter-driver-specific。 篩選寫入器應該選擇有意義且方便的值,例如檔案數據流的數據流內容對象的位址。 (若要從檔案物件取得此位址,請使用 FsRtlGetPerStreamContextPointer 宏.)
此成員是選擇性的,可以是 NULL。
FreeCallback
釋放每個數據流內容結構的回呼例程指標。 此例程及其參數的定義如下:
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
Buffer
要釋放 之FSRTL_PER_STREAM_CONTEXT 結構的指標。
備註
檔系統篩選驅動程式可以使用 FSRTL_PER_STREAM_CONTEXT 結構來維護檔案數據流的內容資訊。 此結構可以如同原樣使用,或內嵌在驅動程式定義的個別數據流內容結構中。
當文件系統卸除檔案數據流的數據流內容物件時,它必須呼叫 FsRtlTeardownPerStreamContexts,進而呼叫與檔案數據流相關聯的所有個別數據流內容結構的 FreeCallback 例程。
FsRtlSupportsPerStreamContexts 宏會決定文件系統是否支援指定檔案數據流的個別數據流內容。
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
參數
FileObject [in]
PFILE_OBJECT
檔案數據流之檔案物件的指標。
傳回值
布爾
如果文件系統支援檔案數據流的每個數據流內容, FsRtlSupportsPerStreamContexts 宏會傳回 TRUE ,否則為 FALSE 。
文件系統篩選驅動程式會呼叫 FsRtlSupportsPerStreamContexts ,以判斷基礎文件系統是否支援指定檔案物件所代表之檔案數據流的每個數據流內容。 請注意,檔案系統可能會針對某些類型的檔案支援個別數據流內容,但不支援其他類型的內容。 例如,NTFS 和 FAT 目前不支援分頁檔案的每個數據流內容。
如需詳細資訊,請參閱 追蹤舊版文件系統篩選驅動程式中的 Per-Stream 內容。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 此結構為 Windows XP |
標頭 | ntifs.h (包含 Ntifs.h) |
另請參閱
FsRtlGetPerStreamContextPointer
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應