LWMSG_ATTR_HANDLE_LOCAL_FOR_SENDER, LWMSG_MEMBER_UINT32(REG_IPC_CREATE_KEY_EX_RESPONSE, dwDisposition), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gRegEnumRootKeysRespSpec[] = { //PWSTR* ppwszRootKeyNames; //DWORD dwNumRootKeys; LWMSG_STRUCT_BEGIN(REG_IPC_ENUM_ROOTKEYS_RESPONSE), LWMSG_MEMBER_UINT32(REG_IPC_ENUM_ROOTKEYS_RESPONSE, dwNumRootKeys), LWMSG_MEMBER_POINTER_BEGIN(REG_IPC_ENUM_ROOTKEYS_RESPONSE, ppwszRootKeyNames), LWMSG_PWSTR, LWMSG_POINTER_END, LWMSG_ATTR_ZERO_TERMINATED, LWMSG_ATTR_LENGTH_MEMBER(REG_IPC_ENUM_ROOTKEYS_RESPONSE, dwNumRootKeys), LWMSG_STRUCT_END, LWMSG_TYPE_END }; /******************************************************************************/ static LWMsgTypeSpec gRegCloseKeySpec[] = { // HKEY hKey; LWMSG_STRUCT_BEGIN(REG_IPC_CLOSE_KEY_REQ),
LWMSG_STRUCT_BEGIN(LWNET_IPC_TIME), LWMSG_MEMBER_INT64(LWNET_IPC_TIME, Time), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gLWNetIpcGetDcSpec[] = { LWMSG_STRUCT_BEGIN(LWNET_IPC_GET_DC), LWMSG_MEMBER_PSTR(LWNET_IPC_GET_DC, pszServerFQDN), LWMSG_MEMBER_PSTR(LWNET_IPC_GET_DC, pszDomainFQDN), LWMSG_MEMBER_PSTR(LWNET_IPC_GET_DC, pszSiteName), LWMSG_MEMBER_PSTR(LWNET_IPC_GET_DC, pszPrimaryDomain), LWMSG_MEMBER_UINT32(LWNET_IPC_GET_DC, dwFlags), LWMSG_MEMBER_UINT32(LWNET_IPC_GET_DC, dwBlackListCount), LWMSG_MEMBER_POINTER_BEGIN(LWNET_IPC_GET_DC, ppszAddressBlackList), LWMSG_PSTR, LWMSG_POINTER_END, LWMSG_ATTR_LENGTH_MEMBER(LWNET_IPC_GET_DC, dwBlackListCount), LWMSG_STRUCT_END, LWMSG_TYPE_END }; static LWMsgTypeSpec gLWNetDcInfoSpec[] = { LWMSG_STRUCT_BEGIN(LWNET_DC_INFO), LWMSG_MEMBER_UINT32(LWNET_DC_INFO, dwPingTime), LWMSG_MEMBER_UINT32(LWNET_DC_INFO, dwDomainControllerAddressType), LWMSG_MEMBER_UINT32(LWNET_DC_INFO, dwFlags), LWMSG_MEMBER_UINT32(LWNET_DC_INFO, dwVersion), LWMSG_MEMBER_UINT16(LWNET_DC_INFO, wLMToken),
LWMSG_TYPE_END }; /******************************************************************************/ static LWMsgTypeSpec gNtlmSecBufferDescSpec[] = { // For now, I don't believe we need this version information // DWORD ulVersion; // DWORD cBuffers; // PSecBuffer pBuffers; LWMSG_STRUCT_BEGIN(SecBufferDesc), //LWMSG_MEMBER_UINT32(SecBufferDesc, ulVersion), LWMSG_MEMBER_UINT32(SecBufferDesc, cBuffers), LWMSG_MEMBER_POINTER_BEGIN(SecBufferDesc, pBuffers), LWMSG_TYPESPEC(gNtlmSecBufferSpec), LWMSG_POINTER_END, LWMSG_ATTR_LENGTH_MEMBER(SecBufferDesc, cBuffers), LWMSG_STRUCT_END, LWMSG_TYPE_END }; /******************************************************************************/ static LWMsgTypeSpec gNtlmLuidSpec[] = { // DWORD LowPart; // INT HighPart; LWMSG_STRUCT_BEGIN(LUID),
LWMSG_MEMBER_POINTER(FILE_INFO_UNION, p3, LWMSG_TYPESPEC(gFileInfo3Spec)), 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,