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 |