NdisReadNetworkAddress 函数 (ndis.h)
NdisReadNetworkAddress 函数返回在计算机中安装 NIC 时存储在注册表中的软件可配置网络地址。
语法
void NdisReadNetworkAddress(
[out] PNDIS_STATUS Status,
[out] PVOID *NetworkAddress,
[out] PUINT NetworkAddressLength,
[in] NDIS_HANDLE ConfigurationHandle
);
参数
[out] Status
指向调用方提供的变量的指针,在此变量中,此函数以下列之一的形式返回调用状态:
NDIS_STATUS_SUCCESS
调用方可以使用 NIC 在 NetworkAddress 中返回的地址。
NDIS_STATUS_FAILURE
调用者的注册表 参数 键中没有可用的 NIC 地址信息,或者存储的值不是字符串。
[out] NetworkAddress
指向调用方提供的变量的指针,在此变量中,此函数返回指向缓冲区的指针,该缓冲区包含网络地址 (通常是 MAC 地址) ,如果调用成功,则存储为字节整数序列。
[out] NetworkAddressLength
指向调用方提供的变量的指针,在此变量中,此函数返回 NetworkAddress 处返回的字节数。
[in] ConfigurationHandle
返回的配置句柄 NdisOpenConfigurationEx 函数。
返回值
无
备注
NdisReadNetworkAddress 搜索给定 ConfigurationHandle 为关键字 (keyword) NetworkAddress指定的注册表项,将此字符串类型条目的值转换为字节整数序列,并在内部存储请求的信息。 在微型端口驱动程序调用释放内存的 NdisCloseConfiguration 函数之前,NDIS 为此类地址分配的存储保持有效。
调用方不能将 NetworkAddress 中的 变量用作指针,除非 NdisReadNetworkAddress 返回 状态NDIS_STATUS_SUCCESS。
支持软件可配置网络寻址的 NIC 的安装程序应将名为 NetworkAddress 关键字 (keyword) 的值条目存储在 HKLM\System\CurrentControlSet\Control\Class{4d36e972...} 中注册表的 \00xx 键。
NIC 安装程序通常将 NetworkAddress 条目的值存储为注册表中的十六进制数字字符串。 (可选)安装程序可以将此类地址存储为配对数字字符串,每对与下一对之间用连字符分隔。 NdisReadNetworkAddress 会丢弃连字符,并将每个此类对转换为单个字节。
在任一形式中, NdisReadNetworkAddress 会将指定为字符串的地址(一次一个字符)转换为等效的整数,直到字符串用完。
在 Windows 2000 及更高版本的注册表中,此类已安装的地址字符串包含 Unicode 字符。
请注意,NDIS 不会验证 NetworkAddress 中的值。 NDIS 不保证此值是有效的地址、该值具有适当的长度,甚至不保证该值是网络地址。 因此 ,NdisReadNetworkAddress 的调用方不得对此值进行任何假设,并且必须自行验证该值。 如果调用方确定值超出边界,则不应使用 值;相反,它应使用永久的中等访问控制 (MAC) 地址或默认地址。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 支持 Windows Vista 及更高版本中的 NDIS 6.0 及更高版本的驱动程序。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisReadNetworkAddress (NDIS 5.1) ) 。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | Irql_Miscellaneous_Function (ndis) |