다음을 통해 공유


FltGetDeviceObject 함수(fltkernel.h)

FltGetDeviceObject 루틴은 지정된 볼륨에 대한 Filter Manager의 VDO(볼륨 디바이스 개체)에 대한 포인터를 반환합니다.

통사론

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

매개 변수

[in] Volume

볼륨에 대한 불투명 포인터입니다.

[out] DeviceObject

볼륨 디바이스 개체 포인터를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL 수 없습니다.

반환 값

FltGetDeviceObject STATUS_SUCCESS 또는 다음과 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 묘사
STATUS_FLT_NO_DEVICE_OBJECT 요청된 디바이스 개체가 지정된 볼륨에 존재하지 않습니다. 오류 코드입니다.

발언

FltGetDeviceObject 지정된 볼륨에 대한 필터 관리자의 VDO(볼륨 디바이스 개체)에 대한 포인터를 반환합니다.

볼륨 디바이스 개체에 대한 자세한 내용은 파일 시스템 스택 참조하세요.

필터 관리자의 VDO는 기본 스토리지 드라이버의 디스크 디바이스 개체 또는 기본 파일 시스템의 VDO와 동일하지 않습니다. 디스크 디바이스 개체에 대한 포인터를 얻으려면 Volume 매개 변수에 지정된 볼륨에서 FltGetDiskDeviceObject 호출합니다. 기본 파일 시스템의 VDO에 대한 포인터를 얻으려면 FltGetDeviceObject반환된 RetDeviceObjectIoGetDeviceAttachmentBaseRef 호출합니다.

지정된 디바이스 개체에 대한 해당 볼륨에 대한 불투명 포인터를 얻으려면 FltGetVolumeFromDeviceObject호출합니다.

fltGetDeviceObject 반환된 디바이스 개체 포인터의 참조 횟수가 증가합니다. 이 포인터가 더 이상 필요하지 않은 경우 호출자는 ObDereferenceObject호출하여 이 참조 수를 줄여야 합니다. 따라서 FltGetDeviceObject 대한 모든 성공적인 호출은 ObDereferenceObject대한 후속 호출과 일치해야 합니다.

요구 사항

요구
대상 플랫폼 보편적
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

참고 항목

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject