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。 此搜尋控制碼可用於 FilterVolumeInstanceFindNextFilterVolumeInstanceFindClose的後續呼叫。

傳回值

FilterVolumeInstanceFindFirst 會在成功時傳回S_OK。 否則,它會傳回 HRESULT 錯誤值,例如下列其中一項:

傳回碼 描述
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
lpBuffer所指向的緩衝區不夠大,無法包含要求的資訊。 傳回此值時, lpBytesReturned 會包含指定 dwInformationClass 結構所需的緩衝區大小,以位元組為單位。
HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER)
dwInformationClass 參數指定了不正確值。 例如,如果為 Windows Vista 之前的作業系統指定 InstanceAggregateStandardInformationFilterVolumeInstanceFindFirst 會傳回此 HRESULT 值。
HRESULT_FROM_WIN32 (ERROR_NO_MORE_ITEMS)
在指定的磁片區上找不到篩選驅動程式。

備註

FilterVolumeInstanceFindFirst函式會開啟搜尋控制碼,並傳回第一個已附加至lpVolumeName所命名磁片區之篩選驅動程式的相關資訊。 建立搜尋控制碼之後,請呼叫 FilterVolumeInstanceFindNext 來搜尋附加至相同磁片區的其他篩選驅動程式。 不再需要搜尋控制碼時,請呼叫 FilterVolumeInstanceFindClose加以關閉。

從 Windows Vista 開始, FilterVolumeInstanceFindFirst 可以在 dwInformationClass 參數值為 InstanceAggregateStandardInformation時傳回舊版篩選驅動程式資訊和迷你篩選驅動程式實例資訊。 對於先前的作業系統,此函式無法傳回舊版篩選資訊,因為無法使用INSTANCE_AGGREGATE_STANDARD_INFORMATION結構。

需求

   
目標平台 Universal
標頭 fltuser.h (包含 FltUser.h)
程式庫 FltLib.lib
Dll FltLib.dll

另請參閱

FilterVolumeInstanceFindClose

FilterVolumeInstanceFindNext

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION