Fungsi RasEnumAutodialAddressesA (ras.h)
Fungsi RasEnumAutodialAddresses mengembalikan daftar semua alamat dalam database pemetaan AutoDial.
Sintaks
DWORD RasEnumAutodialAddressesA(
[in, out] LPSTR *lppRasAutodialAddresses,
[in, out] LPDWORD lpdwcbRasAutodialAddresses,
[out] LPDWORD lpdwcRasAutodialAddresses
);
Parameter
[in, out] lppRasAutodialAddresses
Penunjuk ke array penunjuk string, dengan ruang tambahan untuk penyimpanan string itu sendiri di akhir buffer.
Pada output, setiap string menerima nama alamat dalam database pemetaan AutoDial.
Jika lppAddressesadalah NULL pada input, RasEnumAutodialAddresses mengatur parameter lpdwcbAddresses dan lpdwcAddresses untuk menunjukkan ukuran yang diperlukan, dalam byte, dan jumlah entri alamat dalam database.
[in, out] lpdwcbRasAutodialAddresses
Penunjuk ke variabel yang, pada input, berisi ukuran, dalam byte, dari buffer yang ditentukan oleh parameter lpRasEnumAutodialAddressespAddresses .
Untuk menentukan ukuran buffer yang diperlukan, panggil RasEnumAutodialAddresses dengan lppAddresses yang diatur ke NULL. Variabel yang diarahkan oleh lpdwcbAddresses harus diatur ke nol. Fungsi ini akan mengembalikan ukuran buffer yang diperlukan dalam lpdwcbAddresses dan kode kesalahan ERROR_BUFFER_TOO_SMALL.
[out] lpdwcRasAutodialAddresses
Penunjuk ke variabel yang menerima jumlah string alamat yang dikembalikan dalam buffer lppAddresses .
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut atau nilai dari Kode Kesalahan Perutean dan Akses Jarak Jauh atau Winerror.h.
Nilai | Makna |
---|---|
|
NULL diteruskan untuk parameter lpdwcbAddresses atau lpdwcAddresses . |
|
Buffer lppAddresses adalah NULL dan lpdwcbAddresses adalah nol. Fungsi mengembalikan ukuran buffer yang diperlukan dalam variabel yang diarahkan oleh lpdwcbAddresses. |
Keterangan
Kode sampel kode berikut menggunakan RasEnumAutodialAddresses untuk menghitung database pemetaan Autodial.
#include <windows.h>
#include <stdio.h>
#include "ras.h"
#include "raserror.h"
#include <tchar.h>
DWORD __cdecl wmain(){
DWORD dwBytes = 0;
DWORD dwRet = ERROR_SUCCESS;
DWORD dwAddresses = 0;
LPTSTR * lppAddresses = NULL;
LPCTSTR lpEntryAddress = L"www.microsoft.com";
// Allocate memory for a new Autodial address to add to the mapping database
LPRASAUTODIALENTRY lpentry = (LPRASAUTODIALENTRY) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RASAUTODIALENTRY));
lpentry->dwSize = sizeof(RASAUTODIALENTRY);
// Add a (non-functional) address to the Autodial mapping database
// (this ensures RasEnumAutodialAddresses() has something to return)
dwRet = RasSetAutodialAddress(lpEntryAddress, 0, lpentry, lpentry->dwSize, 1);
// Call RasEnumAutodialAddresses() with lppAddresses = NULL. dwBytes is returned with the
// required buffer size and a return code of ERROR_BUFFER_TOO_SMALL
dwRet = RasEnumAutodialAddresses(lppAddresses, &dwBytes, &dwAddresses);
if (dwRet == ERROR_BUFFER_TOO_SMALL){
// Allocate the memory needed for the array of RAS Autodial addresses.
lppAddresses = (LPTSTR *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwBytes);
if (lppAddresses == NULL){
wprintf(L"HeapAlloc failed!\n");
return 0;
}
// Call RasEnumAutodialAddresses() to enumerate all RAS Autodial addresses
dwRet = RasEnumAutodialAddresses(lppAddresses, &dwBytes, &dwAddresses);
// If successful, print the RAS Autodial addresses
if (dwRet == ERROR_SUCCESS){
wprintf(L"The following RAS Autodial addresses were found:\n");
for (DWORD i = 0; i < dwAddresses; i++){
wprintf(L"%s\n", lppAddresses[i]);
}
}
// Remove the address
dwRet = RasSetAutodialAddress(lpEntryAddress, 0, NULL, 0, 0);
//Deallocate memory for the address buffers
HeapFree(GetProcessHeap(), 0, lppAddresses);
HeapFree(GetProcessHeap(), 0, lpentry);
lppAddresses = NULL;
return 0;
}
// There was either a problem with RAS or there are no RAS Autodial addresses to enumerate
if(dwAddresses >= 1){
wprintf(L"The operation failed to acquire the buffer size.\n");
}else{
wprintf(L"There were no RAS Autodial addresses found.\n");
}
// Remove the address
dwRet = RasSetAutodialAddress(lpEntryAddress, 0, NULL, 0, 0);
HeapFree(GetProcessHeap(), 0, lpentry);
return 0;
}
Catatan
Header ras.h mendefinisikan RasEnumAutodialAddresses 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 | ras.h |
Pustaka | Rasapi32.lib |
DLL | Rasapi32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk