다음을 통해 공유


RtlGenerate8dot3Name 함수(ntifs.h)

RtlGenerate8dot3Name 루틴은 지정된 긴 파일 이름에 대한 짧은(8.3) 이름을 생성합니다.

통사론

NTSYSAPI NTSTATUS RtlGenerate8dot3Name(
  [in]      PCUNICODE_STRING       Name,
  [in]      BOOLEAN                AllowExtendedCharacters,
  [in, out] PGENERATE_NAME_CONTEXT Context,
  [in, out] PUNICODE_STRING        Name8dot3
);

매개 변수

[in] Name

파일의 긴 이름을 포함하는 유니코드 문자열에 대한 포인터입니다. 이 파일 이름의 선행 기간은 해당 짧은 이름을 생성하는 동안 건너뜁니다.

[in] AllowExtendedCharacters

생성된 짧은 파일 이름에 확장 문자를 포함할 수 있는 경우 TRUE로 설정합니다. 생성된 짧은 파일 이름에 현재 코드 페이지의 ANSI 또는 OEM 범위에서 0x20(공간)부터 del(0x7f)에 이르는 문자만 포함되어야 하는 경우 FALSE로 설정합니다.

[in, out] Context

RtlGenerate8dot3Name사용할 호출자 할당 버퍼에 대한 포인터입니다. RtlGenerate8dot3Name 처음으로 호출하여 지정된 긴 파일 이름을 변환하기 전에 호출자는 버퍼를 0으로 채울 책임이 있습니다.

[in, out] Name8dot3

생성된 짧은 파일 이름을 수신하기 위해 호출자가 할당한 버퍼에 대한 포인터입니다. 이 버퍼의 크기는 24바이트 이상이어야 합니다(유니코드 문자 12자).

반환 값

이 루틴은 짧은 이름이 성공적으로 생성되면 STATUS_SUCCESS 반환합니다. 시스템에서 지정된 파일에 대한 고유한 짧은 이름을 생성할 수 없는 경우 STATUS_FILE_SYSTEM_LIMITATION 반환합니다. 지정된 단일 긴 이름에 대해 1백만 번의 재시도 시도 후 이 오류를 반환합니다.

발언

RtlGenerate8dot3Name 최대 8자로 생성된 짧은 이름을 반환하고 마침표 바로 뒤에 최대 3자를 더 반환합니다.

RtlGenerate8dot3Name 반복적으로 호출할 수 있습니다. 예를 들어 처음에 생성된 짧은 이름이 기존 파일 이름의 중복인 경우 호출자는 동일한 매개 변수를 RtlGenerate8dot3Name 다시 전달할 수 있습니다. 이 경우 컨텍스트 버퍼를 0으로 다시 초기화해서는 안 됩니다. 이 버퍼는 지정된 긴 이름을 변환하기 위한 초기 호출에 대해서만 0이어야 합니다. 동일한 긴 이름에 대한 반복 호출에서 RtlGenerate8dot3Name 이름 충돌을 방지하기 위해 이 버퍼에 개인 컨텍스트 정보를 저장합니다.

동일한 NameContext 사용하여 RtlGenerate8dot3Name 두 번의 호출은 동일한 결과를 반환하도록 보장되지 않습니다. 호출자는 긴 이름을 짧은 이름으로 매핑하는 것이 비결정적이라고 가정해야 합니다.

RtlGenerate8dot3Name 현재 시스템 코드 페이지를 사용하여 지정된 긴 이름을 변환하여 입력 긴 이름의 유효하지 않거나 불필요한 문자를 삭제합니다. AllowExtendedCharacters TRUE로 설정된 경우 대문자 OEM 문자에 매핑되는 ANSI 또는 DBCS(더블 바이트 문자 집합) 문자는 반환된 짧은 이름의 일부가 될 수 있습니다.

RtlGenerate8dot3Name 대문자로 된 짧은 파일 이름을 반환합니다. 지정된 긴 이름에서 발생하는 다음 문자에 대해 생성된 짧은 이름의 밑줄을 반환합니다.

  • 콜론 및 세미콜론
  • 쉼표
  • 더하기 및 같음 기호
  • 대괄호

다른 문자열 처리 루틴에 대한 자세한 내용은 RTL(Run-Time 라이브러리) 루틴참조하세요.

요구 사항

요구
대상 플랫폼 보편적
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

참고 항목

RtlIsNameLegalDOS8Dot3

RtlIsValidOemCharacter

UNICODE_STRING