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 에 다시 전달할 수 있습니다. 이 경우 Context 의 버퍼를 0으로 다시 초기화해서는 안 됩니다. 이 버퍼는 지정된 긴 이름을 변환하기 위해 초기 호출에 대해서만 0으로 지정해야 합니다. 동일한 긴 이름을 반복적으로 호출할 때 RtlGenerate8dot3Name 은 이름 충돌을 방지하기 위해 이 버퍼에 프라이빗 컨텍스트 정보를 저장합니다.

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

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

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

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

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

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

추가 정보

RtlIsNameLegalDOS8Dot3

RtlIsValidOemCharacter

UNICODE_STRING