FSRTL_PER_FILE_CONTEXT結構 (ntifs.h)
舊版文件系統篩選驅動程式可以使用 FSRTL_PER_FILE_CONTEXT 結構,將驅動程式特定內容資訊與開啟的檔案產生關聯。
語法
typedef struct _FSRTL_PER_FILE_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;
成員
Links
此結構的連結位於與相同檔案相關聯的所有個別檔案內容結構清單中。 FsRtlInsertPerFileContext 將此成員插入檔案的所有每個檔案內容結構清單中。
OwnerId
篩選驅動程式配置的緩衝區指標,可唯一識別每個檔案內容結構的擁有者。 此變數的格式為 filter-driver-specific。 篩選驅動程式必須將這個成員設定為非NULL 值。
InstanceId
filter-driver-allocated 緩衝區的指標,可用來區分相同篩選驅動程式所建立的每個檔案內容結構。 此變數的格式為 filter-driver-specific。 篩選驅動程式可以將這個成員設定為 NULL。
FreeCallback
釋放每個檔案內容結構的 回呼例程指標。 篩選驅動程式必須將這個成員設定為非NULL 值。
言論
為了將內容資訊與檔案產生關聯,舊版篩選驅動程式會先配置
篩選寫入器應該選擇 OwnerID 值,這個值既有意義又方便,例如驅動程式物件或裝置物件的位址。
篩選寫入器應該選擇 InstanceID 值,這個值既有意義又方便,例如檔案的檔案內容對象的位址。 使用 FsRtlGetPerFileContextPointer 巨集,從檔案物件擷取該位址。
FSRTL_PER_FILE_CONTEXT 結構可用於 as-is,或內嵌在驅動程式定義的個別檔案內容結構中。
FSRTL_PER_FILE_CONTEXT 結構可以從分頁或非分頁集區配置。
FsRtlInitPerFileContext 巨集會初始化 FSRTL_PER_FILE_CONTEXT 結構。
參數
FileContext
FSRTL_PER_FILE_CONTEXT
要初始化FSRTL_PER_FILE_CONTEXT物件。
OwnerId
PVOID
篩選驅動程式配置的變數指標,可唯一識別每個檔案內容結構的擁有者。 格式是篩選驅動程式特定的。 此參數必須具有非NULL 值。
InstanceId
PVOID
篩選驅動程式配置的變數指標,可唯一識別每個檔案內容結構的擁有者。 格式是篩選驅動程式特定的。 此參數必須具有非NULL 值。
FreeCallback
PFREE_FUNCTION
釋放每個檔案內容結構的 回呼例程指標。
傳回值
VOID
沒有。
呼叫 FsRtlInsertPerFileContext 之前,必須先使用此巨集。
篩選寫入器應該選擇 OwnerID 值,這個值既有意義又方便,例如驅動程式物件或裝置物件的位址。
篩選寫入器應該使用 InstanceID 值,這個值既有意義又方便,例如檔案的檔案內容對象的位址。 使用 FsRtlGetPerFileContextPointer 巨集,從檔案物件擷取該位址。
如需如何使用和建立內容對象的詳細資訊,請參閱舊版文件系統篩選驅動程式中的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
標頭 | ntifs.h (include Fltkernel.h, Ntifs.h) |
另請參閱
在舊版文件系統篩選驅動程式 中