次の方法で共有


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

こちらもご覧ください

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