다음을 통해 공유


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 연결을 열거하는 데 필요한 바이트 수로 설정합니다.

참고  

필요한 버퍼 크기를 확인하려면 lprasconnNULL로 설정된 RasEnumConnections를 호출합니다. lpcb에서 가리키는 변수는 0으로 설정해야 합니다. 함수는 lpcb 의 필수 버퍼 크기와 ERROR_BUFFER_TOO_SMALL 오류 코드를 반환합니다.

 

[out] unnamedParam3

lprasconn으로 지정된 버퍼에 기록된 RASCONN 구조체의 수를 수신하는 변수에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 라우팅 및 원격 액세스 오류 코드 또는 Winerror.h에서 가져옵니다.

반환 코드 설명
ERROR_BUFFER_TOO_SMALL
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

추가 정보

RASCONN

RasEnumEntries

RasGetConnectStatus

RAS(원격 액세스 서비스) 개요

원격 액세스 서비스 함수