{ // IN HKEY hKey, // IN PCWSTR pSubKey, // IN DWORD Reserved, // IN OPTIONAL PWSTR pClass, // IN DWORD dwOptions, // IN ACCESS_MASK AccessDesired, // IN OPTIONAL PSECURITY_DESCRIPTOR_RELATIVE pSecDescRel, // ULONG ulSecDescLen; LWMSG_STRUCT_BEGIN(REG_IPC_CREATE_KEY_EX_REQ), LWMSG_MEMBER_HANDLE(REG_IPC_CREATE_KEY_EX_REQ, hKey, HKEY), LWMSG_ATTR_HANDLE_LOCAL_FOR_RECEIVER, LWMSG_MEMBER_PWSTR(REG_IPC_CREATE_KEY_EX_REQ, pSubKey), LWMSG_MEMBER_PWSTR(REG_IPC_CREATE_KEY_EX_REQ, pClass), LWMSG_MEMBER_UINT32(REG_IPC_CREATE_KEY_EX_REQ, dwOptions), LWMSG_MEMBER_UINT32(REG_IPC_CREATE_KEY_EX_REQ, AccessDesired), LWMSG_MEMBER_UINT32(REG_IPC_CREATE_KEY_EX_REQ, ulSecDescLen), LWMSG_MEMBER_PBYTE(REG_IPC_CREATE_KEY_EX_REQ, pSecDescRel), LWMSG_ATTR_LENGTH_MEMBER(REG_IPC_CREATE_KEY_EX_REQ, ulSecDescLen), LWMSG_STRUCT_END, LWMSG_TYPE_END };
static LWMsgTypeSpec gLWNetResolveAddr [] = { LWMSG_STRUCT_BEGIN(LWNET_RESOLVE_ADDR), LWMSG_MEMBER_TYPESPEC(LWNET_RESOLVE_ADDR, AddressType, gLWNetAddrTypeSpec), LWMSG_MEMBER_TYPESPEC(LWNET_RESOLVE_ADDR, Address, gLWNetAddrSpec), LWMSG_ATTR_DISCRIM(LWNET_RESOLVE_ADDR, AddressType), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gLWNetResolveNameAddressSpec[] = { LWMSG_STRUCT_BEGIN(LWNET_RESOLVE_NAME_ADDRESS), LWMSG_MEMBER_PWSTR(LWNET_RESOLVE_NAME_ADDRESS, pwszHostName), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gLWNetResolveNameAddressRespSpec[] = { LWMSG_STRUCT_BEGIN(LWNET_RESOLVE_NAME_ADDRESS_RESPONSE), // ppwszCanonName LWMSG_MEMBER_PWSTR(LWNET_RESOLVE_NAME_ADDRESS_RESPONSE, pwszCanonName), // dwAddressListLen LWMSG_MEMBER_UINT32(LWNET_RESOLVE_NAME_ADDRESS_RESPONSE, dwAddressListLen),
static LWMsgTypeSpec gLogTypeSpec[] = { LWMSG_ENUM_BEGIN(LW_SM_LOGGER_TYPE, 1, LWMSG_UNSIGNED), LWMSG_ENUM_VALUE(LW_SM_LOGGER_DEFAULT), LWMSG_ENUM_VALUE(LW_SM_LOGGER_NONE), LWMSG_ENUM_VALUE(LW_SM_LOGGER_SYSLOG), LWMSG_ENUM_VALUE(LW_SM_LOGGER_FILE), LWMSG_ENUM_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gServiceInfoSpec[] = { LWMSG_STRUCT_BEGIN(LW_SERVICE_INFO), LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszName), LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszDescription), LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, type, gServiceTypeSpec), LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszPath), LWMSG_ATTR_NOT_NULL, LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszArgs, gStringListSpec), LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszEnv, gStringListSpec), LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszDependencies, gStringListSpec), LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszGroup), LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, bAutostart, gBooleanSpec), LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, dwFdLimit), LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, dwCoreSize), LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, uShutdownTimeout), LWMSG_STRUCT_END, LWMSG_TYPE_END };
static LWMsgTypeSpec gFileInfo2Spec[] = { LWMSG_STRUCT_BEGIN(FILE_INFO_2), LWMSG_MEMBER_UINT32(FILE_INFO_2, fi2_id), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gFileInfo3Spec[] = { LWMSG_STRUCT_BEGIN(FILE_INFO_3), LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_idd), LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_permissions), LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_num_locks), LWMSG_MEMBER_PWSTR(FILE_INFO_3, fi3_path_name), LWMSG_MEMBER_PWSTR(FILE_INFO_3, fi3_username), LWMSG_STRUCT_END, LWMSG_TYPE_END }; #define FILE_INFO_LEVEL_2 2 #define FILE_INFO_LEVEL_3 3 static LWMsgTypeSpec gFileInfoUnionSpec[] = { LWMSG_UNION_BEGIN(FILE_INFO_UNION), LWMSG_MEMBER_POINTER(FILE_INFO_UNION, p2, LWMSG_TYPESPEC(gFileInfo2Spec)), LWMSG_ATTR_TAG(FILE_INFO_LEVEL_2), LWMSG_MEMBER_POINTER(FILE_INFO_UNION, p3, LWMSG_TYPESPEC(gFileInfo3Spec)), LWMSG_ATTR_TAG(FILE_INFO_LEVEL_3),