GetComputerNameExA, fonction (sysinfoapi.h)
Récupère un nom NetBIOS ou DNS associé à l’ordinateur local. Les noms sont établis au démarrage du système, lorsque le système les lit à partir du Registre.
Syntaxe
BOOL GetComputerNameExA(
[in] COMPUTER_NAME_FORMAT NameType,
[out] LPSTR lpBuffer,
[in, out] LPDWORD nSize
);
Paramètres
[in] NameType
Type de nom à récupérer. Ce paramètre est une valeur du type d’énumération COMPUTER_NAME_FORMAT . Le tableau suivant fournit des informations supplémentaires.
[out] lpBuffer
Pointeur vers une mémoire tampon qui reçoit le nom de l’ordinateur ou le nom du serveur virtuel du cluster.
La longueur du nom peut être supérieure à MAX_COMPUTERNAME_LENGTH caractères, car DNS autorise les noms plus longs. Pour vous assurer que cette mémoire tampon est suffisamment grande, définissez ce paramètre sur NULL et utilisez la taille de mémoire tampon requise retournée dans le paramètre lpnSize .
[in, out] nSize
Lors de l’entrée, spécifie la taille de la mémoire tampon, en TCHAR. À la sortie, reçoit le nombre de TCHAR copiés dans la mémoire tampon de destination, sans inclure le caractère null de fin.
Si la mémoire tampon est trop petite, la fonction échoue et GetLastError retourne ERROR_MORE_DATA. Ce paramètre reçoit la taille de la mémoire tampon requise, y compris le caractère null de fin.
Si lpBuffer a la valeur NULL, ce paramètre doit être égal à zéro.
Valeur retournée
Si la fonction réussit, la valeur de retour est une valeur différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. Les valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
La mémoire tampon lpBuffer est trop petite. Le paramètre lpnSize contient le nombre d’octets requis pour recevoir le nom. |
Remarques
Si la stratégie de groupe n’est pas définie pour l’ordinateur local, la fonction GetComputerNameEx récupère les noms NetBIOS ou DNS établis au démarrage du système. Si la stratégie de groupe est définie, la fonction retourne le nom de domaine principal défini par stratégie de groupe. Les modifications de nom apportées par les fonctions SetComputerName ou SetComputerNameEx ne prennent pas effet tant que l’utilisateur n’a pas redémarré l’ordinateur.
Si l’ordinateur local n’est pas configuré pour utiliser des noms DNS, GetComputerNameEx ne retourne pas d’informations DNS. Pour configurer l’ordinateur, suivez les étapes décrites dans l’aide du système d’exploitation et modifiez le suffixe DNS principal de l’ordinateur, puis redémarrez l’ordinateur.
Le comportement de cette fonction peut être affecté si l’ordinateur local est un nœud dans un cluster. Pour plus d’informations, consultez ResUtilGetEnvironmentWithNetName et UseNetworkName.
Si vous travaillez avec des environnements qui utilisent des dispositions DNS différentes, où le nom de domaine complet de l’ordinateur ne correspond pas au nom de domaine complet de l’ordinateur, utilisez plutôt LsaQueryInformationPolicy .
Pour compiler une application qui utilise cette fonction, définissez la macro _WIN32_WINNT comme 0x0500 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.
Exemples
#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);
}
}
Notes
L’en-tête sysinfoapi.h définit GetComputerNameEx en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | sysinfoapi.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment