FsRtlInitPerStreamContext 巨集 (ntifs.h)
FsRtlInitPerStreamContext 巨集會初始化篩選驅動程式內容結構。
語法
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
參數
_fc
呼叫端配置的FSRTL_PER_STREAM_CONTEXT結構的指標,用來維護檔案數據流的內容資訊。 此結構可以和目前一樣使用,或內嵌在驅動程式定義的個別數據流內容結構中。 這兩種結構類型通常會藉由呼叫exAllocatePoolWithTag 來配置。
_owner
呼叫端配置的變數指標,可唯一識別每個數據流內容結構的擁有者。 此變數的格式為篩選驅動程式 \ 特定。 篩選寫入器應該選擇有意義且方便的值,例如驅動程式物件或裝置對象的位址。 呼叫端必須指定此參數的非NULL 值。
_inst
篩選驅動程式的指標 • 配置的變數,可用來區分相同篩選驅動程式所建立的每個數據流內容結構。 此變數的格式為篩選驅動程式 \ 特定。 篩選寫入器應該選擇有意義且方便的值,例如檔案數據流的數據流內容對象的位址。 (若要從檔案物件取得此位址,請使用 FsRtlGetPerStreamContextPointer 巨集。這個參數是選擇性參數,而且可以 NULL。
_cb
釋放每個數據流內容結構的回呼例程指標。 呼叫端必須指定此參數的非NULL 值。 此例程及其參數的定義如下:
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
傳回值
沒有
言論
文件系統篩選驅動程式會使用 FsRtlInitPerStreamContext 巨集,先初始化新配置的個別數據流內容結構,再將它與檔案數據流產生關聯。 初始化的內容結構可以當做參數傳遞至 FsRtlInsertPerStreamContext。
FsRtlInitPerStreamContext 會將 FreeCallback 例程的位址儲存在FSRTL_PER_STREAM_CONTEXT結構的 FreeCallback 成員中。
在 IRQL <= APC_LEVEL 呼叫 FreeCallback 例程。 通常,它會在 IRQL PASSIVE_LEVEL呼叫。
在內容結構與檔案數據流相關聯之後,可以藉由呼叫 FsRtlLookupPerStreamContext 或藉由呼叫 FsRtlRemovePerStreamContext來擷取。
如需詳細資訊,請參閱舊版文件系統篩選驅動程式 中的追蹤 Per-Stream 內容。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP;Windows 2000 Service Pack 4 的更新匯總 (SP4) |
目標平臺 | 桌面 |
標頭 | ntifs.h (include Ntifs.h) |
IRQL | 任何層級 |
另請參閱
FsRtlGetPerStreamContextPointer