GetNLSVersionEx-Funktion (winnls.h)

Ruft Informationen zur aktuellen Version einer angegebenen NLS-Funktion für ein durch den Namen angegebenes Gebietsschema ab.

Hinweis Die Anwendung sollte diese Funktion vorzugsauf GetNLSVersion aufrufen, wenn sie nur unter Windows Vista und höher ausgeführt werden soll.

 

Syntax

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

Parameter

[in] function

Die abzufragende NLS-Funktion. Dieser Wert muss COMPARE_STRING werden. Siehe SYSNLS_FUNCTION-Enumeration .

[in, optional] lpLocaleName

Zeiger auf einen Gebietsschemanamen oder einen der folgenden vordefinierten Werte.

[in, out] lpVersionInformation

Zeiger auf eine NLSVERSIONINFOEX-Struktur . Die Anwendung muss das dwNLSVersionInfoSize-Element in sizeof(NLSVERSIONINFOEX)initialisieren.

Hinweis Unter Windows Vista und höher kann die Funktion alternativ Versionsinformationen in einer NLSVERSIONINFO-Struktur bereitstellen.
 

Rückgabewert

Gibt TRUE nur zurück, wenn die Anwendung gültige Werte in lpVersionInformation angegeben hat, oder andernfalls FALSE . Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.

Hinweise

Mit dieser Funktion kann eine Anwendung wie Active Directory ermitteln, ob sich eine NLS-Änderung auf das Gebietsschema auswirkt, das für eine bestimmte Indextabelle verwendet wird. Andernfalls muss die Tabelle nicht erneut indiziert werden. Weitere Informationen finden Sie unter Behandeln der Sortierung in Ihren Anwendungen. Um insbesondere zu ermitteln, ob sich eine Sortierversion geändert hat und Sie neu indizieren müssen:

  1. Verwenden Sie GetNLSVersionEx , um eine NLSVERSIONINFOEX-Struktur abzurufen, wenn Sie die ursprüngliche Indizierung Ihrer Daten durchführen.
  2. Speichern Sie die folgenden Eigenschaften mit Ihrem Index, um die Version zu identifizieren:
    • NLSVERSIONINFOEX.dwNLSVersion. Dies gibt die Version der sortiertabelle an, die Sie verwenden.
    • NLSVERSIONINFOEX.dwEffectiveId. Dies gibt das effektive Gebietsschema Ihrer Art an. Ein benutzerdefiniertes Gebietsschema zeigt auf die Sortierung eines In-Box-Gebietsschemas.
    • NLSVERSIONINFOEX.guidCustomVersion. Dies ist eine GUID, die eine bestimmte benutzerdefinierte Sortierung für benutzerdefinierte Gebietsschemas angibt.
  3. Wenn Sie den Index verwenden, verwenden Sie GetNLSVersionEx , um die Version Ihrer Daten zu ermitteln.
  4. Wenn sich eine der drei Eigenschaften geändert hat, können die von Ihnen verwendeten Sortierdaten unterschiedliche Ergebnisse zurückgeben, und bei jeder Indizierung, die Sie haben, können Datensätze möglicherweise nicht gefunden werden.
  5. Wenn Sie wissen , dass Ihre Daten keine ungültigen Unicode-Codepunkte enthalten (das heißt, alle Ihre Zeichenfolgen haben einen Aufruf an IsNLSDefinedString übergeben), können Sie sie als identisch betrachten, wenn sich nur das niedrige Byte von dwNLSVersion geändert hat (die oben beschriebene Nebenversion).
Dies wird im Blogeintrag "How to tell if the sortation version changed" ausführlicher behandelt (http://blogs.msdn.com/shawnste/archive/2007/06/01/how-to-tell-if-the-collation-version-changed.aspx).

Diese Funktion unterstützt benutzerdefinierte Gebietsschemas. Wenn lpLocaleName ein zusätzliches Gebietsschema angibt, sind die abgerufenen Daten die richtigen Daten für die Sortierreihenfolge, die diesem zusätzlichen Gebietsschema zugeordnet ist.

Ab Windows 8: Wenn Ihre App Sprachtags aus dem Windows.Globalization-Namespace an diese Funktion übergibt, muss sie zuerst die Tags konvertieren, indem ResolveLocaleName aufgerufen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winnls.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetNLSVersion

Behandeln der Sortierung in Ihren Anwendungen

So ermitteln Sie, ob sich die Sortierungsversion geändert hat

NLSVERSIONINFO

NLSVERSIONINFOEX

Unterstützung für nationale Sprachen

Nationale Sprachunterstützungsfunktionen

SYSNLS_FUNCTION