다음을 통해 공유


GetNLSVersionEx 함수(winnls.h)

이름으로 지정된 로캘에 대해 지정된 NLS 기능의 현재 버전에 대한 정보를 검색합니다.

참고 애플리케이션은 Windows Vista 이상에서만 실행되도록 설계된 경우 GetNLSVersion 을 기본 설정으로 이 함수를 호출해야 합니다.

 

구문

BOOL GetNLSVersionEx(
  [in]           NLS_FUNCTION       function,
  [in, optional] LPCWSTR            lpLocaleName,
  [in, out]      LPNLSVERSIONINFOEX lpVersionInformation
);

매개 변수

[in] function

쿼리할 NLS 기능입니다. 이 값은 COMPARE_STRING 합니다. SYSNLS_FUNCTION 열거형을 참조하세요.

[in, optional] lpLocaleName

로캘 이름 또는 다음 미리 정의된 값 중 하나에 대한 포인터입니다.

[in, out] lpVersionInformation

NLSVERSIONINFOEX 구조체에 대한 포인터입니다. 애플리케이션은 dwNLSVersionInfoSize 멤버 sizeof(NLSVERSIONINFOEX)를 로 초기화해야 합니다.

참고 Windows Vista 이상에서 함수는 NLSVERSIONINFO 구조에서 버전 정보를 제공할 수 있습니다.
 

반환 값

애플리케이션이 lpVersionInformation에 유효한 값을 제공한 경우에만 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError를 호출할 수 있습니다.

  • ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.

설명

이 함수를 사용하면 Active Directory와 같은 애플리케이션에서 NLS 변경이 특정 인덱스 테이블에 사용되는 로캘에 영향을 미치는지 확인할 수 있습니다. 그렇지 않으면 테이블을 다시 인덱싱할 필요가 없습니다. 자세한 내용은 애플리케이션에서 정렬 처리를 참조하세요. 특히 정렬 버전이 변경되었으며 다시 인덱싱해야 하는지 확인하려면 다음을 수행합니다.

  1. GetNLSVersionEx를 사용하여 데이터의 원래 인덱싱을 수행할 때 NLSVERSIONINFOEX 구조를 검색합니다.
  2. 다음 속성을 인덱스와 함께 저장하여 버전을 식별합니다.
    • NLSVERSIONINFOEX.dwNLSVersion. 사용 중인 정렬 테이블의 버전을 지정합니다.
    • NLSVERSIONINFOEX.dwEffectiveId. 정렬의 유효 로캘을 지정합니다. 사용자 지정 로캘은 기본 로캘의 정렬을 가리킵니다.
    • NLSVERSIONINFOEX.guidCustomVersion. 이 GUID는 사용자 지정 로캘이 있는 사용자 지정 로캘에 대한 특정 사용자 지정 정렬을 지정하는 GUID입니다.
  3. 인덱스를 사용하는 경우 GetNLSVersionEx 를 사용하여 데이터 버전을 검색합니다.
  4. 세 가지 속성 중에서 변경된 경우 사용 중인 정렬 데이터가 다른 결과를 반환할 수 있으며 인덱싱이 레코드를 찾지 못할 수 있습니다.
  5. 데이터에 잘못된 유니코드 코드 포인트가 포함되어 있지 않다는 것을 알고 있는 경우(즉, 모든 문자열이 IsNLSDefinedString에 대한 호출을 전달한 경우) dwNLSVersion의 낮은 바이트 변경된 경우(위에서 설명한 부 버전) 동일한 것으로 간주할 수 있습니다.
이 내용은 블로그 항목 "데이터 정렬 버전이 변경되었는지 알 수 있는 방법" 에서 자세히 설명합니다.http://blogs.msdn.com/shawnste/archive/2007/06/01/how-to-tell-if-the-collation-version-changed.aspx).

이 함수는 사용자 지정 로캘을 지원합니다. lpLocaleName이 추가 로캘을 지정하는 경우 검색된 데이터는 해당 추가 로캘과 연결된 정렬 순서에 대한 올바른 데이터입니다.

Windows 8 시작: 앱이Windows.Globalization 네임스페이스에서 이 함수에 언어 태그를 전달하는 경우 먼저 ResolveLocaleName을 호출하여 태그를 변환해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winnls.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

GetNLSVersion

애플리케이션에서 정렬 처리

데이터 정렬 버전이 변경되었는지를 알리는 방법

NLSVERSIONINFO

NLSVERSIONINFOEX

국가 언어 지원

국가 언어 지원 함수

SYSNLS_FUNCTION