{ 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),