GetComputerNameExW-Funktion (sysinfoapi.h)
Ruft einen NetBIOS- oder DNS-Namen ab, der dem lokalen Computer zugeordnet ist. Die Namen werden beim Systemstart eingerichtet, wenn das System sie aus der Registrierung liest.
Syntax
BOOL GetComputerNameExW(
[in] COMPUTER_NAME_FORMAT NameType,
[out] LPWSTR lpBuffer,
[in, out] LPDWORD nSize
);
Parameter
[in] NameType
Der Typ des abzurufenden Namens. Dieser Parameter ist ein Wert aus dem COMPUTER_NAME_FORMAT Enumerationstyp. Die folgende Tabelle enthält zusätzliche Informationen.
[out] lpBuffer
Ein Zeiger auf einen Puffer, der den Computernamen oder den virtuellen Clusterservernamen empfängt.
Die Länge des Namens kann größer als MAX_COMPUTERNAME_LENGTH Zeichen sein, da DNS längere Namen zulässt. Um sicherzustellen, dass dieser Puffer groß genug ist, legen Sie diesen Parameter auf NULL- fest, und verwenden Sie die erforderliche Puffergröße, die im parameter lpnSize zurückgegeben wird.
[in, out] nSize
Gibt bei eingaben die Größe des Puffers in TCHARsan. Empfängt bei der Ausgabe die Anzahl der TCHARs, die in den Zielpuffer kopiert, nicht einschließlich des endenden Null- Zeichens.
Wenn der Puffer zu klein ist, schlägt die Funktion fehl, und GetLastError- gibt ERROR_MORE_DATA zurück. Dieser Parameter empfängt die Größe des erforderlichen Puffers, einschließlich des endenden NULL- Zeichens.
Wenn lpBuffer-NULL-ist, muss dieser Parameter null sein.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten. Mögliche Werte sind:
Rückgabecode | Beschreibung |
---|---|
|
Der lpBuffer Puffer ist zu klein. Der parameter lpnSize enthält die Anzahl der Bytes, die zum Empfangen des Namens erforderlich sind. |
Bemerkungen
Wenn keine Gruppenrichtlinie für den lokalen Computer festgelegt ist, ruft die GetComputerNameEx--Funktion die netBIOS- oder DNS-Namen ab, die beim Systemstart eingerichtet wurden. Wenn Gruppenrichtlinien festgelegt sind, gibt die Funktion den primären Domänennamen zurück, der nach Gruppenrichtlinie festgelegt ist. Namensänderungen, die vom SetComputerName oder SetComputerNameEx Funktionen vorgenommen wurden, werden erst wirksam, wenn der Benutzer den Computer neu startet.
Wenn der lokale Computer nicht für die Verwendung von DNS-Namen konfiguriert ist, gibt GetComputerNameEx- keine DNS-Informationen zurück. Führen Sie zum Konfigurieren des Computers dazu die im Betriebssystem beschriebenen Schritte aus, und ändern Sie das primäre DNS-Suffix des Computers, und starten Sie den Computer neu.
Das Verhalten dieser Funktion kann beeinflusst werden, wenn der lokale Computer ein Knoten in einem Cluster ist. Weitere Informationen finden Sie unter ResUtilGetEnvironmentWithNetName und UseNetworkName.
Wenn Sie mit Umgebungen arbeiten, die unterschiedliche DNS-Layouts verwenden, bei denen der FQDN des Computers nicht mit dem FQDN seiner Domäne übereinstimmt, verwenden Sie stattdessen LsaQueryInformationPolicy.
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie das _WIN32_WINNT Makro als 0x0500 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
Beispiele
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
void _tmain(void)
{
TCHAR buffer[256] = TEXT("");
TCHAR szDescription[8][32] = {TEXT("NetBIOS"),
TEXT("DNS hostname"),
TEXT("DNS domain"),
TEXT("DNS fully-qualified"),
TEXT("Physical NetBIOS"),
TEXT("Physical DNS hostname"),
TEXT("Physical DNS domain"),
TEXT("Physical DNS fully-qualified")};
int cnf = 0;
DWORD dwSize = _countof(buffer);
for (cnf = 0; cnf < ComputerNameMax; cnf++)
{
if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
{
_tprintf(TEXT("GetComputerNameEx failed (%d)\n"), GetLastError());
return;
}
else _tprintf(TEXT("%s: %s\n"), szDescription[cnf], buffer);
dwSize = _countof(buffer);
ZeroMemory(buffer, dwSize);
}
}
Anmerkung
Der sysinfoapi.h-Header definiert GetComputerNameEx als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | sysinfoapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |
Siehe auch
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment-