RTM_IPV4_LEN_FROM_MASK 宏 (rtmv2.h)
RTM_IPV4_LEN_FROM_MASK宏将 IPv4 掩码转换为泛型路由长度。
语法
void RTM_IPV4_LEN_FROM_MASK(
Len,
Mask
);
参数
Len
接收转换后的长度
Mask
指定要转换的掩码。
返回值
无
备注
例如,如果客户端提供 Mask 255.255.255.255,则返回 Len 24。
宏定义如下:
#include <windows.h>
#define RTM_CHECK_NTH_BIT(Value, N, Len) \
if ((Value) & (1 << (N))) \
{ \
(Len) += (N); (Value) <<= (N); \
}
#define RTM_IPV4_LEN_FROM_MASK(Len, Mask) \
{ \
ULONG _Temp_ = ntohl(Mask); \
(Len) = 0; \
RTM_CHECK_NTH_BIT(_Temp_, 16, (Len)); \
RTM_CHECK_NTH_BIT(_Temp_, 8, (Len)); \
RTM_CHECK_NTH_BIT(_Temp_, 4, (Len)); \
while (_Temp_) \
{ \
(Len) += 1; _Temp_ <<= 1; \
} \
} \
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rtmv2.h |