Bagikan melalui


Fungsi GetComputerNameExA (sysinfoapi.h)

Mengambil nama NetBIOS atau DNS yang terkait dengan komputer lokal. Nama-nama dibuat saat startup sistem, ketika sistem membacanya dari registri.

Sintaks

BOOL GetComputerNameExA(
  [in]      COMPUTER_NAME_FORMAT NameType,
  [out]     LPSTR                lpBuffer,
  [in, out] LPDWORD              nSize
);

Parameter

[in] NameType

Jenis nama yang akan diambil. Parameter ini adalah nilai dari jenis enumerasi COMPUTER_NAME_FORMAT . Tabel berikut ini menyediakan informasi tambahan.

Nilai Makna
ComputerNameDnsDomain
Nama domain DNS yang ditetapkan ke komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama domain DNS server virtual kluster.
ComputerNameDnsFullyQualified
Nama DNS yang sepenuhnya memenuhi syarat yang secara unik mengidentifikasi komputer lokal. Nama ini adalah kombinasi dari nama host DNS dan nama domain DNS, menggunakan formulir HostName. DomainName. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama DNS server virtual kluster yang sepenuhnya memenuhi syarat.
ComputerNameDnsHostname
Nama host DNS komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama host DNS server virtual kluster.
ComputerNameNetBIOS
Nama NetBIOS komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama NetBIOS dari server virtual kluster.
ComputerNamePhysicalDnsDomain
Nama domain DNS yang ditetapkan ke komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama domain DNS komputer lokal, bukan nama server virtual kluster.
ComputerNamePhysicalDnsFullyQualified
Nama DNS yang sepenuhnya memenuhi syarat yang secara unik mengidentifikasi komputer. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama DNS komputer lokal yang sepenuhnya memenuhi syarat, bukan nama server virtual kluster.

Nama DNS yang sepenuhnya memenuhi syarat adalah kombinasi dari nama host DNS dan nama domain DNS, menggunakan formulir HostName. DomainName.

ComputerNamePhysicalDnsHostname
Nama host DNS komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama host DNS komputer lokal, bukan nama server virtual kluster.
ComputerNamePhysicalNetBIOS
Nama NetBIOS komputer lokal. Jika komputer lokal adalah simpul dalam kluster, lpBuffer menerima nama NetBIOS komputer lokal, bukan nama server virtual kluster.

[out] lpBuffer

Penunjuk ke buffer yang menerima nama komputer atau nama server virtual kluster.

Panjang nama mungkin lebih besar dari MAX_COMPUTERNAME_LENGTH karakter karena DNS memungkinkan nama yang lebih panjang. Untuk memastikan bahwa buffer ini cukup besar, atur parameter ini ke NULL dan gunakan ukuran buffer yang diperlukan yang dikembalikan dalam parameter lpnSize .

[in, out] nSize

Pada input, menentukan ukuran buffer, dalam TCHAR. Pada output, menerima jumlah TCHAR yang disalin ke buffer tujuan, tidak termasuk karakter null yang mengakhiri.

Jika buffer terlalu kecil, fungsi gagal dan GetLastError mengembalikan ERROR_MORE_DATA. Parameter ini menerima ukuran buffer yang diperlukan, termasuk karakter null yang mengakhiri.

Jika lpBuffer adalah NULL, parameter ini harus nol.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Nilai yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
ERROR_MORE_DATA
Buffer lpBuffer terlalu kecil. Parameter lpnSize berisi jumlah byte yang diperlukan untuk menerima nama.

Keterangan

Jika kebijakan grup tidak diatur untuk komputer lokal, fungsi GetComputerNameEx mengambil nama NetBIOS atau DNS yang ditetapkan saat startup sistem. Jika kebijakan grup ditetapkan, fungsi mengembalikan nama domain utama yang ditetapkan oleh kebijakan grup. Perubahan nama yang dibuat oleh fungsi SetComputerName atau SetComputerNameEx tidak berlaku sampai pengguna memulai ulang komputer.

Jika komputer lokal tidak dikonfigurasi untuk menggunakan nama DNS, GetComputerNameEx tidak akan mengembalikan informasi DNS. Untuk mengonfigurasi komputer untuk melakukan ini, ikuti langkah-langkah yang diuraikan dalam bantuan sistem operasi dan ubah akhiran DNS utama komputer, lalu mulai ulang komputer.

Perilaku fungsi ini dapat terpengaruh jika komputer lokal adalah simpul dalam kluster. Untuk informasi selengkapnya, lihat ResUtilGetEnvironmentWithNetName dan UseNetworkName.

Jika Anda bekerja dengan lingkungan yang menggunakan tata letak DNS yang berbeda, di mana FQDN komputer tidak cocok dengan FQDN domainnya, gunakan LsaQueryInformationPolicy sebagai gantinya.

Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan makro _WIN32_WINNT sebagai 0x0500 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.

Contoh

#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);
    }
}

Catatan

Header sysinfoapi.h mendefinisikan GetComputerNameEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header sysinfoapi.h (sertakan Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

COMPUTER_NAME_FORMAT

Nama Komputer

GetComputerName

ResUtilGetEnvironmentWithNetName

ResUtilSetResourceServiceEnvironment

ResUtilSetResourceServiceStartParameters

SetComputerName

SetComputerNameEx

Fungsi Informasi Sistem