다음을 통해 공유


FltGetVolumeName 함수(fltkernel.h)

FltGetVolumeName 루틴은 지정된 볼륨의 볼륨 이름을 가져옵니다.

구문

NTSTATUS FLTAPI FltGetVolumeName(
  [in]                PFLT_VOLUME     Volume,
  [in, out, optional] PUNICODE_STRING VolumeName,
  [out, optional]     PULONG          BufferSizeNeeded
);

매개 변수

[in] Volume

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

[in, out, optional] VolumeName

STATUS_SUCCESS 반환되는 경우 볼륨의 비영구 디바이스 개체 이름(예: "\Device\HarddiskVolume1")이 포함된 호출자가 할당한 UNICODE_STRING 구조체에 대한 포인터입니다. VolumeName-Buffer>에 대한 풀도 호출자가 할당됩니다.

이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 그러나 BufferSizeNeededNULL인 경우 NULL이 아니어야 합니다. 이 매개 변수가 NULL 이고 BufferSizeNeededNULL이 아니면 FltGetVolumeName 은 요청된 볼륨 이름에 필요한 버퍼 크기를 BufferSizeNeeded 매개 변수에 저장하고 STATUS_BUFFER_TOO_SMALL 반환합니다. 설명 부분을 참조하세요.

[out, optional] BufferSizeNeeded

요청된 볼륨 이름의 크기(바이트)를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 그러나 VolumeNameNULL이면 NULL이 아니어야 FltGetVolumeName이 요청된 볼륨 이름에 필요한 버퍼 크기를 저장할 수 있습니다.

반환 값

FltGetVolumeName 은 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS VolumeName에서 가리키는 UNICODE_STRING 구조체에는 구조체에 대한 Buffer 멤버의 볼륨 이름과 Length 멤버의 이름 길이(바이트)가 포함됩니다.
STATUS_BUFFER_TOO_SMALL VolumeName이 가리키는 UNICODE_STRING 구조체의 Buffer 멤버가 너무 작아서(MaximumLength 멤버로 표시됨) 전체 볼륨 이름을 포함할 수 없습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER VolumeNameBufferSizeNeeded는 모두 NULL입니다. 오류 코드입니다.

설명

이 루틴이 성공하려면 전체 볼륨 이름 문자열을 포함하려면 VolumeName이 가리키는 UNICODE_STRING 구조체의 Buffer 멤버가 MaximumLength 멤버에 표시된 대로 충분히 커야 합니다.

다음 의사 코드는 BufferSizeNeeded 를 알 수 없는 경우 볼륨 이름을 성공적으로 획득할 수 있는 한 가지 방법을 보여 줍니다.

  • FltGetVolumeName을 호출하여 Buffer에 필요한 풀과 MaximumLength에 필요한 크기를 결정합니다. 예: FltGetVolumeName(VolumePtr, NULL, &VolumeNameSize);

  • 버퍼에 대한 풀 바이트를 할당 VolumeNameSize 하고 MaximumLength를 로 VolumeNameSize설정합니다.

  • FltGetVolumeName을 다시 호출하여 볼륨 이름을 가져옵니다. 예: FltGetVolumeName(VolumePtr, &VolumeNameStruct, NULL);

VolumeNameStruct.Buffer 에는 길이 바이트인 유니코드 볼륨 이름 문자열이 VolumeNameStruct.Length 포함되어 있습니다.

지정된 볼륨의 볼륨 GUID 이름을 얻으려면 FltGetVolumeGuidName을 호출합니다.

지정된 이름의 볼륨에 대한 불투명 볼륨 포인터를 얻으려면 FltGetVolumeFromName을 호출합니다.

볼륨 이름을 지정하는 방법에 대한 자세한 내용은 스토리지 클래스 드라이버에서 탑재 관리자 요청 지원을 참조하세요.

요구 사항

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

추가 정보

FilterGetDosName

FltGetVolumeFromName

FltGetVolumeGuidName

UNICODE_STRING