{ LWMSG_HANDLE(LW_SERVICE_HANDLE), LWMSG_ATTR_HANDLE_LOCAL_FOR_RECEIVER, LWMSG_TYPE_END }; static LWMsgTypeSpec gNewHandleSpec[] = { 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 gRegValueEntSpec[] = { // PWSTR ve_valuename; // DWORD ve_valuelen; // PDWORD ve_valueptr; // DWORD ve_type; LWMSG_STRUCT_BEGIN(VALENT), LWMSG_MEMBER_PWSTR(VALENT, ve_valuename), LWMSG_MEMBER_UINT32(VALENT, ve_valuelen), LWMSG_MEMBER_POINTER(VALENT, ve_valueptr, LWMSG_UINT32(DWORD)), LWMSG_MEMBER_UINT32(VALENT, ve_type), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gRegQueryMultipleValuesSpec[] = { // HKEY hKey; // DWORD num_vals; // PVALENT val_list; // DWORD dwTotalsize; // PWSTR pValue; LWMSG_STRUCT_BEGIN(REG_IPC_QUERY_MULTIPLE_VALUES_REQ),
LWMSG_ATTR_TAG(FILE_INFO_LEVEL_3), LWMSG_UNION_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gFileInfoEnumInParamsSpec[] = { LWMSG_STRUCT_BEGIN(FILE_INFO_ENUM_IN_PARAMS), LWMSG_MEMBER_PWSTR(FILE_INFO_ENUM_IN_PARAMS, pwszBasepath), LWMSG_MEMBER_PWSTR(FILE_INFO_ENUM_IN_PARAMS, pwszUsername), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_IN_PARAMS, dwInfoLevel), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_IN_PARAMS, dwPreferredMaxLength), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_IN_PARAMS, dwEntriesRead), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_IN_PARAMS, dwTotalEntries), LWMSG_MEMBER_POINTER_BEGIN(FILE_INFO_ENUM_IN_PARAMS, pdwResumeHandle), LWMSG_UINT32(UINT32), LWMSG_POINTER_END, LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gFileInfoEnumOutParamsPreambleSpec[] = { LWMSG_STRUCT_BEGIN(FILE_INFO_ENUM_OUT_PREAMBLE), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_OUT_PREAMBLE, dwInfoLevel), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_OUT_PREAMBLE, dwEntriesRead), LWMSG_MEMBER_UINT32(FILE_INFO_ENUM_OUT_PREAMBLE, dwTotalEntries), LWMSG_MEMBER_POINTER_BEGIN(FILE_INFO_ENUM_OUT_PREAMBLE, pdwResumeHandle), LWMSG_UINT32(UINT32), LWMSG_POINTER_END, LWMSG_STRUCT_END,