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
정보가 요청된 미니 필터 드라이버 인스턴스 또는 레거시 필터 드라이버의 인덱스(0부터 시작하는 인덱스)입니다.
[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
버퍼에서 반환된 바이트 수를 수신하는 호출자 할당 변수에 대한 포인터로, 버퍼가 가리키는 . BufferSize 입력 값이 너무 작으면 FltEnumerateInstanceInformationByDeviceObjectSTATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 요청된 정보를 저장하는 데 필요한 바이트 수로 설정합니다. 이 매개 변수는 필수이며 NULL 수 없습니다.
반환 값
FltEnumerateInstanceInformationByDeviceObjectSTATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
| 반환 코드 | 묘사 |
|---|---|
|
Buffer 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다. |
|
일치하는 미니 필터 인스턴스가 발견되었지만 삭제되고 있습니다. 레거시 필터 드라이버를 언로드할 수 없으므로 이 반환 값은 레거시 필터 드라이버에 적용되지 않습니다. |
|
InformationClass 매개 변수에 잘못된 값이 지정되었습니다. |
|
볼륨의 인스턴스/필터 목록에 더 이상 항목이 없습니다. |
|
DeviceObject 관련 볼륨을 찾을 수 없습니다. |
|
deviceObject 올바른 볼륨 디바이스 개체가 아닙니다.
-또는- DeviceObject 관련된 볼륨이 등록되었지만 필터 인스턴스가 연결되지 않았습니다. |
발언
Index 매개 변수를 사용하면 FltEnumerateInstanceInformationByDeviceObjectDeviceObject관련된 볼륨의 인스턴스/필터 목록에서 미니 필터 드라이버 인스턴스 및 레거시 필터 드라이버 중에서 선택할 수 있습니다. 인스턴스/필터 목록의 미니 필터 드라이버 인스턴스는 언제든지 변경될 수 있으므로 FltEnumerateInstanceInformationByDeviceObject에 대한 두 개의 호출은 동일한 인덱스 및 DeviceObject 값으로 동일한 결과를 반환하도록 보장되지 않습니다.
이 루틴은 InformationClass 매개 변수의 값이 instanceAggregateStandardInformation 경우 레거시 필터 드라이버 정보와 미니 필터 드라이버 인스턴스 정보를 모두 반환합니다.
요구 사항
| 요구 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 8부터 사용할 수 있습니다. |
| 대상 플랫폼 | 보편적 |
| 헤더 | fltkernel.h(Fltkernel.h 포함) |
| 라이브러리 | FltMgr.lib |
| IRQL | <= APC_LEVEL |
참고 항목
FltEnumerateInstanceInformationByFilter