Fungsi WNetGetUserA (winnetwk.h)
Fungsi WNetGetUser mengambil nama pengguna default saat ini, atau nama pengguna yang digunakan untuk membuat koneksi jaringan.
Sintaks
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
Parameter
[in] lpName
Penunjuk ke string konstanta yang dihentikan null yang menentukan nama perangkat lokal yang telah dialihkan ke sumber daya jaringan, atau nama jarak jauh sumber daya jaringan tempat koneksi dibuat tanpa mengalihkan perangkat lokal.
Jika parameter ini adalah NULL atau string kosong, sistem mengembalikan nama pengguna saat ini untuk proses tersebut.
[out] lpUserName
Penunjuk ke buffer yang menerima nama pengguna yang dihentikan null.
[in, out] lpnLength
Penunjuk ke variabel yang menentukan ukuran buffer lpUserName , dalam karakter. Jika panggilan gagal karena buffer tidak cukup besar, variabel ini berisi ukuran buffer yang diperlukan.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah NO_ERROR.
Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan sistem, seperti salah satu nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Perangkat yang ditentukan oleh parameter lpName bukan perangkat yang dialihkan atau nama jaringan yang terhubung. |
|
Entri lainnya tersedia dengan panggilan berikutnya. |
|
Jaringan tidak tersedia. |
|
Terjadi kesalahan khusus jaringan. Untuk mendapatkan deskripsi kesalahan, panggil fungsi WNetGetLastError . |
|
Tidak ada penyedia yang mengenali nama lokal yang memiliki koneksi. Namun, jaringan tidak tersedia untuk setidaknya satu penyedia yang mungkin memiliki koneksi. |
Keterangan
Fungsi WNetGetUser tidak mengetahui berbagi pada Sistem File Terdistribusi (DFS). Jika nama yang ditentukan oleh parameter lpName adalah perangkat lokal yang dialihkan ke berbagi DFS atau sumber daya jarak jauh yang mewakili berbagi DFS, fungsi WNetGetUser gagal dengan ERROR_NOT_CONNECTED.
Contoh
Sampel kode berikut menggambarkan cara menggunakan fungsi WNetGetUser untuk mengambil nama pengguna yang terkait dengan perangkat lokal yang dialihkan atau sumber daya jaringan jarak jauh.
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>
int wmain(int argc, wchar_t * argv[])
{
DWORD dwRetVal;
WCHAR UserName[MAX_PATH];
DWORD dwNameLength = MAX_PATH;
if (argc != 2) {
wprintf
(L"Usage: %s [Redirected-LocalDevice or Network-Resource-Remote-name\n",
argv[0]);
exit(1);
}
wprintf(L"Calling WNetGetUser with Network-Resource = %s\n", argv[1]);
dwRetVal = WNetGetUser(argv[1], UserName, &dwNameLength);
//
// If the call succeeds, print the user information.
//
if (dwRetVal == NO_ERROR) {
wprintf(L"WNetGetUser returned success\n");
wprintf(L"\tUsername=%s NameLength=%d\n", &UserName, dwNameLength);
exit(0);
}
else {
wprintf(L"WNetGetUser failed with error: %u\n", dwRetVal);
exit(1);
}
}
Catatan
Header winnetwk.h mendefinisikan WNetGetUser sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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 | winnetwk.h |
Pustaka | Mpr.lib |
DLL | Mpr.dll |