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.
[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 |
---|---|
|
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
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment