FltEnumerateInstanceInformationByDeviceObject 函式 (fltkernel.h)
FltEnumerateInstanceInformationByDeviceObject 例程提供有關迷你篩選驅動程序實例和舊版篩選驅動程式的相關信息,這些驅動程式附加至與指定裝置對象相關的磁碟區。
語法
NTSTATUS FLTAPI FltEnumerateInstanceInformationByDeviceObject(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Index,
[in] INSTANCE_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
參數
[in] DeviceObject
相關檔案物件或磁碟區的裝置物件。
[in] Index
迷你篩選驅動程序實例或要求資訊的舊版篩選驅動程式之以零起始的索引。
[in] InformationClass
要針對迷你篩選驅動程序實例或舊版篩選驅動程式傳回的信息類型。 此參數可以有下列其中一個值。
值 | 意義 |
---|---|
InstanceBasicInformation | Buffer 參數所指向的緩衝區會收到迷你篩選實例的INSTANCE_BASIC_INFORMATION結構。 會忽略舊版篩選驅動程式。 |
InstanceFullInformation | Buffer 參數指向的緩衝區會收到迷你篩選實例的INSTANCE_FULL_INFORMATION結構。 會忽略舊版篩選驅動程式。 |
InstancePartialInformation | Buffer 參數所指向的緩衝區會收到迷你篩選實例的INSTANCE_PARTIAL_INFORMATION結構。 會忽略舊版篩選驅動程式。 |
InstanceAggregateStandardInformation | Buffer 參數所指向的緩衝區會收到迷你篩選驅動程序實例或舊版篩選驅動程式的INSTANCE_AGGREGATE_STANDARD_INFORMATION結構。 |
[out] Buffer
接收所要求資訊的呼叫端配置緩衝區指標。 緩衝區中傳回的信息類型是由 InformationClass 參數所定義。
[in] BufferSize
Buffer 參數所指向緩衝區的大小,以位元組為單位。 呼叫端應該根據指定的 InformationClass 值來設定此參數。
[out] BytesReturned
呼叫端配置的變數指標,該變數會接收 Buffer 指向之緩衝區中傳回的位元組數目。 如果 BufferSize 的輸入值太小, FltEnumerateInstanceInformationByDeviceObject 會傳回 STATUS_BUFFER_TOO_SMALL 並將此變數設定為儲存所要求資訊所需的位元組數目。 這個參數是必要的,而且不能是 NULL。
傳回值
FltEnumerateInstanceInformationByDeviceObject 會 傳回STATUS_SUCCESS 或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
|
Buffer 參數指向的緩衝區不夠大,無法儲存要求的資訊。 |
|
找到相符的迷你篩選實例,但正在損毀。 請注意,此傳回值不適用於舊版篩選驅動程式,因為無法卸除舊版篩選驅動程式。 |
|
為 InformationClass 參數指定了無效的值。 |
|
磁碟區實例/篩選清單中沒有其他專案。 |
|
找不到 DeviceObject 的相關磁碟區。 |
|
DeviceObject 不是有效的磁碟區裝置物件。
-或- 與 DeviceObject 相關的磁碟區已註冊,但未附加任何篩選實例。 |
備註
使用 Index 參數只是 FltEnumerateInstanceInformationByDeviceObject 的方法,可針對與 DeviceObject 相關的磁碟區,在迷你篩選驅動程式實例和舊版篩選驅動程式之間選取。 由於實例/篩選清單中的迷你篩選驅動程序實例可以隨時變更,因此不保證會傳回相同的 Index 和 DeviceObject 值的兩次 FltEnumerateInstanceInformationByDeviceObject 呼叫。
當 InformationClass 參數的值是 InstanceAggregateStandardInformation 時,此例程會傳回舊版篩選驅動程式資訊和迷你篩選驅動程式實例資訊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |
另請參閱
FltEnumerateInstanceInformationByFilter