Freigeben über


RTM_IPV4_LEN_FROM_MASK Makro (rtmv2.h)

Das RTM_IPV4_LEN_FROM_MASK Makro konvertiert eine IPv4-Maske in eine generische Routenlänge.

Syntax

void RTM_IPV4_LEN_FROM_MASK(
   Len,
   Mask
);

Parameter

Len

Empfängt die konvertierte Länge

Mask

Gibt die zu konvertierende Maske an.

Rückgabewert

Keine

Bemerkungen

Wenn beispielsweise ein Client die Maske 255.255.255.255.255 bereitstellt, wird der Len 24 zurückgegeben.

Das Makro ist wie folgt definiert:

#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;                 \
            }                                               \
        }                                                    \

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rtmv2.h

Weitere Informationen

RTM_IPV4_GET_ADDR_AND_LEN

RTM_IPV4_GET_ADDR_AND_MASK

RTM_IPV4_MAKE_NET_ADDRESS

RTM_IPV4_MASK_FROM_LEN

RTM_IPV4_SET_ADDR_AND_LEN

RTM_IPV4_SET_ADDR_AND_MASK

RTM_NET_ADDRESS