다음을 통해 공유


FltGetVolumeProperties 함수(fltkernel.h)

FltGetVolumeProperties 루틴은 지정된 볼륨에 대한 볼륨 속성 정보를 반환합니다.

구문

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

매개 변수

[in] Volume

볼륨에 대한 불투명 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[out] VolumeProperties

요청된 볼륨 속성 정보를 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 입력에서 Length가 0이면 이 매개 변수는 무시됩니다. 그렇지 않으면 이 매개 변수가 필요하며 NULL일 수 없습니다.

VolumePropertiesLength

VolumeProperties 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. 이 매개 변수는 선택 사항이며 0일 수 있습니다. 0이면 LengthReturned 은 볼륨 속성을 보유하는 데 필요한 버퍼의 크기(바이트)를 받습니다. 이 매개 변수가 0이 아닌 경우 적어도 sizeof(FLT_VOLUME_PROPERTIES)의 값이어야 합니다.

[out] LengthReturned

VolumeProperties에 반환된 정보의 크기(바이트)를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. FltGetVolumeProperties가 STATUS_BUFFER_TOO_SMALL 반환하거나 Length가 입력 시 0이면 이 매개 변수는 볼륨 속성을 보유하는 데 필요한 버퍼의 크기(바이트)를 대신 받습니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

FltGetVolumeProperties 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_BUFFER_OVERFLOW
VolumeProperties 매개 변수가 가리키는 버퍼는 FLT_VOLUME_PROPERTIES 구조체의 고정 부분을 보유할 만큼 충분히 크지만 FileSystemDriverName, FileSystemDeviceName 또는 RealDeviceName 멤버는 보유하지 않습니다. 이 경우 볼륨 정보의 고정 부분만 VolumeProperties 매개 변수가 가리키는 버퍼에 반환됩니다. LengthReturned 매개 변수는 반환된 데이터의 실제 길이(바이트)를 받습니다. 경고 코드입니다.
STATUS_BUFFER_TOO_SMALL
VolumeProperties 매개 변수가 가리키는 버퍼가 볼륨 속성 정보를 저장할 만큼 크지 않습니다. LengthReturned 매개 변수는 필요한 버퍼 크기를 받습니다. 이 경우 볼륨 정보가 반환되지 않습니다. 오류 코드입니다.

설명

FltGetVolumeProperties 는 시스템 교착 상태의 위험 없이 탑재 프로세스 중에 안전하게 쿼리할 수 있는 정보만 반환합니다. 따라서 미니필터 드라이버는 일반적으로 탑재 후 콜백 함수 또는 instanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) 루틴에서 이 루틴을 호출하여 지정된 볼륨에 연결할지 여부를 결정합니다.

요구 사항

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

추가 정보

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK