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
정보가 요청된 미니필터 드라이버 instance 또는 레거시 필터 드라이버의 인덱스(0부터 시작)입니다.
[in] InformationClass
미니필터 드라이버 instance 또는 레거시 필터 드라이버에 대해 반환할 정보 유형입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.
값 | 의미 |
---|---|
InstanceBasicInformation | Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_BASIC_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다. |
InstanceFullInformation | Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_FULL_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다. |
InstancePartialInformation | Buffer 매개 변수가 가리키는 버퍼는 미니필터 instance 대한 INSTANCE_PARTIAL_INFORMATION 구조를 받습니다. 레거시 필터 드라이버는 무시됩니다. |
InstanceAggregateStandardInformation | Buffer 매개 변수가 가리키는 버퍼는 미니필터 드라이버 instance 또는 레거시 필터 드라이버에 대한 INSTANCE_AGGREGATE_STANDARD_INFORMATION 구조를 받습니다. |
[out] Buffer
요청된 정보를 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 버퍼에 반환되는 정보의 형식은 InformationClass 매개 변수에 의해 정의됩니다.
[in] BufferSize
Buffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. 호출자는 지정된 InformationClass 값에 따라 이 매개 변수를 설정해야 합니다.
[out] BytesReturned
버퍼가 가리키는 버퍼에 반환된 바이트 수를 수신하는 호출자 할당 변수에 대한 포인터입니다. BufferSize의 입력 값이 너무 작으면 FltEnumerateInstanceInformationByDeviceObject는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 요청된 정보를 저장하는 데 필요한 바이트 수로 설정합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
반환 값
FltEnumerateInstanceInformationByDeviceObject 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
Buffer 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다. |
|
일치하는 미니 필터 instance 발견되었지만 철거되고 있습니다. 레거시 필터 드라이버를 언로드할 수 없으므로 이 반환 값은 레거시 필터 드라이버에 적용되지 않습니다. |
|
InformationClass 매개 변수에 잘못된 값이 지정되었습니다. |
|
볼륨의 instance/필터 목록에 더 이상 항목이 없습니다. |
|
DeviceObject에 대한 관련 볼륨을 찾을 수 없습니다. |
|
DeviceObject 는 유효한 볼륨 디바이스 개체가 아닙니다.
또는 DeviceObject와 관련된 볼륨이 등록되었지만 필터 인스턴스가 연결되어 있지 않습니다. |
설명
Index 매개 변수를 사용하면 FltEnumerateInstanceInformationByDeviceObject가 DeviceObject와 관련된 볼륨의 instance/필터 목록에서 미니필터 드라이버 인스턴스 및 레거시 필터 드라이버 중에서 선택할 수 있습니다. instance/필터 목록의 미니필터 드라이버 인스턴스는 언제든지 변경할 수 있으므로 Index 및DeviceObject 값이 동일한 FltEnumerateInstanceInformationByDeviceObject에 대한 두 번의 호출은 동일한 결과를 반환하도록 보장되지 않습니다.
InformationClass 매개 변수 값이 InstanceAggregateStandardInformation인 경우 이 루틴은 레거시 필터 드라이버 정보와 미니 필터 드라이버 instance 정보를 모두 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 시작해서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
IRQL | <= APC_LEVEL |
추가 정보
FltEnumerateInstanceInformationByFilter