RasEnumEntries-Windows获取当前网络连接名称与数量函数


    1.第一次写博客,有写的不对的地方,你来打我呀 ┗( ▔, ▔ )┛
    2.程序猿就应该往后翻,直接看代码

函数介绍-RasEnumEntries

DWORD RasEnumEntriesW(	LPCWSTR,
						LPCWSTR,
						LPRASENTRYNAMEW,
						LPDWORD,
						LPDWORD
					);

参数解析

序号参数解析
1LPCWSTR保留,直接写NULL
2LPCWSTR指向BPK的字符串路径,填NULL,则枚举AllUsers 的所有配置
3LPRASENTRYNAMEWRASENTRYNAME结构体指针
作为输入:需设置第一个结构体的 dwSize =sizeof(RASENTRYNAME)
4LPDWORD作为输入:lprasentryname指定的缓冲区的大小(以字节为单位)
作为输出:所需的RASENTRYNAME结构数组的大小
注意:可以传入NULL,会返回ERROR_BUFFER_TOO_SMALL,以获取所需存储消息的字节数
5LPDWORD所有网络连接的数量

RASENTRYNAMEA 结构体

#define RASENTRYNAMEA struct tagRASENTRYNAMEA
  RASENTRYNAMEA {
    DWORD dwSize;
    CHAR szEntryName[RAS_MaxEntryName + 1 ];
    DWORD dwFlags;
    CHAR szPhonebookPath[MAX_PATH + 1];
  };

#define RAS_MaxEntryName 256
#define MAX_PATH 260

返回值解析

这里来看一下返回值类型DWORD 的具体定义

typedef unsigned __LONG32 DWORD;


#ifndef __LP64__	/* 32 bit target, 64 bit Mingw target */
#define __LONG32 long
#else			/* 64 bit Cygwin target */
#define __LONG32 int
#endif

一个32位的无符号数,在32位系统中等价于 ↓↓↓↓

typedef unsigned int DWORD
返回值

这里例举出几个常用的,其他的错误请参照:Routing and Remote Access Error Codes

序号参数名实际值解析
1ERROR_SUCCESS0函数执行成功
1ERROR_BUFFER_TOO_SMALL603用于存储lprasentryname 所分配的空间不够用
2ERROR_INVALID_SIZE632lprasentryname参数中的dwSize 类型在当前windows平台不支持
3ERROR_NOT_ENOUGH_MEMORY8函数没有申请到足够的内存空间去执行操作

实战代码

	/*
	时间:2019年4月18日22:11:24
	时间太晚,明天再写
	*/
    DWORD dwCb = 0;
    DWORD dwRet = ERROR_SUCCESS;
    DWORD dwEntries = 0;
    LPRASENTRYNAME lpRasEntryName = NULL;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值