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 는 지정된 볼륨에 대한 Filter Manager의 VDO(볼륨 디바이스 개체)에 대한 포인터를 반환합니다.

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

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

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

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

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

추가 정보

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject