FltOpenVolume 함수(fltkernel.h)

FltOpenVolume 루틴은 지정된 미니필터 드라이버 instance 연결된 파일 시스템 볼륨에 대한 핸들 및 파일 개체 포인터를 반환합니다.

구문

NTSTATUS FLTAPI FltOpenVolume(
  [in]  PFLT_INSTANCE Instance,
  [out] PHANDLE       VolumeHandle,
  [out] PFILE_OBJECT  *VolumeFileObject
);

매개 변수

[in] Instance

instance 대한 불투명 instance 포인터입니다. 이 instance 로컬 볼륨에 연결해야 합니다.

[out] VolumeHandle

파일 시스템 볼륨에 대한 핸들입니다.

[out] VolumeFileObject

볼륨의 루트 디렉터리에 대한 파일 개체 포인터를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

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

반환 코드 설명
STATUS_FLT_DELETING_OBJECT
instance 또는 볼륨이 분해되고 있습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER
instance 네트워크 볼륨에 연결됩니다. 오류 코드입니다.

설명

VolumeHandle 매개 변수에서 반환된 핸들이 더 이상 필요하지 않은 경우 호출자는 FltClose를 호출하여 해제해야 합니다. 따라서 FltOpenVolume 에 대한 모든 성공적인 호출은 FltClose에 대한 후속 호출과 일치해야 합니다.

파일 개체 포인터가 VolumeFileObject 매개 변수에 반환되는 경우 호출자는 ObDereferenceObject를 호출하여 더 이상 필요하지 않은 경우 해제해야 합니다.

Instance 매개 변수로 지정된 instance 로컬 볼륨에 연결해야 합니다. 네트워크 볼륨에 연결된 경우 FltOpenVolume 은 STATUS_INVALID_PARAMETER 반환합니다.

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

지정된 instance 연결된 볼륨에 대한 자세한 정보를 얻으려면 FltQueryVolumeInformation을 호출합니다.

참고: 시스템 교착 상태가 발생할 수 있으므로 NULL이 아닌 최상위 IRP 값으로 이 루틴을 호출하지 마세요. 스레드 TopLevelIrp이 설정되었는지 확인하려면 IoGetTopLevelIrp을 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Sp4, Windows XP SP3, Windows Server 2003 SP1 이상 버전의 Windows 운영 체제용 Microsoft Windows 2000 업데이트 롤업 1에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

추가 정보

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject