FilterVolumeInstanceFindFirst 函式 (fltuser.h)
FilterVolumeInstanceFindFirst函式會傳回迷你篩選驅動程式實例或舊版篩選驅動程式的相關資訊,並用來開始掃描附加至磁片區的篩選驅動程式。
語法
HRESULT FilterVolumeInstanceFindFirst(
[in] LPCWSTR lpVolumeName,
[in] INSTANCE_INFORMATION_CLASS dwInformationClass,
[out] LPVOID lpBuffer,
[in] DWORD dwBufferSize,
[out] LPDWORD lpBytesReturned,
[out] LPHANDLE lpVolumeInstanceFind
);
參數
[in] lpVolumeName
Null 終止寬字元字串的指標,其中包含附加迷你篩選實例或舊版篩選的磁片區名稱。
lpVolumeName輸入字串可以是下列任一項。 尾端反斜線 (\) 是選擇性的。
- 磁碟機號,例如 D:\
- 磁片區掛接點的路徑,例如 c:\mnt\edrive\
- 唯一磁片區識別碼 (也稱為磁片區 GUID 名稱) ,例如 \??\Volume{7603f260-142a-11d4-ac67-806d6172696f}\
- 非持續性裝置名稱 (也稱為 目標名稱 或 NT 裝置名稱) ,例如 \Device\HarddiskVolume1\
[in] dwInformationClass
傳回的篩選驅動程式資訊結構類型。 此參數必須包含下列其中一個值。
值 | 意義 |
---|---|
InstanceBasicInformation | 傳回迷你篩選實例 的INSTANCE_BASIC_INFORMATION 結構。 會忽略舊版篩選驅動程式。 |
InstanceFullInformation | 傳回迷你篩選實例 的INSTANCE_FULL_INFORMATION 結構。 會忽略舊版篩選驅動程式。 |
InstancePartialInformation | 傳回迷你篩選實例的 INSTANCE_PARTIAL_INFORMATION 結構。 會忽略舊版篩選驅動程式。 |
InstanceAggregateStandardInformation |
傳回 實例 的INSTANCE_AGGREGATE_STANDARD_INFORMATION 結構。 不會使用 結構的 LegacyFilter 成員。
從 Windows Vista 開始,即可使用此結構。 |
[out] lpBuffer
接收要求資訊的呼叫端配置緩衝區指標。 緩衝區中傳回的資訊類型是由 dwInformationClass 參數所定義。
[in] dwBufferSize
lpBuffer參數指向的緩衝區大小,以位元組為單位。 呼叫端應該根據指定的 dwInformationClass來設定此參數。
[out] lpBytesReturned
呼叫端配置的變數指標,該變數會接收 lpBuffer 指向之緩衝區中傳回的位元組數目,如果 FilterVolumeInstanceFindFirst 的呼叫成功。 這個參數是必要的,而且不能是 Null。
[out] lpVolumeInstanceFind
只有在指定 InstanceAggregateStandardInformation 時) ,才會在指定 FilterVolumeInstanceFindFirst 呼叫成功時,才會收到迷你篩選實例或舊版 (篩選準則之搜尋控制碼的呼叫端組態變數指標。 否則, lpVolumeInstanceFind 會收到INVALID_HANDLE_VALUE。 此搜尋控制碼可用於 FilterVolumeInstanceFindNext 和 FilterVolumeInstanceFindClose的後續呼叫。
傳回值
FilterVolumeInstanceFindFirst 會在成功時傳回S_OK。 否則,它會傳回 HRESULT 錯誤值,例如下列其中一項:
傳回碼 | 描述 |
---|---|
|
lpBuffer所指向的緩衝區不夠大,無法包含要求的資訊。 傳回此值時, lpBytesReturned 會包含指定 dwInformationClass 結構所需的緩衝區大小,以位元組為單位。 |
|
為 dwInformationClass 參數指定了不正確值。 例如,如果為 Windows Vista 之前的作業系統指定 InstanceAggregateStandardInformation , FilterVolumeInstanceFindFirst 會傳回此 HRESULT 值。 |
|
在指定的磁片區上找不到篩選驅動程式。 |
備註
FilterVolumeInstanceFindFirst函式會開啟搜尋控制碼,並傳回第一個已附加至lpVolumeName所命名磁片區之篩選驅動程式的相關資訊。 建立搜尋控制碼之後,請呼叫 FilterVolumeInstanceFindNext 來搜尋附加至相同磁片區的其他篩選驅動程式。 不再需要搜尋控制碼時,請呼叫 FilterVolumeInstanceFindClose加以關閉。
從 Windows Vista 開始, FilterVolumeInstanceFindFirst 可以在 dwInformationClass 參數值為 InstanceAggregateStandardInformation時傳回舊版篩選驅動程式資訊和迷你篩選驅動程式實例資訊。 對於先前的作業系統,此函式無法傳回舊版篩選資訊,因為無法使用INSTANCE_AGGREGATE_STANDARD_INFORMATION結構。
需求
目標平台 | Universal |
標頭 | fltuser.h (包含 FltUser.h) |
程式庫 | FltLib.lib |
Dll | FltLib.dll |