RasEnumAutodialAddressesA-Funktion (ras.h)
Die RasEnumAutodialAddresses Funktion gibt eine Liste aller Adressen in der AutoDial-Zuordnungsdatenbank zurück.
Syntax
DWORD RasEnumAutodialAddressesA(
[in, out] LPSTR *lppRasAutodialAddresses,
[in, out] LPDWORD lpdwcbRasAutodialAddresses,
[out] LPDWORD lpdwcRasAutodialAddresses
);
Parameter
[in, out] lppRasAutodialAddresses
Zeigen Sie auf ein Array von Zeichenfolgenzeigern, mit zusätzlichem Platz für den Speicher der Zeichenfolgen selbst am Ende des Puffers.
Bei der Ausgabe empfängt jede Zeichenfolge den Namen einer Adresse in der AutoDial-Zuordnungsdatenbank.
Wenn lppAddressesNULL- für eingaben ist, legt RasEnumAutodialAddresses die lpdwcbAddresses und lpdwcAddresses Parameter fest, um die erforderliche Größe, in Byte und die Anzahl der Adresseinträge in der Datenbank anzugeben.
[in, out] lpdwcbRasAutodialAddresses
Zeiger auf eine Variable, die bei eingabe die Größe des durch den lpRasEnumAutodialAddresses Parameter angegebenen Puffers in Byte enthält.
Um die erforderliche Puffergröße zu ermitteln, rufen Sie RasEnumAutodialAddresses auf, wobei lppAddresses auf NULL-festgelegt ist. Die Variable, die von lpdwcbAddresses verweist, sollte auf Null festgelegt werden. Die Funktion gibt die erforderliche Puffergröße in lpdwcbAddresses und einen Fehlercode von ERROR_BUFFER_TOO_SMALLzurück.
[out] lpdwcRasAutodialAddresses
Zeiger auf eine Variable, die die Anzahl der im lppAddresses Puffer zurückgegebenen Adresszeichenfolgen empfängt.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.
Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes oder ein Wert aus Routing- und Remotezugriffsfehlercodes oder Winerror.h.
Wert | Bedeutung |
---|---|
|
NULL- wurde für den lpdwcbAddresses oder lpdwcAddresses Parameter übergeben. |
|
Der lppAddresses Puffer war NULL- und lpdwcbAddresses null war. Die Funktion gibt die erforderliche Puffergröße in der Variablen zurück, auf die durch lpdwcbAddressesverwiesen wird. |
Bemerkungen
Der folgende Codebeispielcode verwendet RasEnumAutodialAddresses zum Aufzählen der Autodial-Zuordnungsdatenbank.
#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;
}
Anmerkung
Der ras.h-Header definiert RasEnumAutodialAddresses als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | ras.h |
Library | Rasapi32.lib |
DLL- | Rasapi32.dll |
Siehe auch
übersicht über Ras(Remote Access Service)