Fungsi RasEnumConnectionsA (ras.h)

Fungsi RasEnumConnections mencantumkan semua koneksi RAS aktif. Ini mengembalikan pegangan setiap koneksi dan nama entri buku telepon.

Sintaks

DWORD RasEnumConnectionsA(
  [in, out] LPRASCONNA unnamedParam1,
  [in, out] LPDWORD    unnamedParam2,
  [out]     LPDWORD    unnamedParam3
);

Parameter

[in, out] unnamedParam1

Pointer ke buffer yang menerima, pada output, array struktur RASCONN , satu untuk setiap koneksi RAS.

Pada input, aplikasi harus mengatur anggota dwSize dari struktur RASCONN pertama dalam buffer ke sizeof (RASCONN) untuk mengidentifikasi versi struktur yang diteruskan.

[in, out] unnamedParam2

Penunjuk ke variabel yang, pada input, berisi ukuran, dalam byte, dari buffer yang ditentukan oleh lprasconn.

Pada output, fungsi mengatur variabel ini ke jumlah byte yang diperlukan untuk menghitung koneksi RAS.

Catatan  

Untuk menentukan ukuran buffer yang diperlukan, panggil RasEnumConnections dengan lprasconn diatur ke NULL. Variabel yang ditunjukkan oleh lpcb harus diatur ke nol. Fungsi ini akan mengembalikan ukuran buffer yang diperlukan dalam lpcb dan kode kesalahan ERROR_BUFFER_TOO_SMALL.

 

[out] unnamedParam3

Penunjuk ke variabel yang menerima jumlah struktur RASCONN yang ditulis ke buffer yang ditentukan oleh lprasconn.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan berasal dari Kode Kesalahan Perutean dan Akses Jarak Jauh atau Winerror.h.

Menampilkan kode Deskripsi
ERROR_BUFFER_TOO_SMALL
Buffer lprasconn tidak cukup besar. Parameter lpcb kurang dari anggota dwSize dalam parameter lprasconn yang harus diatur sebelum memanggil fungsi. Fungsi mengembalikan ukuran buffer yang diperlukan dalam variabel yang ditunjukkan oleh lpcb.

Keterangan

Jika koneksi dibuat tanpa menentukan nama entri buku telepon, informasi yang dikembalikan untuk koneksi tersebut memberikan nomor telepon koneksi yang didahului oleh ".".

Kode sampel kode berikut menggunakan RasEnumConnections untuk menghitung koneksi RAS aktif.

#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 tidak dapat menghitung koneksi sebagai Aktif sampai RAS berhasil tersambung.

Windows Me/98/95: RasEnumConnections menghitung koneksi sebagai Aktif segera setelah mulai memutar nomor.

Cara yang paling dapat diandalkan untuk menghitung dan memeriksa koneksi aktif adalah dengan memanggil RasEnumConnections atau RasDial untuk mendapatkan handel koneksi, lalu panggil RasGetConnectStatus untuk menentukan status koneksi yang sebenarnya.

Catatan

Header ras.h mendefinisikan RasEnumConnections sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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

RASCONN

RasEnumEntries

RasGetConnectStatus

Gambaran Umum Layanan Akses Jarak Jauh (RAS)

Fungsi Layanan Akses Jarak Jauh