FltAttachVolumeAtAltitude 函式 (fltkernel.h)
FltAttachVolumeAtAltitude 是偵錯支援例程,會將迷你篩選驅動程序實例附加至指定高度的磁碟區,並覆寫迷你篩選驅動程式 INF 檔案中的任何設定。
語法
NTSTATUS FLTAPI FltAttachVolumeAtAltitude(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in] PCUNICODE_STRING Altitude,
[in, optional] PCUNICODE_STRING InstanceName,
[out, optional] PFLT_INSTANCE *RetInstance
);
參數
[in, out] Filter
呼叫端的不透明篩選指標。 這個參數是必要的,而且不能是 NULL。
[in, out] Volume
要附加迷你篩選驅動程序實例之磁碟區的不透明磁碟區指標。 這個參數是必要的,而且不能是 NULL。
[in] Altitude
包含實例高度字串 的UNICODE_STRING 結構的指標。 這個參數是必要的,而且不能是 NULL。 (如需此參數的詳細資訊,請參閱下列一節。)
[in, optional] InstanceName
包含新實例實例實例名稱 之UNICODE_STRING 結構的指標。 此參數是選擇性的,可以是 NULL。 如果是 NULL,FltAttachVolumeAtAltitude 會從迷你篩選驅動程式名稱產生實例名稱,以及高度指向的高度字串。 視需要截斷產生的名稱,以INSTANCE_NAME_MAX_CHARS字元。
[out, optional] RetInstance
呼叫端配置的變數指標,該變數會接收新建立實例的不透明實例指標。 此參數是選擇性的,可以是 NULL。
傳回值
FltAttachVolumeAtAltitude 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
|
指定的 篩選 或 磁碟區 正在中斷。 這是錯誤碼。 |
|
迷你篩選驅動程式尚未開始篩選。 如需詳細資訊,請參閱 FltStartFiltering。 這是錯誤碼。 |
|
實例已存在於指定的磁碟區上這個高度。 這是錯誤碼。 |
|
指定的磁碟區上已經有這個名稱的實例。 這是錯誤碼。 |
|
FltAttachVolumeAtAltitude 遇到集區配置失敗。 這是錯誤碼。 |
|
高度 指向的 UNICODE_STRING結構未包含有效的高度字串。 這是錯誤碼。 |
備註
迷你篩選驅動程序應該只使用 FltAttachVolumeAtAltitude 進行偵錯。 它不應該在迷你篩選驅動程式的零售版本中呼叫此例程。
FltAttachVolumeAtAltitude 是 Win32 FilterAttachAtAltitude 函式的核心對等專案。
「高度」一詞是指實例佔用 (的位置,或應該佔用磁碟區迷你篩選驅動程序實例堆疊中的) 。 高度愈高,實例越遠於堆疊中的基底文件系統。 指定的磁碟區上只能附加一個實例的指定高度。
高度是由 高度字串所指定,這是寬字元陣列,其中包含0到9的一或多個十進位數;數位可以包含單一小數點。 例如,“100.123456” 和 “03333” 是有效的高度字串。
字串 “0333” 代表高於 “100.123456” (開頭和尾端零的高度。) 換句話說,高度為 “03333” 的實例比高度為 “100.123456” 的實例遠於基底文件系統。 不過,只有在兩個實例都附加至相同的磁碟區時,此比較才有意義。
InstanceName 參數中指定的實例名稱必須在整個系統中是唯一的。
FltAttachVolumeAtAltitude 會傳回 *RetInstance 中新實例的不透明實例指標。 此指標值可唯一識別迷你篩選驅動程序實例,只要實例附加至磁碟區,就會維持不變。
FltAttachVolumeAtAltitude 會在 *RetInstance 中傳回的不透明實例指標新增下拉式參考。 不再需要此指標時,呼叫端必須呼叫 FltObjectDereference 來釋放它。 因此,每個成功呼叫 FltAttachVolumeAtAltitude 都必須與後續對 FltObjectDereference 的呼叫進行比對。
若要比較附加至相同磁碟區的兩個迷你篩選驅動程序實例的高度,請呼叫 FltCompareInstanceAltitudes。
若要從磁碟區中斷連結迷你篩選驅動程序實例,請呼叫 FltDetachVolume。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
IRQL | PASSIVE_LEVEL |