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 |