макрос RTM_IPV4_LEN_FROM_MASK (rtmv2.h)
Макрос RTM_IPV4_LEN_FROM_MASK преобразует маску IPv4 в общую длину маршрута.
Синтаксис
void RTM_IPV4_LEN_FROM_MASK(
Len,
Mask
);
Параметры
Len
Получает преобразованную длину.
Mask
Указывает маску для преобразования.
Возвращаемое значение
None
Remarks
Например, если клиент предоставляет Маску 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 |
Header | rtmv2.h |