RTM_IPV4_LEN_FROM_MASK macro (rtmv2.h)
A macro RTM_IPV4_LEN_FROM_MASK converte uma máscara IPv4 em um comprimento de rota genérico.
Sintaxe
void RTM_IPV4_LEN_FROM_MASK(
Len,
Mask
);
Parâmetros
Len
Recebe o comprimento convertido
Mask
Especifica a máscara a ser convertida.
Retornar valor
Nenhum
Comentários
Por exemplo, se um cliente fornecer a Máscara 255.255.255.255, o Len 24 será retornado.
A macro é definida da seguinte maneira:
#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; \
} \
} \
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Nenhum compatível |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | rtmv2.h |