RasEnumConnectionsA 함수(ras.h)
RasEnumConnections 함수는 모든 활성 RAS 연결을 나열합니다. 각 연결의 핸들과 전화 번호부 항목 이름을 반환합니다.
구문
DWORD RasEnumConnectionsA(
[in, out] LPRASCONNA unnamedParam1,
[in, out] LPDWORD unnamedParam2,
[out] LPDWORD unnamedParam3
);
매개 변수
[in, out] unnamedParam1
출력 시 각 RAS 연결에 대해 하나씩 RASCONN 구조의 배열을 수신하는 버퍼에 대한 포인터입니다.
입력 시 애플리케이션은 전달되는 구조체의 버전을 식별하기 위해 버퍼의 첫 번째 RASCONN 구조체의 dwSize 멤버를 sizeof(RASCONN)로 설정해야 합니다.
[in, out] unnamedParam2
입력 시 lprasconn으로 지정된 버퍼의 크기(바이트)를 포함하는 변수에 대한 포인터입니다.
출력에서 함수는 이 변수를 RAS 연결을 열거하는 데 필요한 바이트 수로 설정합니다.
필요한 버퍼 크기를 확인하려면 lprasconn이 NULL로 설정된 RasEnumConnections를 호출합니다. lpcb에서 가리키는 변수는 0으로 설정해야 합니다. 함수는 lpcb 의 필수 버퍼 크기와 ERROR_BUFFER_TOO_SMALL 오류 코드를 반환합니다.
[out] unnamedParam3
lprasconn으로 지정된 버퍼에 기록된 RASCONN 구조체의 수를 수신하는 변수에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값이 ERROR_SUCCESS.
함수가 실패하면 반환 값은 라우팅 및 원격 액세스 오류 코드 또는 Winerror.h에서 가져옵니다.
반환 코드 | 설명 |
---|---|
|
lprasconn 버퍼가 충분히 크지 않습니다. lpcb 매개 변수는 함수를 호출하기 전에 설정해야 하는 lprasconn 매개 변수의 dwSize 멤버보다 작습니다. 함수는 lpcb에서 가리키는 변수에 필요한 버퍼 크기를 반환합니다. |
설명
전화 번호부 항목 이름을 지정하지 않고 연결한 경우 해당 연결에 대해 반환된 정보는 연결 전화 번호 앞에 "."를 제공합니다.
다음 코드 샘플 코드는 RasEnumConnections를 사용하여 활성 RAS 연결을 열거합니다.
#include <windows.h>
#include <stdio.h>
#include "ras.h"
#include "raserror.h"
#pragma comment(lib, "rasapi32.lib")
DWORD __cdecl wmain(){
DWORD dwCb = 0;
DWORD dwRet = ERROR_SUCCESS;
DWORD dwConnections = 0;
LPRASCONN lpRasConn = NULL;
// Call RasEnumConnections with lpRasConn = NULL. dwCb is returned with the required buffer size and
// a return code of ERROR_BUFFER_TOO_SMALL
dwRet = RasEnumConnections(lpRasConn, &dwCb, &dwConnections);
if (dwRet == ERROR_BUFFER_TOO_SMALL){
// Allocate the memory needed for the array of RAS structure(s).
lpRasConn = (LPRASCONN) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwCb);
if (lpRasConn == NULL){
wprintf(L"HeapAlloc failed!\n");
return 0;
}
// The first RASCONN structure in the array must contain the RASCONN structure size
lpRasConn[0].dwSize = sizeof(RASCONN);
// Call RasEnumConnections to enumerate active connections
dwRet = RasEnumConnections(lpRasConn, &dwCb, &dwConnections);
// If successful, print the names of the active connections.
if (ERROR_SUCCESS == dwRet){
wprintf(L"The following RAS connections are currently active:\n");
for (DWORD i = 0; i < dwConnections; i++){
wprintf(L"%s\n", lpRasConn[i].szEntryName);
}
}
//Deallocate memory for the connection buffer
HeapFree(GetProcessHeap(), 0, lpRasConn);
lpRasConn = NULL;
return 0;
}
// There was either a problem with RAS or there are no connections to enumerate
if(dwConnections >= 1){
wprintf(L"The operation failed to acquire the buffer size.\n");
}else{
wprintf(L"There are no active RAS connections.\n");
}
return 0;
}
RasEnumConnections는 RAS가 성공적으로 연결될 때까지 연결을 활성 으로 열거할 수 없습니다.
Windows Me/98/95: RasEnumConnections 는 전화를 걸기 시작하는 즉시 연결을 활성 으로 열거합니다.
활성 연결을 열거하고 검사 가장 신뢰할 수 있는 방법은 RasEnumConnections 또는 RasDial을 호출하여 연결 핸들을 구한 다음 RasGetConnectStatus를 호출하여 실제 연결 상태를 확인하는 것입니다.
참고
ras.h 헤더는 RAsEnumConnections를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ras.h |
라이브러리 | Rasapi32.lib |
DLL | Rasapi32.dll |