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