Exemple #1
0
{
    LWMSG_HANDLE(LW_SERVICE_HANDLE),
    LWMSG_ATTR_HANDLE_LOCAL_FOR_SENDER,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gErrorSpec[] =
{
    LWMSG_UINT32(DWORD),
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gServiceTypeSpec[] =
{
    LWMSG_ENUM_BEGIN(LW_SERVICE_TYPE, 1, LWMSG_UNSIGNED),
    LWMSG_ENUM_VALUE(LW_SERVICE_TYPE_LEGACY_EXECUTABLE),
    LWMSG_ENUM_VALUE(LW_SERVICE_TYPE_EXECUTABLE),
    LWMSG_ENUM_VALUE(LW_SERVICE_TYPE_MODULE),
    LWMSG_ENUM_VALUE(LW_SERVICE_TYPE_DRIVER),
    LWMSG_ENUM_VALUE(LW_SERVICE_TYPE_STUB),
    LWMSG_ENUM_END,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gServiceStateSpec[] =
{
    LWMSG_ENUM_BEGIN(LW_SERVICE_STATE, 1, LWMSG_UNSIGNED),
    LWMSG_ENUM_VALUE(LW_SERVICE_STATE_DEAD),
    LWMSG_ENUM_VALUE(LW_SERVICE_STATE_PAUSED),
    LWMSG_ENUM_VALUE(LW_SERVICE_STATE_STOPPED),
    LWMSG_ENUM_VALUE(LW_SERVICE_STATE_STARTING),
{
    LWMSG_STRUCT_BEGIN(LWNET_IPC_DC_LIST),
    LWMSG_MEMBER_UINT32(LWNET_IPC_DC_LIST, dwDcCount),
    LWMSG_MEMBER_POINTER_BEGIN(LWNET_IPC_DC_LIST, pDcList),
    LWMSG_TYPESPEC(gLWNetDcAddressSpec),
    LWMSG_POINTER_END,
    LWMSG_ATTR_LENGTH_MEMBER(LWNET_IPC_DC_LIST, dwDcCount),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};


static LWMsgTypeSpec gLWNetAddrTypeSpec[] =
{
    LWMSG_ENUM_BEGIN(LWNET_ADDR_TYPE, 2, LWMSG_UNSIGNED),
    LWMSG_ENUM_VALUE(LWNET_IP_ADDR_V4),
    LWMSG_ENUM_VALUE(LWNET_IP_ADDR_V6),
    LWMSG_ENUM_END,
    LWMSG_TYPE_END
};


static LWMsgTypeSpec gLWNetAddrSpec[] =
{
    LWMSG_UNION_BEGIN(LWNET_ADDR),
    LWMSG_MEMBER_ARRAY_BEGIN(LWNET_ADDR, Ip4Addr),
    LWMSG_UINT8(BYTE),
    LWMSG_ARRAY_END,
    LWMSG_ATTR_LENGTH_STATIC(4),
    LWMSG_ATTR_TAG(LWNET_IP_ADDR_V4),
    LWMSG_MEMBER_ARRAY_BEGIN(LWNET_ADDR, Ip6Addr),