diff options
Diffstat (limited to 'epan/dissectors/packet-dcerpc-mapi.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc-mapi.c | 41683 |
1 files changed, 40099 insertions, 1584 deletions
diff --git a/epan/dissectors/packet-dcerpc-mapi.c b/epan/dissectors/packet-dcerpc-mapi.c index bb340526b0..e7d7584c96 100644 --- a/epan/dissectors/packet-dcerpc-mapi.c +++ b/epan/dissectors/packet-dcerpc-mapi.c @@ -22,150 +22,1893 @@ void proto_register_dcerpc_mapi(void); void proto_reg_handoff_dcerpc_mapi(void); /* Ett declarations */ -static gint ett_mapi_mapi_request = -1; -static gint ett_mapi_EcDoRpc_MAPI_REQ = -1; -static gint ett_mapi_OpenFolder_req = -1; -static gint ett_mapi_GetProps_req = -1; -static gint ett_mapi_OpenMsgStore_req = -1; -static gint ett_mapi_mapi_response = -1; -static gint ett_mapi_EcDoRpc_MAPI_REPL = -1; -static gint ett_mapi_OpenFolder_repl = -1; -static gint ett_mapi_GetProps_repl = -1; +static gint ett_mapi_connect_request = -1; +static gint ett_ServerObjectHandleTable = -1; static gint ett_dcerpc_mapi = -1; static gint ett_mapi_DATA_BLOB = -1; -static gint ett_mapi_input_locale = -1; -static gint ett_mapi_FILETIME = -1; -static gint ett_mapi_LPSTR = -1; -static gint ett_mapi_SPropValue_CTR = -1; -static gint ett_mapi_SPropValue = -1; -static gint ett_mapi_SRow = -1; +static gint ett_mapi_SBinary_short = -1; +static gint ett_mapi_mapi_MV_LONG_STRUCT = -1; +static gint ett_mapi_mapi_LPSTR = -1; +static gint ett_mapi_mapi_SLPSTRArray = -1; +static gint ett_mapi_mapi_LPWSTR = -1; +static gint ett_mapi_mapi_SPLSTRArrayW = -1; +static gint ett_mapi_mapi_SBinaryArray = -1; +static gint ett_mapi_mapi_SGuidArray = -1; +static gint ett_mapi_mapi_SRestriction_wrap = -1; +static gint ett_mapi_mapi_SPropValue_wrap = -1; +static gint ett_mapi_mapi_SPropValue_array_wrap = -1; +static gint ett_mapi_MoveCopy_Action = -1; +static gint ett_mapi_ReplyOOF_Action = -1; +static gint ett_mapi_RecipientBlock = -1; +static gint ett_mapi_ForwardDelegate_Action = -1; +static gint ett_mapi_ActionData = -1; +static gint ett_mapi_ActionBlockData = -1; +static gint ett_mapi_ActionBlock = -1; +static gint ett_mapi_RuleAction = -1; +static gint ett_mapi_ShortArray_r = -1; +static gint ett_mapi_LongArray_r = -1; +static gint ett_mapi_BinaryArray_r = -1; +static gint ett_mapi_DateTimeArray_r = -1; +static gint ett_mapi_Binary_r = -1; +static gint ett_mapi_mapi_SPropValue_CTR = -1; +static gint ett_mapi_mapi_SPropValue = -1; +static gint ett_mapi_mapi_SPropValue_array = -1; +static gint ett_mapi_mapi_SPropTagArray = -1; static gint ett_mapi_Release_req = -1; static gint ett_mapi_Release_repl = -1; +static gint ett_mapi_OpenFolder_req = -1; +static gint ett_mapi_OpenFolder_Replicas = -1; +static gint ett_mapi_IsGhosted = -1; +static gint ett_mapi_OpenFolder_Success = -1; +static gint ett_mapi_OpenFolder_repl_status = -1; +static gint ett_mapi_OpenFolder_repl = -1; +static gint ett_mapi_String = -1; +static gint ett_mapi_TypedString = -1; static gint ett_mapi_OpenMessage_req = -1; static gint ett_mapi_RecipExchange = -1; static gint ett_mapi_RecipSMTP = -1; static gint ett_mapi_recipient_type = -1; -static gint ett_mapi_recipient_displayname_7bit = -1; -static gint ett_mapi_recipients_headers = -1; +static gint ett_mapi_recipient_SimpleDisplayName = -1; +static gint ett_mapi_recipient_TransmittableDisplayName = -1; +static gint ett_mapi_recipient_DisplayName = -1; +static gint ett_mapi_recipient_EmailAddress = -1; +static gint ett_mapi_RecipientRow = -1; static gint ett_mapi_OpenMessage_recipients = -1; -static gint ett_mapi_ulEventType = -1; -static gint ett_mapi_EcDoRpc_MAPI_REQ_UNION = -1; -static gint ett_mapi_EcDoRpc_MAPI_REPL_UNION = -1; +static gint ett_mapi_OpenMessage_Success = -1; +static gint ett_mapi_OpenMessage_repl_status = -1; +static gint ett_mapi_OpenMessage_repl = -1; +static gint ett_mapi_TableFlags = -1; +static gint ett_mapi_GetHierarchyTable_req = -1; +static gint ett_mapi_GetHierarchyTable_repl_success = -1; +static gint ett_mapi_GetHierarchyTable_repl_status = -1; +static gint ett_mapi_GetHierarchyTable_repl = -1; +static gint ett_mapi_GetContentsTable_req = -1; +static gint ett_mapi_GetContentsTable_repl_success = -1; +static gint ett_mapi_GetContentsTable_repl_status = -1; +static gint ett_mapi_GetContentsTable_repl = -1; +static gint ett_mapi_CreateMessage_req = -1; +static gint ett_mapi_CreateMessage_MessageId = -1; +static gint ett_mapi_CreateMessage_repl_success = -1; +static gint ett_mapi_CreateMessage_repl_status = -1; +static gint ett_mapi_CreateMessage_repl = -1; +static gint ett_mapi_GetProps_req = -1; +static gint ett_mapi_GetProps_repl_success = -1; +static gint ett_mapi_GetProps_repl_status = -1; +static gint ett_mapi_GetProps_repl = -1; +static gint ett_mapi_GetPropsAll_req = -1; +static gint ett_mapi_GetPropsAll_repl_success = -1; +static gint ett_mapi_GetPropsAll_repl_status = -1; +static gint ett_mapi_GetPropsAll_repl = -1; +static gint ett_mapi_GetPropList_req = -1; +static gint ett_mapi_GetPropList_repl = -1; +static gint ett_mapi_PropertyProblem = -1; +static gint ett_mapi_SetProps_req = -1; +static gint ett_mapi_SetProps_repl = -1; +static gint ett_mapi_DeleteProps_req = -1; +static gint ett_mapi_DeleteProps_repl = -1; +static gint ett_mapi_SaveChangesMessage_req = -1; +static gint ett_mapi_SaveChangesMessage_repl = -1; +static gint ett_mapi_RemoveAllRecipients_req = -1; +static gint ett_mapi_RemoveAllRecipients_repl = -1; +static gint ett_mapi_ModifyRecipientRow = -1; +static gint ett_mapi_ModifyRecipients_req = -1; +static gint ett_mapi_ModifyRecipients_repl = -1; +static gint ett_mapi_ReadRecipients_req = -1; +static gint ett_mapi_ReadRecipientRow = -1; +static gint ett_mapi_ReadRecipients_repl = -1; +static gint ett_mapi_OpenRecipientRow = -1; +static gint ett_mapi_ReloadCachedInformation_req = -1; +static gint ett_mapi_ReloadCachedInformation_repl = -1; +static gint ett_mapi_MSGFLAG_READ = -1; +static gint ett_mapi_SetMessageReadFlag_req = -1; +static gint ett_mapi_SetMessageReadFlag_LogonId = -1; +static gint ett_mapi_SetMessageReadFlag_ClientData = -1; +static gint ett_mapi_SetMessageReadFlag_repl = -1; +static gint ett_mapi_SetColumns_req = -1; +static gint ett_mapi_SetColumns_repl = -1; +static gint ett_mapi_SSortOrder = -1; +static gint ett_mapi_SSortOrderSet = -1; +static gint ett_mapi_SortTable_req = -1; +static gint ett_mapi_SortTable_repl = -1; +static gint ett_mapi_mapi_SAndRestriction = -1; +static gint ett_mapi_mapi_SOrRestriction = -1; +static gint ett_mapi_mapi_SNotRestriction = -1; +static gint ett_mapi_fuzzyLevel = -1; +static gint ett_mapi_mapi_SContentRestriction = -1; +static gint ett_mapi_mapi_SBitmaskRestriction = -1; +static gint ett_mapi_mapi_SSizeRestriction = -1; +static gint ett_mapi_mapi_SPropertyRestriction = -1; +static gint ett_mapi_mapi_SCompareProps = -1; +static gint ett_mapi_mapi_SExistRestriction = -1; +static gint ett_mapi_mapi_SSubRestriction = -1; +static gint ett_mapi_RestrictionVariable = -1; +static gint ett_mapi_mapi_SCommentRestriction = -1; +static gint ett_mapi_mapi_SRestriction_CTR = -1; +static gint ett_mapi_mapi_SRestriction = -1; +static gint ett_mapi_SRestriction_and = -1; +static gint ett_mapi_SRestriction_or = -1; +static gint ett_mapi_SRestriction_sub = -1; +static gint ett_mapi_SRestriction_comment = -1; +static gint ett_mapi_Restrict_req = -1; +static gint ett_mapi_Restrict_repl = -1; +static gint ett_mapi_QueryRows_req = -1; +static gint ett_mapi_QueryRows_repl = -1; +static gint ett_mapi_GetStatus_req = -1; +static gint ett_mapi_GetStatus_repl = -1; +static gint ett_mapi_QueryPosition_req = -1; +static gint ett_mapi_QueryPosition_repl = -1; +static gint ett_mapi_SeekRow_req = -1; +static gint ett_mapi_SeekRow_repl = -1; +static gint ett_mapi_SeekRowBookmark_req = -1; +static gint ett_mapi_SeekRowBookmark_repl = -1; +static gint ett_mapi_SeekRowApprox_req = -1; +static gint ett_mapi_SeekRowApprox_repl = -1; +static gint ett_mapi_CreateBookmark_req = -1; +static gint ett_mapi_CreateBookmark_repl = -1; +static gint ett_mapi_LPTSTR = -1; +static gint ett_mapi_CreateFolder_req = -1; +static gint ett_mapi_CreateFolder_GhostInfo = -1; +static gint ett_mapi_CreateFolder_GhostUnion = -1; +static gint ett_mapi_CreateFolder_repl = -1; +static gint ett_mapi_DeleteFolderFlags = -1; +static gint ett_mapi_DeleteFolder_req = -1; +static gint ett_mapi_DeleteFolder_repl = -1; +static gint ett_mapi_DeleteMessages_req = -1; +static gint ett_mapi_DeleteMessages_repl = -1; +static gint ett_mapi_GetMessageStatus_req = -1; +static gint ett_mapi_ulMessageStatus = -1; +static gint ett_mapi_SetMessageStatus_req = -1; +static gint ett_mapi_SetMessageStatus_repl = -1; +static gint ett_mapi_GetAttachmentTable_req = -1; +static gint ett_mapi_GetAttachmentTable_repl = -1; +static gint ett_mapi_OpenAttach_req = -1; +static gint ett_mapi_OpenAttach_repl = -1; +static gint ett_mapi_CreateAttach_req = -1; +static gint ett_mapi_CreateAttach_repl = -1; +static gint ett_mapi_DeleteAttach_req = -1; +static gint ett_mapi_DeleteAttach_repl = -1; +static gint ett_mapi_SaveChangesAttachment_req = -1; +static gint ett_mapi_SaveChangesAttachment_repl = -1; +static gint ett_mapi_SetReceiveFolder_req = -1; +static gint ett_mapi_SetReceiveFolder_repl = -1; +static gint ett_mapi_GetReceiveFolder_req = -1; +static gint ett_mapi_GetReceiveFolder_repl = -1; +static gint ett_mapi_hyperbool = -1; +static gint ett_mapi_RegisterNotification_req = -1; +static gint ett_mapi_RegisterNotification_repl = -1; +static gint ett_mapi_MsgFlags = -1; +static gint ett_mapi_MessageClass = -1; +static gint ett_mapi_GID = -1; +static gint ett_mapi_NewMailNotification = -1; +static gint ett_mapi_FolderCreatedNotification = -1; +static gint ett_mapi_FolderDeletedNotification = -1; +static gint ett_mapi_FolderModifiedNotification_10 = -1; +static gint ett_mapi_FolderMoveCopyNotification = -1; +static gint ett_mapi_SearchCompleteNotification = -1; +static gint ett_mapi_HierarchyRowAddedNotification = -1; +static gint ett_mapi_HierarchyRowDeletedNotification = -1; +static gint ett_mapi_HierarchyRowModifiedNotification = -1; +static gint ett_mapi_HierarchyTableChangeUnion = -1; +static gint ett_mapi_HierarchyTableChange = -1; +static gint ett_mapi_IcsNotification = -1; +static gint ett_mapi_FolderModifiedNotification_1010 = -1; +static gint ett_mapi_FolderModifiedNotification_2010 = -1; +static gint ett_mapi_FolderModifiedNotification_3010 = -1; +static gint ett_mapi_MessageCreatedNotification = -1; +static gint ett_mapi_MessageDeletedNotification = -1; +static gint ett_mapi_MessageModifiedNotification = -1; +static gint ett_mapi_MessageMoveCopyNotification = -1; +static gint ett_mapi_ContentsRowAddedNotification = -1; +static gint ett_mapi_ContentsRowDeletedNotification = -1; +static gint ett_mapi_ContentsRowModifiedNotification = -1; +static gint ett_mapi_ContentsTableChangeUnion = -1; +static gint ett_mapi_ContentsTableChange = -1; +static gint ett_mapi_SearchMessageCreatedNotification = -1; +static gint ett_mapi_SearchMessageRemovedNotification = -1; +static gint ett_mapi_SearchMessageModifiedNotification = -1; +static gint ett_mapi_NotificationData = -1; +static gint ett_mapi_Notify_repl = -1; +static gint ett_mapi_OpenStream_req = -1; +static gint ett_mapi_OpenStream_repl = -1; +static gint ett_mapi_MaximumByteCount = -1; +static gint ett_mapi_ReadStream_req = -1; +static gint ett_mapi_ReadStream_repl = -1; +static gint ett_mapi_WriteStream_req = -1; +static gint ett_mapi_WriteStream_repl = -1; +static gint ett_mapi_SeekStream_req = -1; +static gint ett_mapi_SeekStream_repl = -1; +static gint ett_mapi_SetStreamSize_req = -1; +static gint ett_mapi_SetStreamSize_repl = -1; +static gint ett_mapi_SearchFlags = -1; +static gint ett_mapi_SetSearchCriteria_req = -1; +static gint ett_mapi_SetSearchCriteria_repl = -1; +static gint ett_mapi_GetSearchCriteria_req = -1; +static gint ett_mapi_GetSearchCriteria_repl = -1; +static gint ett_mapi_SubmitMessage_req = -1; +static gint ett_mapi_SubmitMessage_repl = -1; +static gint ett_mapi_MoveCopyMessages_req = -1; +static gint ett_mapi_MoveCopyMessages_repl = -1; +static gint ett_mapi_AbortSubmit_req = -1; +static gint ett_mapi_AbortSubmit_repl = -1; +static gint ett_mapi_Folder_name = -1; +static gint ett_mapi_MoveFolder_req = -1; +static gint ett_mapi_MoveFolder_repl = -1; +static gint ett_mapi_CopyFolder_req = -1; +static gint ett_mapi_CopyFolder_repl = -1; +static gint ett_mapi_QueryColumnsAll_req = -1; +static gint ett_mapi_QueryColumnsAll_repl = -1; +static gint ett_mapi_Abort_req = -1; +static gint ett_mapi_Abort_repl = -1; +static gint ett_mapi_CopyFlags = -1; +static gint ett_mapi_CopyTo_req = -1; +static gint ett_mapi_CopyTo_repl = -1; +static gint ett_mapi_CopyToStream_req = -1; +static gint ett_mapi_CopyToStream_repl = -1; +static gint ett_mapi_CloneStream_req = -1; +static gint ett_mapi_CloneStream_repl = -1; +static gint ett_mapi_PermissionsTableFlags = -1; +static gint ett_mapi_GetPermissionsTable_req = -1; +static gint ett_mapi_GetPermissionsTable_repl = -1; +static gint ett_mapi_RulesTableFlags = -1; +static gint ett_mapi_GetRulesTable_req = -1; +static gint ett_mapi_GetRulesTable_repl = -1; +static gint ett_mapi_ModifyPermissionsFlags = -1; +static gint ett_mapi_PermissionData = -1; +static gint ett_mapi_mapi_PermissionsData = -1; +static gint ett_mapi_ModifyPermissions_req = -1; +static gint ett_mapi_ModifyPermissions_repl = -1; +static gint ett_mapi_RuleData = -1; +static gint ett_mapi_ModifyRulesFlag = -1; +static gint ett_mapi_ModifyRules_req = -1; +static gint ett_mapi_ModifyRules_repl = -1; +static gint ett_mapi_GetOwningServers_req = -1; +static gint ett_mapi_GetOwningServers_repl = -1; +static gint ett_mapi_LongTermIdFromId_req = -1; +static gint ett_mapi_LongTermId = -1; +static gint ett_mapi_LongTermIdFromId_repl_Success = -1; +static gint ett_mapi_LongTermIdFromId_repl_status = -1; +static gint ett_mapi_LongTermIdFromId_repl = -1; +static gint ett_mapi_IdFromLongTermId_req = -1; +static gint ett_mapi_IdFromLongTermId_repl = -1; +static gint ett_mapi_PublicFolderIsGhosted_req = -1; +static gint ett_mapi_PublicFolderIsGhosted_repl = -1; +static gint ett_mapi_OpenEmbeddedMessage_req = -1; +static gint ett_mapi_OpenEmbeddedMessage_repl = -1; +static gint ett_mapi_SetSpooler_req = -1; +static gint ett_mapi_SetSpooler_repl = -1; +static gint ett_mapi_SpoolerLockMessage_req = -1; +static gint ett_mapi_SpoolerLockMessage_repl = -1; +static gint ett_mapi_AddressTypes_req = -1; +static gint ett_mapi_AddressTypes_repl = -1; +static gint ett_mapi_TransportSend_req = -1; +static gint ett_mapi_TransportSend_lpProps = -1; +static gint ett_mapi_TransportSend_repl = -1; +static gint ett_mapi_FastTransferSourceGetBuffer_req = -1; +static gint ett_mapi_FastTransferSourceGetBuffer_repl = -1; +static gint ett_mapi_FindRow_req = -1; +static gint ett_mapi_FindRow_repl = -1; +static gint ett_mapi_Progress_req = -1; +static gint ett_mapi_Progress_repl = -1; +static gint ett_mapi_TransportNewMail_req = -1; +static gint ett_mapi_TransportNewMail_repl = -1; +static gint ett_mapi_GetValidAttachments_req = -1; +static gint ett_mapi_GetValidAttachments_repl = -1; +static gint ett_mapi_mapi_name = -1; +static gint ett_mapi_Kind = -1; +static gint ett_mapi_MAPINAMEID = -1; +static gint ett_mapi_GetNamesFromIDs_req = -1; +static gint ett_mapi_GetNamesFromIDs_repl = -1; +static gint ett_mapi_GetIDsFromNames_req = -1; +static gint ett_mapi_GetIDsFromNames_repl = -1; +static gint ett_mapi_UpdateDeferredActionMessages_req = -1; +static gint ett_mapi_UpdateDeferredActionMessages_repl = -1; +static gint ett_mapi_EmptyFolder_req = -1; +static gint ett_mapi_EmptyFolder_repl = -1; +static gint ett_mapi_ExpandRow_req = -1; +static gint ett_mapi_ExpandRow_repl = -1; +static gint ett_mapi_CollapseRow_req = -1; +static gint ett_mapi_CollapseRow_repl = -1; +static gint ett_mapi_LockRegionStream_req = -1; +static gint ett_mapi_LockRegionStream_repl = -1; +static gint ett_mapi_UnlockRegionStream_req = -1; +static gint ett_mapi_UnlockRegionStream_repl = -1; +static gint ett_mapi_CommitStream_req = -1; +static gint ett_mapi_CommitStream_repl = -1; +static gint ett_mapi_GetStreamSize_req = -1; +static gint ett_mapi_GetStreamSize_repl = -1; +static gint ett_mapi_QueryFlags = -1; +static gint ett_mapi_QueryNamedProperties_guid = -1; +static gint ett_mapi_QueryNamedProperties_req = -1; +static gint ett_mapi_QueryNamedProperties_repl = -1; +static gint ett_mapi_GetPerUserLongTermIds_req = -1; +static gint ett_mapi_GetPerUserLongTermIds_repl = -1; +static gint ett_mapi_GetPerUserGuid_req = -1; +static gint ett_mapi_GetPerUserGuid_repl = -1; +static gint ett_mapi_ReadPerUserInformation_req = -1; +static gint ett_mapi_ReadPerUserInformation_repl = -1; +static gint ett_mapi_SetReadFlags_req = -1; +static gint ett_mapi_SetReadFlags_repl = -1; +static gint ett_mapi_CopyProperties_req = -1; +static gint ett_mapi_CopyProperties_repl = -1; +static gint ett_mapi_FILETIME = -1; +static gint ett_mapi_ReceiveFolder = -1; +static gint ett_mapi_GetReceiveFolderTable_req = -1; +static gint ett_mapi_GetReceiveFolderTable_repl = -1; +static gint ett_mapi_GetCollapseState_req = -1; +static gint ett_mapi_GetCollapseState_repl = -1; +static gint ett_mapi_SetCollapseState_req = -1; +static gint ett_mapi_SetCollapseState_repl = -1; +static gint ett_mapi_GetTransportFolder_req = -1; +static gint ett_mapi_GetTransportFolder_repl = -1; +static gint ett_mapi_Pending_repl = -1; +static gint ett_mapi_OptionsData_req = -1; +static gint ett_mapi_OptionsData_HelpFileName = -1; +static gint ett_mapi_OptionsData_repl = -1; +static gint ett_mapi_SendOptions = -1; +static gint ett_mapi_SynchronizationFlag = -1; +static gint ett_mapi_SynchronizationExtraFlags = -1; +static gint ett_mapi_SyncConfigure_req = -1; +static gint ett_mapi_SyncConfigure_repl = -1; +static gint ett_mapi_ImportFlag = -1; +static gint ett_mapi_SyncImportMessageChange_req = -1; +static gint ett_mapi_SyncImportMessageChange_repl = -1; +static gint ett_mapi_SyncImportHierarchyChange_req = -1; +static gint ett_mapi_SyncImportHierarchyChange_repl = -1; +static gint ett_mapi_SyncImportDeletes_req = -1; +static gint ett_mapi_SyncImportDeletes_repl = -1; +static gint ett_mapi_SyncUploadStateStreamBegin_req = -1; +static gint ett_mapi_SyncUploadStateStreamBegin_repl = -1; +static gint ett_mapi_SyncUploadStateStreamContinue_req = -1; +static gint ett_mapi_SyncUploadStateStreamContinue_repl = -1; +static gint ett_mapi_SyncUploadStateStreamEnd_req = -1; +static gint ett_mapi_SyncUploadStateStreamEnd_repl = -1; +static gint ett_mapi_SyncImportMessageMove_req = -1; +static gint ett_mapi_SyncImportMessageMove_repl = -1; +static gint ett_mapi_SetPropertiesNoReplicate_req = -1; +static gint ett_mapi_SetPropertiesNoReplicate_repl = -1; +static gint ett_mapi_DeletePropertiesNoReplicate_req = -1; +static gint ett_mapi_DeletePropertiesNoReplicate_repl = -1; +static gint ett_mapi_StoreState = -1; +static gint ett_mapi_GetStoreState_req = -1; +static gint ett_mapi_GetStoreState_repl = -1; +static gint ett_mapi_SyncOpenCollector_req = -1; +static gint ett_mapi_SyncOpenCollector_repl = -1; +static gint ett_mapi_GetLocalReplicaIds_req = -1; +static gint ett_mapi_GetLocalReplicaIds_repl = -1; +static gint ett_mapi_SyncImportReadStateChanges_req = -1; +static gint ett_mapi_SyncImportReadStateChanges_repl = -1; +static gint ett_mapi_ResetTable_req = -1; +static gint ett_mapi_ResetTable_repl = -1; +static gint ett_mapi_SyncGetTransferState_req = -1; +static gint ett_mapi_SyncGetTransferState_repl = -1; +static gint ett_mapi_OpenPublicFolderByName_req = -1; +static gint ett_mapi_OpenPublicFolderByName_repl = -1; +static gint ett_mapi_SetSyncNotificationGuid_req = -1; +static gint ett_mapi_SetSyncNotificationGuid_repl = -1; +static gint ett_mapi_FreeBookmark_req = -1; +static gint ett_mapi_FreeBookmark_repl = -1; +static gint ett_mapi_WriteAndCommitStream_req = -1; +static gint ett_mapi_WriteAndCommitStream_repl = -1; +static gint ett_mapi_HardDeleteMessages_req = -1; +static gint ett_mapi_HardDeleteMessages_repl = -1; +static gint ett_mapi_HardDeleteMessagesAndSubfolders_req = -1; +static gint ett_mapi_HardDeleteMessagesAndSubfolders_repl = -1; +static gint ett_mapi_OpenFlags = -1; +static gint ett_mapi_LogonTime = -1; +static gint ett_mapi_ResponseFlags = -1; +static gint ett_mapi_Logon_req = -1; +static gint ett_mapi_Logon_repl = -1; +static gint ett_mapi_RopBufferTooSmall_repl = -1; +static gint ett_mapi_RopRequest = -1; +static gint ett_mapi_RopReply = -1; +static gint ett_mapi_EcDoRpcMapiRequest = -1; +static gint ett_mapi_EcDoRpcMapiResponse = -1; +static gint ett_mapi_mapi_request = -1; +static gint ett_mapi_mapi_response = -1; +static gint ett_mapi_AUX_HEADER_TYPE_ENUM = -1; +static gint ett_mapi_AUX_PERF_REQUESTID = -1; +static gint ett_mapi_AUX_PERF_CLIENTINFO = -1; +static gint ett_mapi_AUX_PERF_SERVERINFO = -1; +static gint ett_mapi_AUX_PERF_SESSIONINFO = -1; +static gint ett_mapi_AUX_PERF_SESSIONINFO_V2 = -1; +static gint ett_mapi_AUX_PERF_DEFMDB_SUCCESS = -1; +static gint ett_mapi_AUX_PERF_DEFGC_SUCCESS = -1; +static gint ett_mapi_AUX_PERF_MDB_SUCCESS = -1; +static gint ett_mapi_AUX_PERF_MDB_SUCCESS_V2 = -1; +static gint ett_mapi_AUX_PERF_GC_SUCCESS = -1; +static gint ett_mapi_AUX_PERF_GC_SUCCESS_V2 = -1; +static gint ett_mapi_AUX_PERF_FAILURE = -1; +static gint ett_mapi_AUX_PERF_FAILURE_V2 = -1; +static gint ett_mapi_CLIENT_CONTROL_EnableFlags = -1; +static gint ett_mapi_AUX_CLIENT_CONTROL = -1; +static gint ett_mapi_AUX_PERF_PROCESSINFO = -1; +static gint ett_mapi_AUX_OSVERSIONINFO = -1; +static gint ett_mapi_EXORGINFO_OrgFlags = -1; +static gint ett_mapi_AUX_EXORGINFO = -1; +static gint ett_mapi_AuxDataVersion1 = -1; +static gint ett_mapi_AuxDataVersion2 = -1; +static gint ett_mapi_AUX_DATA = -1; +static gint ett_mapi_AUX_HEADER = -1; +static gint ett_mapi_RPC_HEADER_EXT_Flags = -1; +static gint ett_mapi_RPC_HEADER_EXT = -1; +static gint ett_mapi_AuxInfo = -1; +static gint ett_mapi_AuxInfoOut = -1; +static gint ett_mapi_RpcExt2Flags = -1; +static gint ett_mapi_RopInput = -1; +static gint ett_mapi_ROPInputBuffer = -1; +static gint ett_mapi_RgbIn = -1; +static gint ett_mapi_RopOutput = -1; +static gint ett_mapi_ROPOutputBuffer = -1; +static gint ett_mapi_RgbOut = -1; /* Header field declarations */ +static gint hf_mapi_AUX_CLIENT_CONTROL_EnableFlags = -1; +static gint hf_mapi_AUX_CLIENT_CONTROL_ExpiryTime = -1; +static gint hf_mapi_AUX_DATA_Version1 = -1; +static gint hf_mapi_AUX_DATA_Version2 = -1; +static gint hf_mapi_AUX_EXORGINFO_OrgFlags = -1; +static gint hf_mapi_AUX_HEADER_AuxData = -1; +static gint hf_mapi_AUX_HEADER_Size = -1; +static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type = -1; +static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type_2 = -1; +static gint hf_mapi_AUX_HEADER_Version = -1; +static gint hf_mapi_AUX_HEADER_hdrType = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_BuildNumber = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_MajorVersion = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_MinorVersion = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_OSVersionInfoSize = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_1 = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_2 = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMajor = -1; +static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMinor = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterName = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterNameOffset = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterSpeed = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientID = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMask = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskOffset = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskSize = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPOffset = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPSize = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV4 = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV6 = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientMode = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressEther = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressOffset = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressSize = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineName = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineNameOffset = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_Reserved = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_UserName = -1; +static gint hf_mapi_AUX_PERF_CLIENTINFO_UserNameOffset = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_RequestOperation = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_Reserved = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_ServerID = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_SessionID = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_RequestID = -1; +static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_Reserved = -1; +static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_FAILURE_ClientID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_RequestID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_RequestOperation = -1; +static gint hf_mapi_AUX_PERF_FAILURE_Reserved = -1; +static gint hf_mapi_AUX_PERF_FAILURE_ResultCode = -1; +static gint hf_mapi_AUX_PERF_FAILURE_ServerID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_SessionID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_FAILURE_TimeToFailRequest = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_ClientID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_ProcessID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestOperation = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_1 = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_2 = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_ResultCode = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_ServerID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_SessionID = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeToFailRequest = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_ClientID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_RequestOperation = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_1 = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_2 = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_ServerID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_SessionID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ClientID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ProcessID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_RequestOperation = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_Reserved = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ServerID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_SessionID = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ClientID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_RequestID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ServerID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_SessionID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ClientID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ProcessID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_RequestID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_Reserved = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ServerID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_SessionID = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest = -1; +static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessGuid = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessID = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessName = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessNameOffset = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved1 = -1; +static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved2 = -1; +static gint hf_mapi_AUX_PERF_REQUESTID_RequestID = -1; +static gint hf_mapi_AUX_PERF_REQUESTID_SessionID = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDN = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDNOffset = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerID = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerName = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerNameOffset = -1; +static gint hf_mapi_AUX_PERF_SERVERINFO_ServerType = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_Reserved = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionGuid = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionID = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_ConnectionID = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_Reserved = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionGuid = -1; +static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionID = -1; +static gint hf_mapi_AbortSubmit_req_FolderId = -1; +static gint hf_mapi_AbortSubmit_req_MessageId = -1; +static gint hf_mapi_Abort_repl_TableStatus = -1; +static gint hf_mapi_ActionBlockData_ActionDataBuffer = -1; +static gint hf_mapi_ActionBlockData_ActionFlags = -1; +static gint hf_mapi_ActionBlockData_ActionFlavor = -1; +static gint hf_mapi_ActionBlockData_ActionType = -1; +static gint hf_mapi_ActionBlock_ActionBlockData = -1; +static gint hf_mapi_ActionData_BounceCode = -1; +static gint hf_mapi_ActionData_CopyAction = -1; +static gint hf_mapi_ActionData_DeferAction = -1; +static gint hf_mapi_ActionData_DelegateAction = -1; +static gint hf_mapi_ActionData_ForwardAction = -1; +static gint hf_mapi_ActionData_MoveAction = -1; +static gint hf_mapi_ActionData_PropValue = -1; +static gint hf_mapi_ActionData_ReplyAction = -1; +static gint hf_mapi_ActionData_ReplyOOFAction = -1; +static gint hf_mapi_AddressTypes_repl_cValues = -1; +static gint hf_mapi_AddressTypes_repl_size = -1; +static gint hf_mapi_AddressTypes_repl_transport = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryClientControl = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryEXOrgInfo = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryOSVersionInfo = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerFGGCSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgFailure = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgGcSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfClientInfo = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFailure = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgFailure = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfGcSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfProcessInfo = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfRequestId = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfServerInfo = -1; +static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfSessionInfo = -1; +static gint hf_mapi_AuxDataVersion1_Payload = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryEXOrgInfo = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryOSVersionInfo = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerFGGCSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerf = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgFailure = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgGcSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfClientInfo = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFailure = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgFailure = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfGcSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfMdbSuccess = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfProcessInfo = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfRequestId = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfServerInfo = -1; +static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfSessioninfo = -1; +static gint hf_mapi_AuxDataVersion2_Payload = -1; +static gint hf_mapi_AuxInfoOut_RpcHeaderExtension = -1; +static gint hf_mapi_AuxInfoOut_auxHeader = -1; +static gint hf_mapi_AuxInfo_RpcHeaderExtension = -1; +static gint hf_mapi_AuxInfo_auxHeader = -1; +static gint hf_mapi_AuxInfo_auxInSize = -1; +static gint hf_mapi_BinaryArray_r_cValues = -1; +static gint hf_mapi_BinaryArray_r_lpbin = -1; +static gint hf_mapi_Binary_r_cb = -1; +static gint hf_mapi_Binary_r_lpb = -1; +static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION = -1; +static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING = -1; +static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA = -1; +static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX = -1; +static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER = -1; +static gint hf_mapi_CollapseRow_repl_CollapsedRowCount = -1; +static gint hf_mapi_CollapseRow_req_CategoryId = -1; +static gint hf_mapi_ContentsRowAddedNotification_Columns = -1; +static gint hf_mapi_ContentsRowAddedNotification_FID = -1; +static gint hf_mapi_ContentsRowAddedNotification_InsertAfterFID = -1; +static gint hf_mapi_ContentsRowAddedNotification_InsertAfterInstance = -1; +static gint hf_mapi_ContentsRowAddedNotification_InsertAfterMID = -1; +static gint hf_mapi_ContentsRowAddedNotification_Instance = -1; +static gint hf_mapi_ContentsRowAddedNotification_MID = -1; +static gint hf_mapi_ContentsRowDeletedNotification_FID = -1; +static gint hf_mapi_ContentsRowDeletedNotification_Instance = -1; +static gint hf_mapi_ContentsRowDeletedNotification_MID = -1; +static gint hf_mapi_ContentsRowModifiedNotification_Columns = -1; +static gint hf_mapi_ContentsRowModifiedNotification_FID = -1; +static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterFID = -1; +static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterInstance = -1; +static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterMID = -1; +static gint hf_mapi_ContentsRowModifiedNotification_Instance = -1; +static gint hf_mapi_ContentsRowModifiedNotification_MID = -1; +static gint hf_mapi_ContentsTableChangeUnion_ContentsRowAddedNotification = -1; +static gint hf_mapi_ContentsTableChangeUnion_ContentsRowDeletedNotification = -1; +static gint hf_mapi_ContentsTableChangeUnion_ContentsRowModifiedNotification = -1; +static gint hf_mapi_ContentsTableChange_ContentsTableChangeUnion = -1; +static gint hf_mapi_ContentsTableChange_TableEvent = -1; +static gint hf_mapi_CopyFlags_CopyFlagsMove = -1; +static gint hf_mapi_CopyFlags_CopyFlagsNoOverwrite = -1; +static gint hf_mapi_CopyFolder_repl_PartialCompletion = -1; +static gint hf_mapi_CopyFolder_req_FolderId = -1; +static gint hf_mapi_CopyFolder_req_NewFolderName = -1; +static gint hf_mapi_CopyFolder_req_UseUnicode = -1; +static gint hf_mapi_CopyFolder_req_WantAsynchronous = -1; +static gint hf_mapi_CopyFolder_req_WantRecursive = -1; +static gint hf_mapi_CopyProperties_repl_PropertyProblem = -1; +static gint hf_mapi_CopyProperties_repl_PropertyProblemCount = -1; +static gint hf_mapi_CopyProperties_req_CopyFlags = -1; +static gint hf_mapi_CopyProperties_req_PropertyTags = -1; +static gint hf_mapi_CopyProperties_req_WantAsynchronous = -1; +static gint hf_mapi_CopyToStream_repl_ReadByteCount = -1; +static gint hf_mapi_CopyToStream_repl_WrittenByteCount = -1; +static gint hf_mapi_CopyToStream_req_ByteCount = -1; +static gint hf_mapi_CopyTo_repl_PropertyProblem = -1; +static gint hf_mapi_CopyTo_repl_PropertyProblemCount = -1; +static gint hf_mapi_CopyTo_req_CopyFlags = -1; +static gint hf_mapi_CopyTo_req_ExcludedTags = -1; +static gint hf_mapi_CopyTo_req_WantAsynchronous = -1; +static gint hf_mapi_CopyTo_req_WantSubObjects = -1; +static gint hf_mapi_CreateAttach_repl_AttachmentID = -1; +static gint hf_mapi_CreateBookmark_repl_bookmark = -1; +static gint hf_mapi_CreateFolder_GhostInfo_Ghost = -1; +static gint hf_mapi_CreateFolder_GhostInfo_HasRules = -1; +static gint hf_mapi_CreateFolder_GhostInfo_IsGhosted = -1; +static gint hf_mapi_CreateFolder_GhostUnion_GhostInfo = -1; +static gint hf_mapi_CreateFolder_repl_GhostUnion = -1; +static gint hf_mapi_CreateFolder_repl_IsExistingFolder = -1; +static gint hf_mapi_CreateFolder_repl_folder_id = -1; +static gint hf_mapi_CreateFolder_req_FolderComment = -1; +static gint hf_mapi_CreateFolder_req_FolderName = -1; +static gint hf_mapi_CreateFolder_req_ulFlags = -1; +static gint hf_mapi_CreateFolder_req_ulFolderType = -1; +static gint hf_mapi_CreateFolder_req_ulType = -1; +static gint hf_mapi_CreateMessage_MessageId_MessageId = -1; +static gint hf_mapi_CreateMessage_repl_OutputHandleIndex = -1; +static gint hf_mapi_CreateMessage_repl_ReturnValue = -1; +static gint hf_mapi_CreateMessage_repl_repl = -1; +static gint hf_mapi_CreateMessage_repl_status_Success = -1; +static gint hf_mapi_CreateMessage_repl_success_HasMessageId = -1; +static gint hf_mapi_CreateMessage_repl_success_MessageId = -1; +static gint hf_mapi_CreateMessage_req_AssociatedFlag = -1; +static gint hf_mapi_CreateMessage_req_CodePageId = -1; +static gint hf_mapi_CreateMessage_req_FolderId = -1; static gint hf_mapi_DATA_BLOB_data = -1; static gint hf_mapi_DATA_BLOB_length = -1; -static gint hf_mapi_EcDoConnect_alloc_space = -1; -static gint hf_mapi_EcDoConnect_code_page = -1; -static gint hf_mapi_EcDoConnect_emsmdb_client_version = -1; -static gint hf_mapi_EcDoConnect_input_locale = -1; -static gint hf_mapi_EcDoConnect_name = -1; -static gint hf_mapi_EcDoConnect_org_group = -1; -static gint hf_mapi_EcDoConnect_session_nb = -1; -static gint hf_mapi_EcDoConnect_store_version = -1; -static gint hf_mapi_EcDoConnect_unknown1 = -1; -static gint hf_mapi_EcDoConnect_unknown2 = -1; -static gint hf_mapi_EcDoConnect_unknown3 = -1; -static gint hf_mapi_EcDoConnect_unknown4 = -1; -static gint hf_mapi_EcDoConnect_user = -1; -static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps = -1; -static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder = -1; -static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_Release = -1; -static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps = -1; -static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder = -1; -static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore = -1; -static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release = -1; -static gint hf_mapi_EcDoRpc_codepage = -1; -static gint hf_mapi_EcDoRpc_folder_id = -1; -static gint hf_mapi_EcDoRpc_handle_index = -1; -static gint hf_mapi_EcDoRpc_layout = -1; -static gint hf_mapi_EcDoRpc_length = -1; -static gint hf_mapi_EcDoRpc_mailbox = -1; -static gint hf_mapi_EcDoRpc_mapi_flags = -1; -static gint hf_mapi_EcDoRpc_mapi_request = -1; -static gint hf_mapi_EcDoRpc_mapi_request_ = -1; -static gint hf_mapi_EcDoRpc_mapi_response = -1; -static gint hf_mapi_EcDoRpc_mapi_response_ = -1; -static gint hf_mapi_EcDoRpc_mapi_tag = -1; -static gint hf_mapi_EcDoRpc_max_data = -1; -static gint hf_mapi_EcDoRpc_offset = -1; -static gint hf_mapi_EcDoRpc_padding = -1; -static gint hf_mapi_EcDoRpc_prop_count = -1; -static gint hf_mapi_EcDoRpc_row = -1; -static gint hf_mapi_EcDoRpc_size = -1; -static gint hf_mapi_EcDoRpc_str_length = -1; -static gint hf_mapi_EcDoRpc_subcontext_size = -1; -static gint hf_mapi_EcDoRpc_unknown1 = -1; -static gint hf_mapi_EcDoRpc_unknown2 = -1; -static gint hf_mapi_EcDoRpc_unknown3 = -1; -static gint hf_mapi_EcRRegisterPushNotification_notif_len = -1; -static gint hf_mapi_EcRRegisterPushNotification_notifkey = -1; -static gint hf_mapi_EcRRegisterPushNotification_retval = -1; -static gint hf_mapi_EcRRegisterPushNotification_sockaddr = -1; -static gint hf_mapi_EcRRegisterPushNotification_sockaddr_len = -1; -static gint hf_mapi_EcRRegisterPushNotification_ulEventMask = -1; -static gint hf_mapi_EcRRegisterPushNotification_unknown2 = -1; -static gint hf_mapi_EcRUnregisterPushNotification_unknown = -1; +static gint hf_mapi_DateTimeArray_r_cValues = -1; +static gint hf_mapi_DateTimeArray_r_lpft = -1; +static gint hf_mapi_DeleteAttach_req_AttachmentID = -1; +static gint hf_mapi_DeleteFolderFlags_DELETE_HARD_DELETE = -1; +static gint hf_mapi_DeleteFolderFlags_DEL_FOLDERS = -1; +static gint hf_mapi_DeleteFolderFlags_DEL_MESSAGES = -1; +static gint hf_mapi_DeleteFolder_repl_PartialCompletion = -1; +static gint hf_mapi_DeleteFolder_req_DeleteFolderFlags = -1; +static gint hf_mapi_DeleteFolder_req_FolderId = -1; +static gint hf_mapi_DeleteMessages_repl_PartialCompletion = -1; +static gint hf_mapi_DeleteMessages_req_NotifyNonRead = -1; +static gint hf_mapi_DeleteMessages_req_WantAsynchronous = -1; +static gint hf_mapi_DeleteMessages_req_cn_ids = -1; +static gint hf_mapi_DeleteMessages_req_message_ids = -1; +static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblem = -1; +static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblemCount = -1; +static gint hf_mapi_DeletePropertiesNoReplicate_req_PropertyTags = -1; +static gint hf_mapi_DeleteProps_repl_PropertyProblem = -1; +static gint hf_mapi_DeleteProps_repl_PropertyProblemCount = -1; +static gint hf_mapi_DeleteProps_req_PropertyTagCount = -1; +static gint hf_mapi_DeleteProps_req_tags = -1; +static gint hf_mapi_EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED = -1; +static gint hf_mapi_EcDoRpcMapiRequest_opnum = -1; +static gint hf_mapi_EcDoRpcMapiRequest_u = -1; +static gint hf_mapi_EcDoRpcMapiResponse_opnum = -1; +static gint hf_mapi_EcDoRpcMapiResponse_u = -1; +static gint hf_mapi_EmptyFolder_repl_PartialCompletion = -1; +static gint hf_mapi_EmptyFolder_req_WantAsynchronous = -1; +static gint hf_mapi_EmptyFolder_req_WantDeleteAssociated = -1; +static gint hf_mapi_ExpandRow_repl_ExpandedRowCount = -1; +static gint hf_mapi_ExpandRow_repl_RowCount = -1; +static gint hf_mapi_ExpandRow_repl_RowData = -1; +static gint hf_mapi_ExpandRow_req_CategoryId = -1; +static gint hf_mapi_ExpandRow_req_MaxRowCount = -1; static gint hf_mapi_FILETIME_dwHighDateTime = -1; static gint hf_mapi_FILETIME_dwLowDateTime = -1; -static gint hf_mapi_LPSTR_lppszA = -1; -static gint hf_mapi_MAPISTATUS_status = -1; -static gint hf_mapi_MAPI_OPNUM = -1; -static gint hf_mapi_MAPI_handle = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_repl_InProgressCount = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_repl_Reserved = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_repl_TotalStepCount = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferBuffer = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferStatus = -1; +static gint hf_mapi_FastTransferSourceGetBuffer_req_BufferSize = -1; +static gint hf_mapi_FindRow_repl_HasRowData = -1; +static gint hf_mapi_FindRow_repl_RowNoLongerVisible = -1; +static gint hf_mapi_FindRow_repl_row = -1; +static gint hf_mapi_FindRow_req_bookmark = -1; +static gint hf_mapi_FindRow_req_origin = -1; +static gint hf_mapi_FindRow_req_res = -1; +static gint hf_mapi_FindRow_req_ulFlags = -1; +static gint hf_mapi_FolderCreatedNotification_FID = -1; +static gint hf_mapi_FolderCreatedNotification_ParentFID = -1; +static gint hf_mapi_FolderCreatedNotification_TagCount = -1; +static gint hf_mapi_FolderCreatedNotification_Tags = -1; +static gint hf_mapi_FolderDeletedNotification_FID = -1; +static gint hf_mapi_FolderDeletedNotification_ParentFID = -1; +static gint hf_mapi_FolderModifiedNotification_1010_FID = -1; +static gint hf_mapi_FolderModifiedNotification_1010_TagCount = -1; +static gint hf_mapi_FolderModifiedNotification_1010_Tags = -1; +static gint hf_mapi_FolderModifiedNotification_1010_TotalMessageCount = -1; +static gint hf_mapi_FolderModifiedNotification_10_FID = -1; +static gint hf_mapi_FolderModifiedNotification_10_TagCount = -1; +static gint hf_mapi_FolderModifiedNotification_10_Tags = -1; +static gint hf_mapi_FolderModifiedNotification_2010_FID = -1; +static gint hf_mapi_FolderModifiedNotification_2010_TagCount = -1; +static gint hf_mapi_FolderModifiedNotification_2010_Tags = -1; +static gint hf_mapi_FolderModifiedNotification_2010_UnreadMessageCount = -1; +static gint hf_mapi_FolderModifiedNotification_3010_FID = -1; +static gint hf_mapi_FolderModifiedNotification_3010_TagCount = -1; +static gint hf_mapi_FolderModifiedNotification_3010_Tags = -1; +static gint hf_mapi_FolderModifiedNotification_3010_TotalMessageCount = -1; +static gint hf_mapi_FolderModifiedNotification_3010_UnreadMessageCount = -1; +static gint hf_mapi_FolderMoveCopyNotification_FID = -1; +static gint hf_mapi_FolderMoveCopyNotification_OldFID = -1; +static gint hf_mapi_FolderMoveCopyNotification_OldParentFID = -1; +static gint hf_mapi_FolderMoveCopyNotification_ParentFID = -1; +static gint hf_mapi_Folder_name_lpszA = -1; +static gint hf_mapi_Folder_name_lpszW = -1; +static gint hf_mapi_ForwardDelegate_Action_RecipientBlock = -1; +static gint hf_mapi_ForwardDelegate_Action_RecipientCount = -1; +static gint hf_mapi_FreeBookmark_req_bookmark = -1; +static gint hf_mapi_GID_DatabaseGUID = -1; +static gint hf_mapi_GID_GlobalCounter = -1; +static gint hf_mapi_GetAttachmentTable_req_TableFlags = -1; +static gint hf_mapi_GetCollapseState_repl_CollapseState = -1; +static gint hf_mapi_GetCollapseState_req_RowId = -1; +static gint hf_mapi_GetCollapseState_req_RowInstanceNumber = -1; +static gint hf_mapi_GetContentsTable_repl_OutputHandleIndex = -1; +static gint hf_mapi_GetContentsTable_repl_ReturnValue = -1; +static gint hf_mapi_GetContentsTable_repl_repl = -1; +static gint hf_mapi_GetContentsTable_repl_status_Success = -1; +static gint hf_mapi_GetContentsTable_repl_success_RowCount = -1; +static gint hf_mapi_GetContentsTable_req_TableFlags = -1; +static gint hf_mapi_GetHierarchyTable_repl_OutputHandleIndex = -1; +static gint hf_mapi_GetHierarchyTable_repl_ReturnValue = -1; +static gint hf_mapi_GetHierarchyTable_repl_repl = -1; +static gint hf_mapi_GetHierarchyTable_repl_status_Success = -1; +static gint hf_mapi_GetHierarchyTable_repl_success_RowCount = -1; +static gint hf_mapi_GetHierarchyTable_req_TableFlags = -1; +static gint hf_mapi_GetIDsFromNames_repl_count = -1; +static gint hf_mapi_GetIDsFromNames_repl_propID = -1; +static gint hf_mapi_GetIDsFromNames_req_count = -1; +static gint hf_mapi_GetIDsFromNames_req_nameid = -1; +static gint hf_mapi_GetIDsFromNames_req_ulFlags = -1; +static gint hf_mapi_GetLocalReplicaIds_repl_GlobalCount = -1; +static gint hf_mapi_GetLocalReplicaIds_repl_ReplGuid = -1; +static gint hf_mapi_GetLocalReplicaIds_req_IdCount = -1; +static gint hf_mapi_GetMessageStatus_req_msgid = -1; +static gint hf_mapi_GetNamesFromIDs_repl_count = -1; +static gint hf_mapi_GetNamesFromIDs_repl_nameid = -1; +static gint hf_mapi_GetNamesFromIDs_req_PropertyIdCount = -1; +static gint hf_mapi_GetNamesFromIDs_req_PropertyIds = -1; +static gint hf_mapi_GetOwningServers_repl_CheapServersCount = -1; +static gint hf_mapi_GetOwningServers_repl_OwningServers = -1; +static gint hf_mapi_GetOwningServers_repl_OwningServersCount = -1; +static gint hf_mapi_GetOwningServers_req_FolderId = -1; +static gint hf_mapi_GetPerUserGuid_repl_DatabaseGuid = -1; +static gint hf_mapi_GetPerUserGuid_req_LongTermId = -1; +static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIdCount = -1; +static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIds = -1; +static gint hf_mapi_GetPerUserLongTermIds_req_DatabaseGuid = -1; +static gint hf_mapi_GetPermissionsTable_req_TableFlags = -1; +static gint hf_mapi_GetPropList_repl_count = -1; +static gint hf_mapi_GetPropList_repl_tags = -1; +static gint hf_mapi_GetPropsAll_repl_InputHandleIndex = -1; +static gint hf_mapi_GetPropsAll_repl_ReturnValue = -1; +static gint hf_mapi_GetPropsAll_repl_repl = -1; +static gint hf_mapi_GetPropsAll_repl_status_Success = -1; +static gint hf_mapi_GetPropsAll_repl_success_properties = -1; +static gint hf_mapi_GetPropsAll_req_PropertySizeLimit = -1; +static gint hf_mapi_GetPropsAll_req_WantUnicode = -1; +static gint hf_mapi_GetProps_repl_InputHandleIndex = -1; +static gint hf_mapi_GetProps_repl_ReturnValue = -1; +static gint hf_mapi_GetProps_repl_repl = -1; +static gint hf_mapi_GetProps_repl_status_Success = -1; +static gint hf_mapi_GetProps_repl_success_layout = -1; +static gint hf_mapi_GetProps_repl_success_prop_data = -1; +static gint hf_mapi_GetProps_req_PropertySizeLimit = -1; +static gint hf_mapi_GetProps_req_WantUnicode = -1; +static gint hf_mapi_GetProps_req_prop_count = -1; +static gint hf_mapi_GetProps_req_properties = -1; +static gint hf_mapi_GetReceiveFolderTable_repl_cValues = -1; +static gint hf_mapi_GetReceiveFolderTable_repl_entries = -1; +static gint hf_mapi_GetReceiveFolder_repl_MessageClass = -1; +static gint hf_mapi_GetReceiveFolder_repl_folder_id = -1; +static gint hf_mapi_GetReceiveFolder_req_MessageClass = -1; +static gint hf_mapi_GetRulesTable_req_TableFlags = -1; +static gint hf_mapi_GetSearchCriteria_repl_FolderIdCount = -1; +static gint hf_mapi_GetSearchCriteria_repl_FolderIds = -1; +static gint hf_mapi_GetSearchCriteria_repl_SearchFlags = -1; +static gint hf_mapi_GetSearchCriteria_repl_res = -1; +static gint hf_mapi_GetSearchCriteria_repl_unknown = -1; +static gint hf_mapi_GetSearchCriteria_req_IncludeFolders = -1; +static gint hf_mapi_GetSearchCriteria_req_IncludeRestriction = -1; +static gint hf_mapi_GetSearchCriteria_req_UseUnicode = -1; +static gint hf_mapi_GetStatus_repl_TableStatus = -1; +static gint hf_mapi_GetStoreState_repl_StoreState = -1; +static gint hf_mapi_GetStreamSize_repl_StreamSize = -1; +static gint hf_mapi_GetTransportFolder_repl_FolderId = -1; +static gint hf_mapi_GetValidAttachments_repl_AttachmentIdArray = -1; +static gint hf_mapi_GetValidAttachments_repl_AttachmentIdCount = -1; +static gint hf_mapi_HardDeleteMessagesAndSubfolders_repl_PartialCompletion = -1; +static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantAsynchronous = -1; +static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated = -1; +static gint hf_mapi_HardDeleteMessages_repl_PartialCompletion = -1; +static gint hf_mapi_HardDeleteMessages_req_MessageIdCount = -1; +static gint hf_mapi_HardDeleteMessages_req_MessageIds = -1; +static gint hf_mapi_HardDeleteMessages_req_NotifyNonRead = -1; +static gint hf_mapi_HardDeleteMessages_req_WantAsynchronous = -1; +static gint hf_mapi_HierarchyRowAddedNotification_Columns = -1; +static gint hf_mapi_HierarchyRowAddedNotification_FID = -1; +static gint hf_mapi_HierarchyRowAddedNotification_InsertAfterFID = -1; +static gint hf_mapi_HierarchyRowDeletedNotification_FID = -1; +static gint hf_mapi_HierarchyRowModifiedNotification_Columns = -1; +static gint hf_mapi_HierarchyRowModifiedNotification_FID = -1; +static gint hf_mapi_HierarchyRowModifiedNotification_InsertAfterFID = -1; +static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowAddedNotification = -1; +static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowDeletedNotification = -1; +static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowModifiedNotification = -1; +static gint hf_mapi_HierarchyTableChange_HierarchyTableChangeUnion = -1; +static gint hf_mapi_HierarchyTableChange_TableEvent = -1; +static gint hf_mapi_IcsNotification_GID = -1; +static gint hf_mapi_IcsNotification_GIDCount = -1; +static gint hf_mapi_IcsNotification_HierChanged = -1; +static gint hf_mapi_IdFromLongTermId_repl_Id = -1; +static gint hf_mapi_IdFromLongTermId_req_LongTermId = -1; +static gint hf_mapi_ImportFlag_ImportFlag_Associated = -1; +static gint hf_mapi_ImportFlag_ImportFlag_FailOnConflict = -1; +static gint hf_mapi_InputHandleIndex = -1; +static gint hf_mapi_IsGhosted_Replicas = -1; +static gint hf_mapi_Kind_lid = -1; +static gint hf_mapi_Kind_lpwstr = -1; +static gint hf_mapi_LPTSTR_lpszA = -1; +static gint hf_mapi_LPTSTR_lpszW = -1; +static gint hf_mapi_LockRegionStream_req_LockFlags = -1; +static gint hf_mapi_LockRegionStream_req_RegionOffset = -1; +static gint hf_mapi_LockRegionStream_req_RegionSize = -1; +static gint hf_mapi_LogonId = -1; +static gint hf_mapi_LogonTime_Day = -1; +static gint hf_mapi_LogonTime_DayOfWeek = -1; +static gint hf_mapi_LogonTime_Hour = -1; +static gint hf_mapi_LogonTime_Minutes = -1; +static gint hf_mapi_LogonTime_Month = -1; +static gint hf_mapi_LogonTime_Seconds = -1; +static gint hf_mapi_LogonTime_Year = -1; +static gint hf_mapi_Logon_repl_FolderIds = -1; +static gint hf_mapi_Logon_repl_GwartTime = -1; +static gint hf_mapi_Logon_repl_LogonFlags = -1; +static gint hf_mapi_Logon_repl_LogonTime = -1; +static gint hf_mapi_Logon_repl_MailboxGuid = -1; +static gint hf_mapi_Logon_repl_OutputHandleIndex = -1; +static gint hf_mapi_Logon_repl_PerUserGuid = -1; +static gint hf_mapi_Logon_repl_ReplGuid = -1; +static gint hf_mapi_Logon_repl_ReplId = -1; +static gint hf_mapi_Logon_repl_ResponseFlags = -1; +static gint hf_mapi_Logon_repl_ReturnValue = -1; +static gint hf_mapi_Logon_repl_ServerName = -1; +static gint hf_mapi_Logon_repl_ServerNameSize = -1; +static gint hf_mapi_Logon_repl_StoreState = -1; +static gint hf_mapi_Logon_req_EssDN = -1; +static gint hf_mapi_Logon_req_EssdnSize = -1; +static gint hf_mapi_Logon_req_LogonFlags = -1; +static gint hf_mapi_Logon_req_OpenFlags = -1; +static gint hf_mapi_Logon_req_StoreState = -1; +static gint hf_mapi_LongArray_r_cValues = -1; +static gint hf_mapi_LongArray_r_lpl = -1; +static gint hf_mapi_LongTermIdFromId_repl_InputHandleIndex = -1; +static gint hf_mapi_LongTermIdFromId_repl_ReturnValue = -1; +static gint hf_mapi_LongTermIdFromId_repl_Success_LongTermId = -1; +static gint hf_mapi_LongTermIdFromId_repl_repl = -1; +static gint hf_mapi_LongTermIdFromId_repl_status_Success = -1; +static gint hf_mapi_LongTermIdFromId_req_Id = -1; +static gint hf_mapi_LongTermId_DatabaseGuid = -1; +static gint hf_mapi_LongTermId_GlobalCounter = -1; +static gint hf_mapi_LongTermId_padding = -1; +static gint hf_mapi_MAPINAMEID_kind = -1; +static gint hf_mapi_MAPINAMEID_lpguid = -1; +static gint hf_mapi_MAPINAMEID_ulKind = -1; +static gint hf_mapi_MSGFLAG_READ_CLEAR_NRN_PENDING = -1; +static gint hf_mapi_MSGFLAG_READ_CLEAR_READ_FLAG = -1; +static gint hf_mapi_MSGFLAG_READ_CLEAR_RN_PENDING = -1; +static gint hf_mapi_MSGFLAG_READ_GENERATE_RECEIPT_ONLY = -1; +static gint hf_mapi_MSGFLAG_READ_MAPI_DEFERRED_ERRORS = -1; +static gint hf_mapi_MSGFLAG_READ_SUPPRESS_RECEIPT = -1; +static gint hf_mapi_MaximumByteCount_value = -1; +static gint hf_mapi_MessageClass_lpszA = -1; +static gint hf_mapi_MessageClass_lpszW = -1; +static gint hf_mapi_MessageCreatedNotification_FID = -1; +static gint hf_mapi_MessageCreatedNotification_MID = -1; +static gint hf_mapi_MessageCreatedNotification_TagCount = -1; +static gint hf_mapi_MessageCreatedNotification_Tags = -1; +static gint hf_mapi_MessageDeletedNotification_FID = -1; +static gint hf_mapi_MessageDeletedNotification_MID = -1; +static gint hf_mapi_MessageModifiedNotification_FID = -1; +static gint hf_mapi_MessageModifiedNotification_MID = -1; +static gint hf_mapi_MessageModifiedNotification_TagCount = -1; +static gint hf_mapi_MessageModifiedNotification_Tags = -1; +static gint hf_mapi_MessageMoveCopyNotification_FID = -1; +static gint hf_mapi_MessageMoveCopyNotification_MID = -1; +static gint hf_mapi_MessageMoveCopyNotification_OldFID = -1; +static gint hf_mapi_MessageMoveCopyNotification_OldMID = -1; +static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy = -1; +static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_ReplaceRows = -1; +static gint hf_mapi_ModifyPermissions_req_rowList = -1; +static gint hf_mapi_ModifyRecipientRow_RecipClass = -1; +static gint hf_mapi_ModifyRecipientRow_RecipientRow = -1; +static gint hf_mapi_ModifyRecipientRow_idx = -1; +static gint hf_mapi_ModifyRecipients_req_RecipientRow = -1; +static gint hf_mapi_ModifyRecipients_req_cValues = -1; +static gint hf_mapi_ModifyRecipients_req_prop_count = -1; +static gint hf_mapi_ModifyRecipients_req_properties = -1; +static gint hf_mapi_ModifyRulesFlag_ModifyRulesFlag_Replace = -1; +static gint hf_mapi_ModifyRules_req_ModifyRulesFlags = -1; +static gint hf_mapi_ModifyRules_req_RulesCount = -1; +static gint hf_mapi_ModifyRules_req_RulesData = -1; +static gint hf_mapi_MoveCopyMessages_repl_PartialCompletion = -1; +static gint hf_mapi_MoveCopyMessages_req_WantAsynchronous = -1; +static gint hf_mapi_MoveCopyMessages_req_WantCopy = -1; +static gint hf_mapi_MoveCopyMessages_req_count = -1; +static gint hf_mapi_MoveCopyMessages_req_message_id = -1; +static gint hf_mapi_MoveCopy_Action_FolderEID = -1; +static gint hf_mapi_MoveCopy_Action_FolderInThisStore = -1; +static gint hf_mapi_MoveCopy_Action_StoreEID = -1; +static gint hf_mapi_MoveFolder_repl_PartialCompletion = -1; +static gint hf_mapi_MoveFolder_req_FolderId = -1; +static gint hf_mapi_MoveFolder_req_NewFolderName = -1; +static gint hf_mapi_MoveFolder_req_UseUnicode = -1; +static gint hf_mapi_MoveFolder_req_WantAsynchronous = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_ASSOCIATED = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_FROMME = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_HASATTACH = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_NRN_PENDING = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_READ = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_RESEND = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_RN_PENDING = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_SUBMIT = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_UNMODIFIED = -1; +static gint hf_mapi_MsgFlags_MSGFLAG_UNSENT = -1; +static gint hf_mapi_NewMailNotification_FID = -1; +static gint hf_mapi_NewMailNotification_MID = -1; +static gint hf_mapi_NewMailNotification_MessageClass = -1; +static gint hf_mapi_NewMailNotification_MessageFlags = -1; +static gint hf_mapi_NewMailNotification_UnicodeFlag = -1; +static gint hf_mapi_NotificationData_ContentsTableChange = -1; +static gint hf_mapi_NotificationData_FolderCopyNotification = -1; +static gint hf_mapi_NotificationData_FolderCreatedNotification = -1; +static gint hf_mapi_NotificationData_FolderDeletedNotification = -1; +static gint hf_mapi_NotificationData_FolderModifiedNotification_10 = -1; +static gint hf_mapi_NotificationData_FolderModifiedNotification_1010 = -1; +static gint hf_mapi_NotificationData_FolderModifiedNotification_2010 = -1; +static gint hf_mapi_NotificationData_FolderModifiedNotification_3010 = -1; +static gint hf_mapi_NotificationData_FolderMoveNotification = -1; +static gint hf_mapi_NotificationData_HierarchyTableChange = -1; +static gint hf_mapi_NotificationData_IcsNotification = -1; +static gint hf_mapi_NotificationData_MessageCopyNotification = -1; +static gint hf_mapi_NotificationData_MessageCreatedNotification = -1; +static gint hf_mapi_NotificationData_MessageDeletedNotification = -1; +static gint hf_mapi_NotificationData_MessageModifiedNotification = -1; +static gint hf_mapi_NotificationData_MessageMoveNotification = -1; +static gint hf_mapi_NotificationData_NewMailNotification = -1; +static gint hf_mapi_NotificationData_NewMessageNotification = -1; +static gint hf_mapi_NotificationData_SearchCompleteNotification = -1; +static gint hf_mapi_NotificationData_SearchMessageCreatedNotification = -1; +static gint hf_mapi_NotificationData_SearchMessageModifiedNotification = -1; +static gint hf_mapi_NotificationData_SearchMessageRemovedNotification = -1; +static gint hf_mapi_NotificationData_SearchTableChange = -1; +static gint hf_mapi_Notify_repl_LogonId = -1; +static gint hf_mapi_Notify_repl_NotificationData = -1; +static gint hf_mapi_Notify_repl_NotificationHandle = -1; +static gint hf_mapi_Notify_repl_NotificationType = -1; +static gint hf_mapi_OpenAttach_req_AttachmentID = -1; +static gint hf_mapi_OpenAttach_req_OpenAttachmentFlags = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_ColumnCount = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_HasNamedProperties = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_MessageId = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_NormalizedSubject = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientColumns = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientCount = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientRows = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_Reserved = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_RowCount = -1; +static gint hf_mapi_OpenEmbeddedMessage_repl_SubjectPrefix = -1; +static gint hf_mapi_OpenEmbeddedMessage_req_CodePageId = -1; +static gint hf_mapi_OpenEmbeddedMessage_req_OpenModeFlags = -1; +static gint hf_mapi_OpenFlags_ALTERNATE_SERVER = -1; +static gint hf_mapi_OpenFlags_HOME_LOGON = -1; +static gint hf_mapi_OpenFlags_IGNORE_HOME_MDB = -1; +static gint hf_mapi_OpenFlags_NO_MAIL = -1; +static gint hf_mapi_OpenFlags_PUBLIC = -1; +static gint hf_mapi_OpenFlags_TAKE_OWNERSHIP = -1; +static gint hf_mapi_OpenFlags_USE_PER_MDB_REPLID_MAPPING = -1; +static gint hf_mapi_OpenFolder_Replicas_CheapServerCount = -1; +static gint hf_mapi_OpenFolder_Replicas_ServerCount = -1; +static gint hf_mapi_OpenFolder_Replicas_Servers = -1; +static gint hf_mapi_OpenFolder_Success_Ghost = -1; +static gint hf_mapi_OpenFolder_Success_HasRules = -1; +static gint hf_mapi_OpenFolder_Success_IsGhosted = -1; +static gint hf_mapi_OpenFolder_repl_OutputHandleIndex = -1; +static gint hf_mapi_OpenFolder_repl_ReturnValue = -1; +static gint hf_mapi_OpenFolder_repl_repl = -1; +static gint hf_mapi_OpenFolder_repl_status_Success = -1; +static gint hf_mapi_OpenFolder_req_FolderId = -1; +static gint hf_mapi_OpenFolder_req_OpenModeFlags = -1; +static gint hf_mapi_OpenMessage_Success_ColumnCount = -1; +static gint hf_mapi_OpenMessage_Success_HasNamedProperties = -1; +static gint hf_mapi_OpenMessage_Success_NormalizedSubject = -1; +static gint hf_mapi_OpenMessage_Success_RecipientColumns = -1; +static gint hf_mapi_OpenMessage_Success_RecipientCount = -1; +static gint hf_mapi_OpenMessage_Success_RowCount = -1; +static gint hf_mapi_OpenMessage_Success_SubjectPrefix = -1; +static gint hf_mapi_OpenMessage_Success_recipients = -1; static gint hf_mapi_OpenMessage_recipients_RecipClass = -1; +static gint hf_mapi_OpenMessage_recipients_RecipientRow = -1; +static gint hf_mapi_OpenMessage_recipients_Reserved = -1; static gint hf_mapi_OpenMessage_recipients_codepage = -1; -static gint hf_mapi_OpenMessage_recipients_recipients_headers = -1; -static gint hf_mapi_OpenMessage_recipients_recipients_headers_ = -1; -static gint hf_mapi_OpenMessage_req_folder_handle_idx = -1; -static gint hf_mapi_OpenMessage_req_folder_id = -1; -static gint hf_mapi_OpenMessage_req_max_data = -1; -static gint hf_mapi_OpenMessage_req_message_id = -1; -static gint hf_mapi_OpenMessage_req_message_permissions = -1; +static gint hf_mapi_OpenMessage_repl_OutputHandleIndex = -1; +static gint hf_mapi_OpenMessage_repl_ReturnValue = -1; +static gint hf_mapi_OpenMessage_repl_repl = -1; +static gint hf_mapi_OpenMessage_repl_status_Success = -1; +static gint hf_mapi_OpenMessage_req_CodePageId = -1; +static gint hf_mapi_OpenMessage_req_FolderId = -1; +static gint hf_mapi_OpenMessage_req_MessageId = -1; +static gint hf_mapi_OpenMessage_req_OpenModeFlags = -1; +static gint hf_mapi_OpenPublicFolderByName_repl_Ghost = -1; +static gint hf_mapi_OpenPublicFolderByName_repl_HasRules = -1; +static gint hf_mapi_OpenPublicFolderByName_repl_IsGhosted = -1; +static gint hf_mapi_OpenPublicFolderByName_req_handle_idx = -1; +static gint hf_mapi_OpenPublicFolderByName_req_name = -1; +static gint hf_mapi_OpenRecipientRow_CodePageId = -1; +static gint hf_mapi_OpenRecipientRow_InputHandleIndex = -1; +static gint hf_mapi_OpenRecipientRow_LogonId = -1; +static gint hf_mapi_OpenRecipientRow_RecipientRow = -1; +static gint hf_mapi_OpenRecipientRow_RecipientType = -1; +static gint hf_mapi_OpenRecipientRow_Reserved = -1; +static gint hf_mapi_OpenStream_repl_StreamSize = -1; +static gint hf_mapi_OpenStream_req_OpenModeFlags = -1; +static gint hf_mapi_OpenStream_req_PropertyTag = -1; +static gint hf_mapi_OptionsData_HelpFileName_HelpFileName = -1; +static gint hf_mapi_OptionsData_repl_HelpFile = -1; +static gint hf_mapi_OptionsData_repl_HelpFileName = -1; +static gint hf_mapi_OptionsData_repl_HelpFileSize = -1; +static gint hf_mapi_OptionsData_repl_OptionsInfo = -1; +static gint hf_mapi_OptionsData_repl_Reserved = -1; +static gint hf_mapi_OptionsData_req_AddressType = -1; +static gint hf_mapi_OptionsData_req_WantWin32 = -1; +static gint hf_mapi_OutputHandleIndex = -1; +static gint hf_mapi_Pending_repl_SessionIndex = -1; +static gint hf_mapi_PermissionData_PermissionDataFlags = -1; +static gint hf_mapi_PermissionData_lpProps = -1; +static gint hf_mapi_PermissionsTableFlags_IncludeFreeBusy = -1; +static gint hf_mapi_Progress_repl_CompletedTaskCount = -1; +static gint hf_mapi_Progress_repl_TotalTaskCount = -1; +static gint hf_mapi_Progress_req_WantCancel = -1; +static gint hf_mapi_PropertyProblem_error_code = -1; +static gint hf_mapi_PropertyProblem_index = -1; +static gint hf_mapi_PropertyProblem_property_tag = -1; +static gint hf_mapi_PublicFolderIsGhosted_repl_Ghost = -1; +static gint hf_mapi_PublicFolderIsGhosted_repl_IsGhosted = -1; +static gint hf_mapi_PublicFolderIsGhosted_req_FolderId = -1; +static gint hf_mapi_QueryColumnsAll_repl_PropertyTagCount = -1; +static gint hf_mapi_QueryColumnsAll_repl_PropertyTags = -1; +static gint hf_mapi_QueryFlags_NoIds = -1; +static gint hf_mapi_QueryFlags_NoStrings = -1; +static gint hf_mapi_QueryNamedProperties_guid_guid = -1; +static gint hf_mapi_QueryNamedProperties_repl_IdCount = -1; +static gint hf_mapi_QueryNamedProperties_repl_PropertyIds = -1; +static gint hf_mapi_QueryNamedProperties_repl_PropertyNames = -1; +static gint hf_mapi_QueryNamedProperties_req_HasGuid = -1; +static gint hf_mapi_QueryNamedProperties_req_PropertyGuid = -1; +static gint hf_mapi_QueryNamedProperties_req_QueryFlags = -1; +static gint hf_mapi_QueryPosition_repl_Denominator = -1; +static gint hf_mapi_QueryPosition_repl_Numerator = -1; +static gint hf_mapi_QueryRows_repl_Origin = -1; +static gint hf_mapi_QueryRows_repl_RowCount = -1; +static gint hf_mapi_QueryRows_repl_RowData = -1; +static gint hf_mapi_QueryRows_req_ForwardRead = -1; +static gint hf_mapi_QueryRows_req_QueryRowsFlags = -1; +static gint hf_mapi_QueryRows_req_RowCount = -1; +static gint hf_mapi_ROPInputBuffer_objectHandles = -1; +static gint hf_mapi_ROPInputBuffer_rop = -1; +static gint hf_mapi_ROPInputBuffer_ropSize = -1; +static gint hf_mapi_ROPOutputBuffer_objectHandles = -1; +static gint hf_mapi_ROPOutputBuffer_rop = -1; +static gint hf_mapi_ROPOutputBuffer_ropSize = -1; +static gint hf_mapi_RPC_HEADER_EXT_Flags = -1; +static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed = -1; +static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last = -1; +static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic = -1; +static gint hf_mapi_RPC_HEADER_EXT_Size = -1; +static gint hf_mapi_RPC_HEADER_EXT_SizeActual = -1; +static gint hf_mapi_RPC_HEADER_EXT_Version = -1; +static gint hf_mapi_ReadPerUserInformation_repl_Data = -1; +static gint hf_mapi_ReadPerUserInformation_repl_HasFinished = -1; +static gint hf_mapi_ReadPerUserInformation_req_DataOffset = -1; +static gint hf_mapi_ReadPerUserInformation_req_FolderId = -1; +static gint hf_mapi_ReadPerUserInformation_req_MaxDataSize = -1; +static gint hf_mapi_ReadPerUserInformation_req_WhatIfChanged = -1; +static gint hf_mapi_ReadRecipientRow_CodePageId = -1; +static gint hf_mapi_ReadRecipientRow_RecipientRow = -1; +static gint hf_mapi_ReadRecipientRow_RecipientType = -1; +static gint hf_mapi_ReadRecipientRow_RowId = -1; +static gint hf_mapi_ReadRecipientRow_ulReserved = -1; +static gint hf_mapi_ReadRecipients_repl_RecipientRows = -1; +static gint hf_mapi_ReadRecipients_repl_RowCount = -1; +static gint hf_mapi_ReadRecipients_req_RowId = -1; +static gint hf_mapi_ReadRecipients_req_ulReserved = -1; +static gint hf_mapi_ReadStream_repl_data = -1; +static gint hf_mapi_ReadStream_req_ByteCount = -1; +static gint hf_mapi_ReadStream_req_MaximumByteCount = -1; +static gint hf_mapi_ReceiveFolder_fid = -1; +static gint hf_mapi_ReceiveFolder_lpszMessageClass = -1; +static gint hf_mapi_ReceiveFolder_modiftime = -1; +static gint hf_mapi_ReceiveFolder_unknown = -1; static gint hf_mapi_RecipExchange_addr_type = -1; static gint hf_mapi_RecipExchange_organization_length = -1; -static gint hf_mapi_SPropValue_CTR_b = -1; -static gint hf_mapi_SPropValue_CTR_d = -1; -static gint hf_mapi_SPropValue_CTR_dbl = -1; -static gint hf_mapi_SPropValue_CTR_err = -1; -static gint hf_mapi_SPropValue_CTR_ft = -1; -static gint hf_mapi_SPropValue_CTR_i = -1; -static gint hf_mapi_SPropValue_CTR_l = -1; -static gint hf_mapi_SPropValue_CTR_lpguid = -1; -static gint hf_mapi_SPropValue_CTR_lpszA = -1; -static gint hf_mapi_SPropValue_CTR_lpszW = -1; -static gint hf_mapi_SPropValue_ulPropTag = -1; -static gint hf_mapi_SRow_ulRowFlags = -1; +static gint hf_mapi_RecipExchange_username = -1; +static gint hf_mapi_RecipientBlock_PropertyValue = -1; +static gint hf_mapi_RecipientBlock_Reserved = -1; +static gint hf_mapi_RecipientRow_DisplayName = -1; +static gint hf_mapi_RecipientRow_EmailAddress = -1; +static gint hf_mapi_RecipientRow_RecipientFlags = -1; +static gint hf_mapi_RecipientRow_SimpleDisplayName = -1; +static gint hf_mapi_RecipientRow_TransmittableDisplayName = -1; +static gint hf_mapi_RecipientRow_layout = -1; +static gint hf_mapi_RecipientRow_prop_count = -1; +static gint hf_mapi_RecipientRow_prop_values = -1; +static gint hf_mapi_RecipientRow_type = -1; +static gint hf_mapi_RegisterNotification_req_layout = -1; +static gint hf_mapi_RegisterNotification_req_notificationFlags = -1; +static gint hf_mapi_RegisterNotification_req_u = -1; +static gint hf_mapi_ReloadCachedInformation_repl_HasNamedProperties = -1; +static gint hf_mapi_ReloadCachedInformation_repl_NormalizedSubject = -1; +static gint hf_mapi_ReloadCachedInformation_repl_RecipientColumns = -1; +static gint hf_mapi_ReloadCachedInformation_repl_RecipientCount = -1; +static gint hf_mapi_ReloadCachedInformation_repl_RecipientRows = -1; +static gint hf_mapi_ReloadCachedInformation_repl_RowCount = -1; +static gint hf_mapi_ReloadCachedInformation_repl_SubjectPrefix = -1; +static gint hf_mapi_ReloadCachedInformation_req_Reserved = -1; +static gint hf_mapi_RemoveAllRecipients_req_ulReserved = -1; +static gint hf_mapi_ReplyOOF_Action_ReplyTemplateFID = -1; +static gint hf_mapi_ReplyOOF_Action_ReplyTemplateGUID = -1; +static gint hf_mapi_ReplyOOF_Action_ReplyTemplateMID = -1; +static gint hf_mapi_ResponseFlags_ResponseFlags_OOF = -1; +static gint hf_mapi_ResponseFlags_ResponseFlags_OwnerRight = -1; +static gint hf_mapi_ResponseFlags_ResponseFlags_Reserved = -1; +static gint hf_mapi_ResponseFlags_ResponseFlags_SendAsRight = -1; +static gint hf_mapi_ResponseHandleIndex = -1; +static gint hf_mapi_Restrict_repl_TableStatus = -1; +static gint hf_mapi_Restrict_req_handle_idx = -1; +static gint hf_mapi_Restrict_req_restrictions = -1; +static gint hf_mapi_RestrictionVariable_res = -1; +static gint hf_mapi_RgbInSize = -1; +static gint hf_mapi_RgbIn_RpcHeaderExtension = -1; +static gint hf_mapi_RgbIn_ropIn = -1; +static gint hf_mapi_RgbOutSize = -1; +static gint hf_mapi_RgbOut_RpcHeaderExtension = -1; +static gint hf_mapi_RgbOut_ropOut = -1; +static gint hf_mapi_RopBufferTooSmall_repl_SizeNeeded = -1; +static gint hf_mapi_RopInput_RopId = -1; +static gint hf_mapi_RopInput_u = -1; +static gint hf_mapi_RopOutput_RopId = -1; +static gint hf_mapi_RopOutput_u = -1; +static gint hf_mapi_RopReply_Abort = -1; +static gint hf_mapi_RopReply_AbortSubmit = -1; +static gint hf_mapi_RopReply_AddressTypes = -1; +static gint hf_mapi_RopReply_Advise = -1; +static gint hf_mapi_RopReply_CloneStream = -1; +static gint hf_mapi_RopReply_CollapseRow = -1; +static gint hf_mapi_RopReply_CommitStream = -1; +static gint hf_mapi_RopReply_CopyFolder = -1; +static gint hf_mapi_RopReply_CopyProperties = -1; +static gint hf_mapi_RopReply_CopyTo = -1; +static gint hf_mapi_RopReply_CopyToStream = -1; +static gint hf_mapi_RopReply_CreateAttach = -1; +static gint hf_mapi_RopReply_CreateBookmark = -1; +static gint hf_mapi_RopReply_CreateFolder = -1; +static gint hf_mapi_RopReply_CreateMessage = -1; +static gint hf_mapi_RopReply_DeleteAttach = -1; +static gint hf_mapi_RopReply_DeleteFolder = -1; +static gint hf_mapi_RopReply_DeleteMessages = -1; +static gint hf_mapi_RopReply_DeletePropertiesNoReplicate = -1; +static gint hf_mapi_RopReply_DeleteProps = -1; +static gint hf_mapi_RopReply_EmptyFolder = -1; +static gint hf_mapi_RopReply_ExpandRow = -1; +static gint hf_mapi_RopReply_FastTransferSourceGetBuffer = -1; +static gint hf_mapi_RopReply_FindRow = -1; +static gint hf_mapi_RopReply_FreeBookmark = -1; +static gint hf_mapi_RopReply_GetAttachmentTable = -1; +static gint hf_mapi_RopReply_GetCollapseState = -1; +static gint hf_mapi_RopReply_GetContentsTable = -1; +static gint hf_mapi_RopReply_GetHierarchyTable = -1; +static gint hf_mapi_RopReply_GetIDsFromNames = -1; +static gint hf_mapi_RopReply_GetLocalReplicaIds = -1; +static gint hf_mapi_RopReply_GetNamesFromIDs = -1; +static gint hf_mapi_RopReply_GetOwningServers = -1; +static gint hf_mapi_RopReply_GetPerUserGuid = -1; +static gint hf_mapi_RopReply_GetPerUserLongTermIds = -1; +static gint hf_mapi_RopReply_GetPermissionsTable = -1; +static gint hf_mapi_RopReply_GetPropList = -1; +static gint hf_mapi_RopReply_GetProps = -1; +static gint hf_mapi_RopReply_GetPropsAll = -1; +static gint hf_mapi_RopReply_GetReceiveFolder = -1; +static gint hf_mapi_RopReply_GetReceiveFolderTable = -1; +static gint hf_mapi_RopReply_GetRulesTable = -1; +static gint hf_mapi_RopReply_GetSearchCriteria = -1; +static gint hf_mapi_RopReply_GetStatus = -1; +static gint hf_mapi_RopReply_GetStoreState = -1; +static gint hf_mapi_RopReply_GetStreamSize = -1; +static gint hf_mapi_RopReply_GetTransportFolder = -1; +static gint hf_mapi_RopReply_GetValidAttachments = -1; +static gint hf_mapi_RopReply_HardDeleteMessages = -1; +static gint hf_mapi_RopReply_HardDeleteMessagesAndSubfolders = -1; +static gint hf_mapi_RopReply_IdFromLongTermId = -1; +static gint hf_mapi_RopReply_LockRegionStream = -1; +static gint hf_mapi_RopReply_Logon = -1; +static gint hf_mapi_RopReply_LongTermIdFromId = -1; +static gint hf_mapi_RopReply_ModifyPermissions = -1; +static gint hf_mapi_RopReply_ModifyRecipients = -1; +static gint hf_mapi_RopReply_ModifyRules = -1; +static gint hf_mapi_RopReply_MoveCopyMessages = -1; +static gint hf_mapi_RopReply_MoveFolder = -1; +static gint hf_mapi_RopReply_Notify = -1; +static gint hf_mapi_RopReply_OpenAttach = -1; +static gint hf_mapi_RopReply_OpenEmbeddedMessage = -1; +static gint hf_mapi_RopReply_OpenFolder = -1; +static gint hf_mapi_RopReply_OpenMessage = -1; +static gint hf_mapi_RopReply_OpenPublicFolderByName = -1; +static gint hf_mapi_RopReply_OpenStream = -1; +static gint hf_mapi_RopReply_OptionsData = -1; +static gint hf_mapi_RopReply_Pending = -1; +static gint hf_mapi_RopReply_Progress = -1; +static gint hf_mapi_RopReply_PublicFolderIsGhosted = -1; +static gint hf_mapi_RopReply_QueryColumnsAll = -1; +static gint hf_mapi_RopReply_QueryNamedProperties = -1; +static gint hf_mapi_RopReply_QueryPosition = -1; +static gint hf_mapi_RopReply_QueryRows = -1; +static gint hf_mapi_RopReply_ReadPerUserInformation = -1; +static gint hf_mapi_RopReply_ReadRecipients = -1; +static gint hf_mapi_RopReply_ReadStream = -1; +static gint hf_mapi_RopReply_Release = -1; +static gint hf_mapi_RopReply_ReloadCachedInformation = -1; +static gint hf_mapi_RopReply_RemoveAllRecipients = -1; +static gint hf_mapi_RopReply_ResetTable = -1; +static gint hf_mapi_RopReply_Restrict = -1; +static gint hf_mapi_RopReply_RopBufferTooSmall = -1; +static gint hf_mapi_RopReply_SaveChangesAttachment = -1; +static gint hf_mapi_RopReply_SaveChangesMessage = -1; +static gint hf_mapi_RopReply_SeekRow = -1; +static gint hf_mapi_RopReply_SeekRowApprox = -1; +static gint hf_mapi_RopReply_SeekRowBookmark = -1; +static gint hf_mapi_RopReply_SeekStream = -1; +static gint hf_mapi_RopReply_SetCollapseState = -1; +static gint hf_mapi_RopReply_SetColumns = -1; +static gint hf_mapi_RopReply_SetMessageReadFlag = -1; +static gint hf_mapi_RopReply_SetMessageStatus = -1; +static gint hf_mapi_RopReply_SetPropertiesNoReplicate = -1; +static gint hf_mapi_RopReply_SetProps = -1; +static gint hf_mapi_RopReply_SetReadFlags = -1; +static gint hf_mapi_RopReply_SetReceiveFolder = -1; +static gint hf_mapi_RopReply_SetSearchCriteria = -1; +static gint hf_mapi_RopReply_SetSpooler = -1; +static gint hf_mapi_RopReply_SetStreamSize = -1; +static gint hf_mapi_RopReply_SetSyncNotificationGuid = -1; +static gint hf_mapi_RopReply_SortTable = -1; +static gint hf_mapi_RopReply_SpoolerLockMessage = -1; +static gint hf_mapi_RopReply_SubmitMessage = -1; +static gint hf_mapi_RopReply_SyncConfigure = -1; +static gint hf_mapi_RopReply_SyncGetTransferState = -1; +static gint hf_mapi_RopReply_SyncImportDeletes = -1; +static gint hf_mapi_RopReply_SyncImportHierarchyChange = -1; +static gint hf_mapi_RopReply_SyncImportMessageChange = -1; +static gint hf_mapi_RopReply_SyncImportMessageMove = -1; +static gint hf_mapi_RopReply_SyncImportReadStateChanges = -1; +static gint hf_mapi_RopReply_SyncOpenCollector = -1; +static gint hf_mapi_RopReply_SyncUploadStateStreamBegin = -1; +static gint hf_mapi_RopReply_SyncUploadStateStreamContinue = -1; +static gint hf_mapi_RopReply_SyncUploadStateStreamEnd = -1; +static gint hf_mapi_RopReply_TransportNewMail = -1; +static gint hf_mapi_RopReply_TransportSend = -1; +static gint hf_mapi_RopReply_UnlockRegionStream = -1; +static gint hf_mapi_RopReply_UpdateDeferredActionMessages = -1; +static gint hf_mapi_RopReply_WriteAndCommitStream = -1; +static gint hf_mapi_RopReply_WriteStream = -1; +static gint hf_mapi_RopRequest_Abort = -1; +static gint hf_mapi_RopRequest_AbortSubmit = -1; +static gint hf_mapi_RopRequest_AddressTypes = -1; +static gint hf_mapi_RopRequest_Advise = -1; +static gint hf_mapi_RopRequest_CloneStream = -1; +static gint hf_mapi_RopRequest_CollapseRow = -1; +static gint hf_mapi_RopRequest_CommitStream = -1; +static gint hf_mapi_RopRequest_CopyFolder = -1; +static gint hf_mapi_RopRequest_CopyProperties = -1; +static gint hf_mapi_RopRequest_CopyTo = -1; +static gint hf_mapi_RopRequest_CopyToStream = -1; +static gint hf_mapi_RopRequest_CreateAttach = -1; +static gint hf_mapi_RopRequest_CreateBookmark = -1; +static gint hf_mapi_RopRequest_CreateFolder = -1; +static gint hf_mapi_RopRequest_CreateMessage = -1; +static gint hf_mapi_RopRequest_DeleteAttach = -1; +static gint hf_mapi_RopRequest_DeleteFolder = -1; +static gint hf_mapi_RopRequest_DeleteMessages = -1; +static gint hf_mapi_RopRequest_DeletePropertiesNoReplicate = -1; +static gint hf_mapi_RopRequest_DeleteProps = -1; +static gint hf_mapi_RopRequest_EmptyFolder = -1; +static gint hf_mapi_RopRequest_ExpandRow = -1; +static gint hf_mapi_RopRequest_FastTransferSourceGetBuffer = -1; +static gint hf_mapi_RopRequest_FindRow = -1; +static gint hf_mapi_RopRequest_FreeBookmark = -1; +static gint hf_mapi_RopRequest_GetAttachmentTable = -1; +static gint hf_mapi_RopRequest_GetCollapseState = -1; +static gint hf_mapi_RopRequest_GetContentsTable = -1; +static gint hf_mapi_RopRequest_GetHierarchyTable = -1; +static gint hf_mapi_RopRequest_GetIDsFromNames = -1; +static gint hf_mapi_RopRequest_GetLocalReplicaIds = -1; +static gint hf_mapi_RopRequest_GetMessageStatus = -1; +static gint hf_mapi_RopRequest_GetNamesFromIDs = -1; +static gint hf_mapi_RopRequest_GetOwningServers = -1; +static gint hf_mapi_RopRequest_GetPerUserGuid = -1; +static gint hf_mapi_RopRequest_GetPerUserLongTermIds = -1; +static gint hf_mapi_RopRequest_GetPermissionsTable = -1; +static gint hf_mapi_RopRequest_GetPropList = -1; +static gint hf_mapi_RopRequest_GetProps = -1; +static gint hf_mapi_RopRequest_GetPropsAll = -1; +static gint hf_mapi_RopRequest_GetReceiveFolder = -1; +static gint hf_mapi_RopRequest_GetReceiveFolderTable = -1; +static gint hf_mapi_RopRequest_GetRulesTable = -1; +static gint hf_mapi_RopRequest_GetSearchCriteria = -1; +static gint hf_mapi_RopRequest_GetStatus = -1; +static gint hf_mapi_RopRequest_GetStoreState = -1; +static gint hf_mapi_RopRequest_GetStreamSize = -1; +static gint hf_mapi_RopRequest_GetTransportFolder = -1; +static gint hf_mapi_RopRequest_GetValidAttachments = -1; +static gint hf_mapi_RopRequest_HardDeleteMessages = -1; +static gint hf_mapi_RopRequest_HardDeleteMessagesAndSubfolders = -1; +static gint hf_mapi_RopRequest_IdFromLongTermId = -1; +static gint hf_mapi_RopRequest_LockRegionStream = -1; +static gint hf_mapi_RopRequest_Logon = -1; +static gint hf_mapi_RopRequest_LongTermIdFromId = -1; +static gint hf_mapi_RopRequest_ModifyPermissions = -1; +static gint hf_mapi_RopRequest_ModifyRecipients = -1; +static gint hf_mapi_RopRequest_ModifyRules = -1; +static gint hf_mapi_RopRequest_MoveCopyMessages = -1; +static gint hf_mapi_RopRequest_MoveFolder = -1; +static gint hf_mapi_RopRequest_OpenAttach = -1; +static gint hf_mapi_RopRequest_OpenEmbeddedMessage = -1; +static gint hf_mapi_RopRequest_OpenFolder = -1; +static gint hf_mapi_RopRequest_OpenMessage = -1; +static gint hf_mapi_RopRequest_OpenPublicFolderByName = -1; +static gint hf_mapi_RopRequest_OpenStream = -1; +static gint hf_mapi_RopRequest_OptionsData = -1; +static gint hf_mapi_RopRequest_Progress = -1; +static gint hf_mapi_RopRequest_PublicFolderIsGhosted = -1; +static gint hf_mapi_RopRequest_QueryColumnsAll = -1; +static gint hf_mapi_RopRequest_QueryNamedProperties = -1; +static gint hf_mapi_RopRequest_QueryPosition = -1; +static gint hf_mapi_RopRequest_QueryRows = -1; +static gint hf_mapi_RopRequest_ReadPerUserInformation = -1; +static gint hf_mapi_RopRequest_ReadRecipients = -1; +static gint hf_mapi_RopRequest_ReadStream = -1; +static gint hf_mapi_RopRequest_Release = -1; +static gint hf_mapi_RopRequest_ReloadCachedInformation = -1; +static gint hf_mapi_RopRequest_RemoveAllRecipients = -1; +static gint hf_mapi_RopRequest_ResetTable = -1; +static gint hf_mapi_RopRequest_Restrict = -1; +static gint hf_mapi_RopRequest_SaveChangesAttachment = -1; +static gint hf_mapi_RopRequest_SaveChangesMessage = -1; +static gint hf_mapi_RopRequest_SeekRow = -1; +static gint hf_mapi_RopRequest_SeekRowApprox = -1; +static gint hf_mapi_RopRequest_SeekRowBookmark = -1; +static gint hf_mapi_RopRequest_SeekStream = -1; +static gint hf_mapi_RopRequest_SetCollapseState = -1; +static gint hf_mapi_RopRequest_SetColumns = -1; +static gint hf_mapi_RopRequest_SetMessageReadFlag = -1; +static gint hf_mapi_RopRequest_SetMessageStatus = -1; +static gint hf_mapi_RopRequest_SetPropertiesNoReplicate = -1; +static gint hf_mapi_RopRequest_SetProps = -1; +static gint hf_mapi_RopRequest_SetReadFlags = -1; +static gint hf_mapi_RopRequest_SetReceiveFolder = -1; +static gint hf_mapi_RopRequest_SetSearchCriteria = -1; +static gint hf_mapi_RopRequest_SetSpooler = -1; +static gint hf_mapi_RopRequest_SetStreamSize = -1; +static gint hf_mapi_RopRequest_SetSyncNotificationGuid = -1; +static gint hf_mapi_RopRequest_SortTable = -1; +static gint hf_mapi_RopRequest_SpoolerLockMessage = -1; +static gint hf_mapi_RopRequest_SubmitMessage = -1; +static gint hf_mapi_RopRequest_SyncConfigure = -1; +static gint hf_mapi_RopRequest_SyncGetTransferState = -1; +static gint hf_mapi_RopRequest_SyncImportDeletes = -1; +static gint hf_mapi_RopRequest_SyncImportHierarchyChange = -1; +static gint hf_mapi_RopRequest_SyncImportMessageChange = -1; +static gint hf_mapi_RopRequest_SyncImportMessageMove = -1; +static gint hf_mapi_RopRequest_SyncImportReadStateChanges = -1; +static gint hf_mapi_RopRequest_SyncOpenCollector = -1; +static gint hf_mapi_RopRequest_SyncUploadStateStreamBegin = -1; +static gint hf_mapi_RopRequest_SyncUploadStateStreamContinue = -1; +static gint hf_mapi_RopRequest_SyncUploadStateStreamEnd = -1; +static gint hf_mapi_RopRequest_TransportNewMail = -1; +static gint hf_mapi_RopRequest_TransportSend = -1; +static gint hf_mapi_RopRequest_UnlockRegionStream = -1; +static gint hf_mapi_RopRequest_UpdateDeferredActionMessages = -1; +static gint hf_mapi_RopRequest_WriteAndCommitStream = -1; +static gint hf_mapi_RopRequest_WriteStream = -1; +static gint hf_mapi_RpcExt2Flags_Chain = -1; +static gint hf_mapi_RpcExt2Flags_NoCompression = -1; +static gint hf_mapi_RpcExt2Flags_NoXorMagic = -1; +static gint hf_mapi_RuleAction_ActionBlock = -1; +static gint hf_mapi_RuleAction_count = -1; +static gint hf_mapi_RuleData_PropertyValues = -1; +static gint hf_mapi_RuleData_RuleDataFlags = -1; +static gint hf_mapi_RulesTableFlags_RulesTableFlags_Unicode = -1; +static gint hf_mapi_SBinary_short_cb = -1; +static gint hf_mapi_SBinary_short_lpb = -1; +static gint hf_mapi_SRestriction_and_res = -1; +static gint hf_mapi_SRestriction_and_rt = -1; +static gint hf_mapi_SRestriction_comment_res = -1; +static gint hf_mapi_SRestriction_comment_rt = -1; +static gint hf_mapi_SRestriction_or_res = -1; +static gint hf_mapi_SRestriction_or_rt = -1; +static gint hf_mapi_SRestriction_sub_res = -1; +static gint hf_mapi_SRestriction_sub_rt = -1; +static gint hf_mapi_SSortOrderSet_aSort = -1; +static gint hf_mapi_SSortOrderSet_cCategories = -1; +static gint hf_mapi_SSortOrderSet_cExpanded = -1; +static gint hf_mapi_SSortOrderSet_cSorts = -1; +static gint hf_mapi_SSortOrder_ulOrder = -1; +static gint hf_mapi_SSortOrder_ulPropTag = -1; +static gint hf_mapi_SaveChangesAttachment_req_SaveFlags = -1; +static gint hf_mapi_SaveChangesMessage_repl_MessageId = -1; +static gint hf_mapi_SaveChangesMessage_repl_handle_idx = -1; +static gint hf_mapi_SaveChangesMessage_req_SaveFlags = -1; +static gint hf_mapi_SearchCompleteNotification_FID = -1; +static gint hf_mapi_SearchFlags_BACKGROUND_SEARCH = -1; +static gint hf_mapi_SearchFlags_CONTENT_INDEXED_SEARCH = -1; +static gint hf_mapi_SearchFlags_FOREGROUND_SEARCH = -1; +static gint hf_mapi_SearchFlags_NON_CONTENT_INDEXED_SEARCH = -1; +static gint hf_mapi_SearchFlags_RECURSIVE_SEARCH = -1; +static gint hf_mapi_SearchFlags_RESTART_SEARCH = -1; +static gint hf_mapi_SearchFlags_SHALLOW_SEARCH = -1; +static gint hf_mapi_SearchFlags_STATIC_SEARCH = -1; +static gint hf_mapi_SearchFlags_STOP_SEARCH = -1; +static gint hf_mapi_SearchMessageCreatedNotification_FID = -1; +static gint hf_mapi_SearchMessageCreatedNotification_MID = -1; +static gint hf_mapi_SearchMessageCreatedNotification_SearchFID = -1; +static gint hf_mapi_SearchMessageCreatedNotification_TagCount = -1; +static gint hf_mapi_SearchMessageCreatedNotification_Tags = -1; +static gint hf_mapi_SearchMessageModifiedNotification_FID = -1; +static gint hf_mapi_SearchMessageModifiedNotification_MID = -1; +static gint hf_mapi_SearchMessageModifiedNotification_TagCount = -1; +static gint hf_mapi_SearchMessageModifiedNotification_Tags = -1; +static gint hf_mapi_SearchMessageRemovedNotification_FID = -1; +static gint hf_mapi_SearchMessageRemovedNotification_MID = -1; +static gint hf_mapi_SearchMessageRemovedNotification_SearchFID = -1; +static gint hf_mapi_SeekRowApprox_req_ulDenominator = -1; +static gint hf_mapi_SeekRowApprox_req_ulNumerator = -1; +static gint hf_mapi_SeekRowBookmark_repl_HasSoughtLess = -1; +static gint hf_mapi_SeekRowBookmark_repl_RowNoLongerVisible = -1; +static gint hf_mapi_SeekRowBookmark_repl_RowsSought = -1; +static gint hf_mapi_SeekRowBookmark_req_Bookmark = -1; +static gint hf_mapi_SeekRowBookmark_req_RowCount = -1; +static gint hf_mapi_SeekRowBookmark_req_WantRowMovedCount = -1; +static gint hf_mapi_SeekRow_repl_HasSoughtLess = -1; +static gint hf_mapi_SeekRow_repl_RowsSought = -1; +static gint hf_mapi_SeekRow_req_WantRowMovedCount = -1; +static gint hf_mapi_SeekRow_req_offset = -1; +static gint hf_mapi_SeekRow_req_origin = -1; +static gint hf_mapi_SeekStream_repl_NewPosition = -1; +static gint hf_mapi_SeekStream_req_Offset = -1; +static gint hf_mapi_SeekStream_req_Origin = -1; +static gint hf_mapi_SendOptions_SendOptions_ForUpload = -1; +static gint hf_mapi_SendOptions_SendOptions_ForceUnicode = -1; +static gint hf_mapi_SendOptions_SendOptions_Partial = -1; +static gint hf_mapi_SendOptions_SendOptions_RecoverMode = -1; +static gint hf_mapi_SendOptions_SendOptions_Unicode = -1; +static gint hf_mapi_SetCollapseState_repl_bookmark = -1; +static gint hf_mapi_SetCollapseState_req_CollapseState = -1; +static gint hf_mapi_SetColumns_repl_TableStatus = -1; +static gint hf_mapi_SetColumns_req_SetColumnsFlags = -1; +static gint hf_mapi_SetColumns_req_prop_count = -1; +static gint hf_mapi_SetColumns_req_properties = -1; +static gint hf_mapi_SetMessageReadFlag_ClientData_ClientData = -1; +static gint hf_mapi_SetMessageReadFlag_LogonId_LogonId = -1; +static gint hf_mapi_SetMessageReadFlag_repl_ClientData = -1; +static gint hf_mapi_SetMessageReadFlag_repl_LogonId = -1; +static gint hf_mapi_SetMessageReadFlag_repl_ReadStatusChanged = -1; +static gint hf_mapi_SetMessageReadFlag_req_ReadFlags = -1; +static gint hf_mapi_SetMessageReadFlag_req_clientdata = -1; +static gint hf_mapi_SetMessageStatus_repl_ulOldStatus = -1; +static gint hf_mapi_SetMessageStatus_req_msgid = -1; +static gint hf_mapi_SetMessageStatus_req_ulNewStatus = -1; +static gint hf_mapi_SetMessageStatus_req_ulNewStatusMask = -1; +static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblem = -1; +static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblemCount = -1; +static gint hf_mapi_SetPropertiesNoReplicate_req_values = -1; +static gint hf_mapi_SetProps_repl_PropertyProblem = -1; +static gint hf_mapi_SetProps_repl_PropertyProblemCount = -1; +static gint hf_mapi_SetProps_req_values = -1; +static gint hf_mapi_SetReadFlags_repl_PartialCompletion = -1; +static gint hf_mapi_SetReadFlags_req_MessageIdCount = -1; +static gint hf_mapi_SetReadFlags_req_MessageIds = -1; +static gint hf_mapi_SetReadFlags_req_ReadFlags = -1; +static gint hf_mapi_SetReadFlags_req_WantAsynchronous = -1; +static gint hf_mapi_SetReceiveFolder_req_fid = -1; +static gint hf_mapi_SetReceiveFolder_req_lpszMessageClass = -1; +static gint hf_mapi_SetSearchCriteria_req_FolderIdCount = -1; +static gint hf_mapi_SetSearchCriteria_req_FolderIds = -1; +static gint hf_mapi_SetSearchCriteria_req_SearchFlags = -1; +static gint hf_mapi_SetSearchCriteria_req_res = -1; +static gint hf_mapi_SetStreamSize_req_SizeStream = -1; +static gint hf_mapi_SetSyncNotificationGuid_req_NotificationGuid = -1; +static gint hf_mapi_ShortArray_r_cValues = -1; +static gint hf_mapi_ShortArray_r_lpi = -1; +static gint hf_mapi_SortTable_repl_TableStatus = -1; +static gint hf_mapi_SortTable_req_SortTableFlags = -1; +static gint hf_mapi_SortTable_req_lpSortCriteria = -1; +static gint hf_mapi_SpoolerLockMessage_req_LockState = -1; +static gint hf_mapi_SpoolerLockMessage_req_MessageId = -1; +static gint hf_mapi_StoreState_STORE_HAS_SEARCHES = -1; +static gint hf_mapi_String_lpszA = -1; +static gint hf_mapi_String_lpszW = -1; +static gint hf_mapi_String_lpszW_reduced = -1; +static gint hf_mapi_SubmitMessage_req_SubmitFlags = -1; +static gint hf_mapi_SyncConfigure_req_PropertyTags = -1; +static gint hf_mapi_SyncConfigure_req_RestrictionData = -1; +static gint hf_mapi_SyncConfigure_req_SendOptions = -1; +static gint hf_mapi_SyncConfigure_req_SynchronizationExtraFlags = -1; +static gint hf_mapi_SyncConfigure_req_SynchronizationFlag = -1; +static gint hf_mapi_SyncConfigure_req_SynchronizationType = -1; +static gint hf_mapi_SyncImportDeletes_req_IsHierarchy = -1; +static gint hf_mapi_SyncImportDeletes_req_PropertyValues = -1; +static gint hf_mapi_SyncImportHierarchyChange_repl_FolderId = -1; +static gint hf_mapi_SyncImportHierarchyChange_req_HierarchyValues = -1; +static gint hf_mapi_SyncImportHierarchyChange_req_PropertyValues = -1; +static gint hf_mapi_SyncImportMessageChange_repl_MessageId = -1; +static gint hf_mapi_SyncImportMessageChange_req_ImportFlag = -1; +static gint hf_mapi_SyncImportMessageChange_req_PropertyValues = -1; +static gint hf_mapi_SyncImportMessageMove_repl_MessageId = -1; +static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberSize = -1; +static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberValue = -1; +static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdSize = -1; +static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdValue = -1; +static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListSize = -1; +static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListValue = -1; +static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdSize = -1; +static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdValue = -1; +static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdSize = -1; +static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdValue = -1; +static gint hf_mapi_SyncImportReadStateChanges_req_MessageStates = -1; +static gint hf_mapi_SyncOpenCollector_req_IsContentsCollector = -1; +static gint hf_mapi_SyncUploadStateStreamBegin_req_StateProperty = -1; +static gint hf_mapi_SyncUploadStateStreamBegin_req_TransferBufferSize = -1; +static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataSize = -1; +static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataValue = -1; +static gint hf_mapi_SynchronizationExtraFlags_Cn = -1; +static gint hf_mapi_SynchronizationExtraFlags_Eid = -1; +static gint hf_mapi_SynchronizationExtraFlags_MessageSize = -1; +static gint hf_mapi_SynchronizationExtraFlags_OrderByDeliveryTime = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_BestBody = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_FAI = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoDeletions = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoSoftDeletions = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Normal = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Progress = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_ReadState = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Reserved = -1; +static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Unicode = -1; +static gint hf_mapi_TableFlags_TableFlags_DeferredErrors = -1; +static gint hf_mapi_TableFlags_TableFlags_Depth = -1; +static gint hf_mapi_TableFlags_TableFlags_NoNotifications = -1; +static gint hf_mapi_TableFlags_TableFlags_SoftDeletes = -1; +static gint hf_mapi_TableFlags_TableFlags_SuppressNotifications = -1; +static gint hf_mapi_TableFlags_TableFlags_UseUnicode = -1; +static gint hf_mapi_TransportNewMail_req_FolderId = -1; +static gint hf_mapi_TransportNewMail_req_MessageClass = -1; +static gint hf_mapi_TransportNewMail_req_MessageFlags = -1; +static gint hf_mapi_TransportNewMail_req_MessageId = -1; +static gint hf_mapi_TransportSend_lpProps_lpProps = -1; +static gint hf_mapi_TransportSend_repl_NoPropertiesReturned = -1; +static gint hf_mapi_TransportSend_repl_properties = -1; +static gint hf_mapi_TypedString_String = -1; +static gint hf_mapi_TypedString_StringType = -1; +static gint hf_mapi_UnlockRegionStream_req_LockFlags = -1; +static gint hf_mapi_UnlockRegionStream_req_RegionOffset = -1; +static gint hf_mapi_UnlockRegionStream_req_RegionSize = -1; +static gint hf_mapi_UpdateDeferredActionMessages_req_ClientEntryId = -1; +static gint hf_mapi_UpdateDeferredActionMessages_req_ServerEntryId = -1; +static gint hf_mapi_WriteAndCommitStream_repl_WrittenSize = -1; +static gint hf_mapi_WriteAndCommitStream_req_data = -1; +static gint hf_mapi_WriteStream_repl_WrittenSize = -1; +static gint hf_mapi_WriteStream_req_data = -1; static gint hf_mapi_decrypted_data = -1; -static gint hf_mapi_handle = -1; -static gint hf_mapi_input_locale_language = -1; -static gint hf_mapi_input_locale_method = -1; -static gint hf_mapi_mapi_request_mapi_req = -1; -static gint hf_mapi_mapi_response_mapi_repl = -1; +static gint hf_mapi_fuzzyLevel_FL_IGNORECASE = -1; +static gint hf_mapi_fuzzyLevel_FL_IGNORENONSPACE = -1; +static gint hf_mapi_fuzzyLevel_FL_LOOSE = -1; +static gint hf_mapi_fuzzyLevel_FL_PREFIX = -1; +static gint hf_mapi_fuzzyLevel_FL_SUBSTRING = -1; +static gint hf_mapi_hyperbool_ID = -1; +static gint hf_mapi_mapi_EcDoAsyncConnectEx_cxh = -1; +static gint hf_mapi_mapi_EcDoAsyncConnectEx_pacxh = -1; +static gint hf_mapi_mapi_EcDoAsyncConnect_cxh = -1; +static gint hf_mapi_mapi_EcDoAsyncConnect_pacxh = -1; +static gint hf_mapi_mapi_EcDoAsyncWait_cxh = -1; +static gint hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut = -1; +static gint hf_mapi_mapi_EcDoAsyncWait_ulFlagsIn = -1; +static gint hf_mapi_mapi_EcDoConnectEx_cbAuxIn = -1; +static gint hf_mapi_mapi_EcDoConnectEx_cbLimit = -1; +static gint hf_mapi_mapi_EcDoConnectEx_handle = -1; +static gint hf_mapi_mapi_EcDoConnectEx_pcRetry = -1; +static gint hf_mapi_mapi_EcDoConnectEx_pcbAuxOut = -1; +static gint hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax = -1; +static gint hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay = -1; +static gint hf_mapi_mapi_EcDoConnectEx_picxr = -1; +static gint hf_mapi_mapi_EcDoConnectEx_pulTimeStamp = -1; +static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxIn = -1; +static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxOut = -1; +static gint hf_mapi_mapi_EcDoConnectEx_rgwBestVersion = -1; +static gint hf_mapi_mapi_EcDoConnectEx_rgwClientVersion = -1; +static gint hf_mapi_mapi_EcDoConnectEx_rgwServerVersion = -1; +static gint hf_mapi_mapi_EcDoConnectEx_szDNPrefix = -1; +static gint hf_mapi_mapi_EcDoConnectEx_szDisplayName = -1; +static gint hf_mapi_mapi_EcDoConnectEx_szUserDN = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulConMod = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulCpid = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulFlags = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulIcxrLink = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulLcidSort = -1; +static gint hf_mapi_mapi_EcDoConnectEx_ulLcidString = -1; +static gint hf_mapi_mapi_EcDoConnectEx_usFCanConvertCodePages = -1; +static gint hf_mapi_mapi_EcDoConnect_cbLimit = -1; +static gint hf_mapi_mapi_EcDoConnect_hBinding = -1; +static gint hf_mapi_mapi_EcDoConnect_pcRetry = -1; +static gint hf_mapi_mapi_EcDoConnect_pcmsPollsMax = -1; +static gint hf_mapi_mapi_EcDoConnect_pcmsRetryDelay = -1; +static gint hf_mapi_mapi_EcDoConnect_picxr = -1; +static gint hf_mapi_mapi_EcDoConnect_pullTimeStamp = -1; +static gint hf_mapi_mapi_EcDoConnect_rgwBestVersion = -1; +static gint hf_mapi_mapi_EcDoConnect_rgwClientVersion = -1; +static gint hf_mapi_mapi_EcDoConnect_rgwServerVersion = -1; +static gint hf_mapi_mapi_EcDoConnect_szDNPrefix = -1; +static gint hf_mapi_mapi_EcDoConnect_szDisplayName = -1; +static gint hf_mapi_mapi_EcDoConnect_szUserDN = -1; +static gint hf_mapi_mapi_EcDoConnect_ulConMod = -1; +static gint hf_mapi_mapi_EcDoConnect_ulCpid = -1; +static gint hf_mapi_mapi_EcDoConnect_ulFlags = -1; +static gint hf_mapi_mapi_EcDoConnect_ulIcxrLink = -1; +static gint hf_mapi_mapi_EcDoConnect_ulLcidSort = -1; +static gint hf_mapi_mapi_EcDoConnect_ulLcidString = -1; +static gint hf_mapi_mapi_EcDoConnect_usFCanConvertCodePages = -1; +static gint hf_mapi_mapi_EcDoDisconnect_pcxh = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_cbAuxIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_cbIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_pcbOut = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_pcxh = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_pulFlags = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_pulTransTime = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_rgbIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt2_rgbOut = -1; +static gint hf_mapi_mapi_EcDoRpcExt_cbAuxIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt_cbIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt_pcbOut = -1; +static gint hf_mapi_mapi_EcDoRpcExt_pcxh = -1; +static gint hf_mapi_mapi_EcDoRpcExt_pulFlags = -1; +static gint hf_mapi_mapi_EcDoRpcExt_pulTransTime = -1; +static gint hf_mapi_mapi_EcDoRpcExt_rgbAuxIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt_rgbIn = -1; +static gint hf_mapi_mapi_EcDoRpcExt_rgbOut = -1; +static gint hf_mapi_mapi_EcDoRpc_handle = -1; +static gint hf_mapi_mapi_EcDoRpc_length = -1; +static gint hf_mapi_mapi_EcDoRpc_mapi_request = -1; +static gint hf_mapi_mapi_EcDoRpc_mapi_response = -1; +static gint hf_mapi_mapi_EcDoRpc_max_data = -1; +static gint hf_mapi_mapi_EcDoRpc_offset = -1; +static gint hf_mapi_mapi_EcDoRpc_size = -1; +static gint hf_mapi_mapi_EcGetMoreRpc_pcxh = -1; +static gint hf_mapi_mapi_EcGetMoreRpc_pusLength = -1; +static gint hf_mapi_mapi_EcGetMoreRpc_rgb = -1; +static gint hf_mapi_mapi_EcGetMoreRpc_usSize = -1; +static gint hf_mapi_mapi_EcRGetDCName_handle = -1; +static gint hf_mapi_mapi_EcRGetDCName_rgchDomainController = -1; +static gint hf_mapi_mapi_EcRGetDCName_szDomainName = -1; +static gint hf_mapi_mapi_EcRNetGetDCName_rgchDomainController = -1; +static gint hf_mapi_mapi_EcRNetGetDCName_szDomainName = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_cbCallbackAddress = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_cbContext = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_grbitMapiAdviseBits = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_hNotification = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_handle = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_iRpc = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress = -1; +static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbContext = -1; +static gint hf_mapi_mapi_EcRUnregisterPushNotification_hNotification = -1; +static gint hf_mapi_mapi_EcRUnregisterPushNotification_handle = -1; +static gint hf_mapi_mapi_EcRUnregisterPushNotification_iRpc = -1; +static gint hf_mapi_mapi_LPSTR_lppszA = -1; +static gint hf_mapi_mapi_LPWSTR_lppszW = -1; +static gint hf_mapi_mapi_MV_LONG_STRUCT_cValues = -1; +static gint hf_mapi_mapi_MV_LONG_STRUCT_lpl = -1; +static gint hf_mapi_mapi_PermissionsData_ModifyCount = -1; +static gint hf_mapi_mapi_PermissionsData_ModifyFlags = -1; +static gint hf_mapi_mapi_PermissionsData_PermissionsData = -1; +static gint hf_mapi_mapi_SAndRestriction_cRes = -1; +static gint hf_mapi_mapi_SAndRestriction_res = -1; +static gint hf_mapi_mapi_SBinaryArray_bin = -1; +static gint hf_mapi_mapi_SBinaryArray_cValues = -1; +static gint hf_mapi_mapi_SBitmaskRestriction_relMBR = -1; +static gint hf_mapi_mapi_SBitmaskRestriction_ulMask = -1; +static gint hf_mapi_mapi_SBitmaskRestriction_ulPropTag = -1; +static gint hf_mapi_mapi_SCommentRestriction_Restriction = -1; +static gint hf_mapi_mapi_SCommentRestriction_RestrictionPresent = -1; +static gint hf_mapi_mapi_SCommentRestriction_TaggedValues = -1; +static gint hf_mapi_mapi_SCommentRestriction_TaggedValuesCount = -1; +static gint hf_mapi_mapi_SCompareProps_relop = -1; +static gint hf_mapi_mapi_SCompareProps_ulPropTag1 = -1; +static gint hf_mapi_mapi_SCompareProps_ulPropTag2 = -1; +static gint hf_mapi_mapi_SContentRestriction_fuzzy = -1; +static gint hf_mapi_mapi_SContentRestriction_lpProp = -1; +static gint hf_mapi_mapi_SContentRestriction_ulPropTag = -1; +static gint hf_mapi_mapi_SExistRestriction_ulPropTag = -1; +static gint hf_mapi_mapi_SGuidArray_cValues = -1; +static gint hf_mapi_mapi_SGuidArray_lpguid = -1; +static gint hf_mapi_mapi_SLPSTRArray_cValues = -1; +static gint hf_mapi_mapi_SLPSTRArray_strings = -1; +static gint hf_mapi_mapi_SNotRestriction_res = -1; +static gint hf_mapi_mapi_SOrRestriction_cRes = -1; +static gint hf_mapi_mapi_SOrRestriction_res = -1; +static gint hf_mapi_mapi_SPLSTRArrayW_cValues = -1; +static gint hf_mapi_mapi_SPLSTRArrayW_strings = -1; +static gint hf_mapi_mapi_SPropTagArray_aulPropTag = -1; +static gint hf_mapi_mapi_SPropTagArray_cValues = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVbin = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVft = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVguid = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVi = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVl = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVszA = -1; +static gint hf_mapi_mapi_SPropValue_CTR_MVszW = -1; +static gint hf_mapi_mapi_SPropValue_CTR_Restrictions = -1; +static gint hf_mapi_mapi_SPropValue_CTR_RuleAction = -1; +static gint hf_mapi_mapi_SPropValue_CTR_b = -1; +static gint hf_mapi_mapi_SPropValue_CTR_bin = -1; +static gint hf_mapi_mapi_SPropValue_CTR_d = -1; +static gint hf_mapi_mapi_SPropValue_CTR_dbl = -1; +static gint hf_mapi_mapi_SPropValue_CTR_err = -1; +static gint hf_mapi_mapi_SPropValue_CTR_ft = -1; +static gint hf_mapi_mapi_SPropValue_CTR_i = -1; +static gint hf_mapi_mapi_SPropValue_CTR_l = -1; +static gint hf_mapi_mapi_SPropValue_CTR_lpguid = -1; +static gint hf_mapi_mapi_SPropValue_CTR_lpszA = -1; +static gint hf_mapi_mapi_SPropValue_CTR_lpszW = -1; +static gint hf_mapi_mapi_SPropValue_CTR_null = -1; +static gint hf_mapi_mapi_SPropValue_CTR_object = -1; +static gint hf_mapi_mapi_SPropValue_CTR_svreid = -1; +static gint hf_mapi_mapi_SPropValue_array_cValues = -1; +static gint hf_mapi_mapi_SPropValue_array_lpProps = -1; +static gint hf_mapi_mapi_SPropValue_array_wrap_wrap = -1; +static gint hf_mapi_mapi_SPropValue_ulPropTag = -1; +static gint hf_mapi_mapi_SPropValue_value = -1; +static gint hf_mapi_mapi_SPropValue_wrap_wrap = -1; +static gint hf_mapi_mapi_SPropertyRestriction_lpProp = -1; +static gint hf_mapi_mapi_SPropertyRestriction_relop = -1; +static gint hf_mapi_mapi_SPropertyRestriction_ulPropTag = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resAnd = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resBitmask = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resComment = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resCompareProps = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resContent = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resExist = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resNot = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resOr = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resProperty = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resSize = -1; +static gint hf_mapi_mapi_SRestriction_CTR_resSub = -1; +static gint hf_mapi_mapi_SRestriction_res = -1; +static gint hf_mapi_mapi_SRestriction_rt = -1; +static gint hf_mapi_mapi_SRestriction_wrap_wrap = -1; +static gint hf_mapi_mapi_SSizeRestriction_relop = -1; +static gint hf_mapi_mapi_SSizeRestriction_size = -1; +static gint hf_mapi_mapi_SSizeRestriction_ulPropTag = -1; +static gint hf_mapi_mapi_SSubRestriction_res = -1; +static gint hf_mapi_mapi_SSubRestriction_ulSubObject = -1; +static gint hf_mapi_mapi_name_Name = -1; +static gint hf_mapi_mapi_name_NameSize = -1; +static gint hf_mapi_mapi_request_handles = -1; +static gint hf_mapi_mapi_request_length = -1; +static gint hf_mapi_mapi_request_mapi_len = -1; +static gint hf_mapi_mapi_request_rpcRequest = -1; +static gint hf_mapi_mapi_response_handles = -1; +static gint hf_mapi_mapi_response_length = -1; +static gint hf_mapi_mapi_response_mapi_len = -1; +static gint hf_mapi_mapi_response_rpcResponse = -1; static gint hf_mapi_opnum = -1; -static gint hf_mapi_pdu_len = -1; -static gint hf_mapi_property_types = -1; -static gint hf_mapi_recipient_displayname_7bit_lpszA = -1; -static gint hf_mapi_recipient_type = -1; +static gint hf_mapi_recipient_DisplayName_lpszA = -1; +static gint hf_mapi_recipient_DisplayName_lpszW = -1; +static gint hf_mapi_recipient_EmailAddress_lpszA = -1; +static gint hf_mapi_recipient_EmailAddress_lpszW = -1; +static gint hf_mapi_recipient_SimpleDisplayName_lpszA = -1; +static gint hf_mapi_recipient_SimpleDisplayName_lpszW = -1; +static gint hf_mapi_recipient_TransmittableDisplayName_lpszA = -1; +static gint hf_mapi_recipient_TransmittableDisplayName_lpszW = -1; static gint hf_mapi_recipient_type_EXCHANGE = -1; static gint hf_mapi_recipient_type_SMTP = -1; -static gint hf_mapi_recipients_headers_bitmask = -1; -static gint hf_mapi_recipients_headers_layout = -1; -static gint hf_mapi_recipients_headers_prop_count = -1; -static gint hf_mapi_recipients_headers_prop_values = -1; -static gint hf_mapi_recipients_headers_username = -1; -static gint hf_mapi_ulEventType_fnevCriticalError = -1; -static gint hf_mapi_ulEventType_fnevExtended = -1; -static gint hf_mapi_ulEventType_fnevNewMail = -1; -static gint hf_mapi_ulEventType_fnevObjectCopied = -1; -static gint hf_mapi_ulEventType_fnevObjectCreated = -1; -static gint hf_mapi_ulEventType_fnevObjectDeleted = -1; -static gint hf_mapi_ulEventType_fnevObjectModified = -1; -static gint hf_mapi_ulEventType_fnevObjectMoved = -1; -static gint hf_mapi_ulEventType_fnevReservedForMapi = -1; -static gint hf_mapi_ulEventType_fnevSearchComplete = -1; -static gint hf_mapi_ulEventType_fnevStatusObjectModified = -1; -static gint hf_mapi_ulEventType_fnevTableModified = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_DELMARKED = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIDDEN = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIGHLIGHTED = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DELETE = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD = -1; +static gint hf_mapi_ulMessageStatus_MSGSTATUS_TAGGED = -1; +static gint hf_mapi_werror = -1; static gint proto_dcerpc_mapi = -1; /* Version information */ @@ -177,6 +1920,80 @@ static e_guid_t uuid_dcerpc_mapi = { }; static guint16 ver_dcerpc_mapi = 0; +const value_string mapi_MAPISTATUS_vals[] = { + { MAPI_E_SUCCESS, "MAPI_E_SUCCESS" }, + { MAPI_E_NO_SUPPORT, "MAPI_E_NO_SUPPORT" }, + { MAPI_E_BAD_CHARWIDTH, "MAPI_E_BAD_CHARWIDTH" }, + { MAPI_E_STRING_TOO_LONG, "MAPI_E_STRING_TOO_LONG" }, + { MAPI_E_UNKNOWN_FLAGS, "MAPI_E_UNKNOWN_FLAGS" }, + { MAPI_E_INVALID_ENTRYID, "MAPI_E_INVALID_ENTRYID" }, + { MAPI_E_INVALID_OBJECT, "MAPI_E_INVALID_OBJECT" }, + { MAPI_E_OBJECT_CHANGED, "MAPI_E_OBJECT_CHANGED" }, + { MAPI_E_OBJECT_DELETED, "MAPI_E_OBJECT_DELETED" }, + { MAPI_E_BUSY, "MAPI_E_BUSY" }, + { MAPI_E_NOT_ENOUGH_DISK, "MAPI_E_NOT_ENOUGH_DISK" }, + { MAPI_E_NOT_ENOUGH_RESOURCES, "MAPI_E_NOT_ENOUGH_RESOURCES" }, + { MAPI_E_NOT_FOUND, "MAPI_E_NOT_FOUND" }, + { MAPI_E_VERSION, "MAPI_E_VERSION" }, + { MAPI_E_LOGON_FAILED, "MAPI_E_LOGON_FAILED" }, + { MAPI_E_SESSION_LIMIT, "MAPI_E_SESSION_LIMIT" }, + { MAPI_E_USER_CANCEL, "MAPI_E_USER_CANCEL" }, + { MAPI_E_UNABLE_TO_ABORT, "MAPI_E_UNABLE_TO_ABORT" }, + { MAPI_E_NETWORK_ERROR, "MAPI_E_NETWORK_ERROR" }, + { MAPI_E_DISK_ERROR, "MAPI_E_DISK_ERROR" }, + { MAPI_E_TOO_COMPLEX, "MAPI_E_TOO_COMPLEX" }, + { MAPI_E_BAD_COLUMN, "MAPI_E_BAD_COLUMN" }, + { MAPI_E_EXTENDED_ERROR, "MAPI_E_EXTENDED_ERROR" }, + { MAPI_E_COMPUTED, "MAPI_E_COMPUTED" }, + { MAPI_E_CORRUPT_DATA, "MAPI_E_CORRUPT_DATA" }, + { MAPI_E_UNCONFIGURED, "MAPI_E_UNCONFIGURED" }, + { MAPI_E_FAILONEPROVIDER, "MAPI_E_FAILONEPROVIDER" }, + { MAPI_E_UNKNOWN_CPID, "MAPI_E_UNKNOWN_CPID" }, + { MAPI_E_UNKNOWN_LCID, "MAPI_E_UNKNOWN_LCID" }, + { MAPI_E_PASSWORD_CHANGE_REQUIRED, "MAPI_E_PASSWORD_CHANGE_REQUIRED" }, + { MAPI_E_PASSWORD_EXPIRED, "MAPI_E_PASSWORD_EXPIRED" }, + { MAPI_E_INVALID_WORKSTATION_ACCOUNT, "MAPI_E_INVALID_WORKSTATION_ACCOUNT" }, + { MAPI_E_INVALID_ACCESS_TIME, "MAPI_E_INVALID_ACCESS_TIME" }, + { MAPI_E_ACCOUNT_DISABLED, "MAPI_E_ACCOUNT_DISABLED" }, + { MAPI_E_END_OF_SESSION, "MAPI_E_END_OF_SESSION" }, + { MAPI_E_UNKNOWN_ENTRYID, "MAPI_E_UNKNOWN_ENTRYID" }, + { MAPI_E_MISSING_REQUIRED_COLUMN, "MAPI_E_MISSING_REQUIRED_COLUMN" }, + { MAPI_W_NO_SERVICE, "MAPI_W_NO_SERVICE" }, + { MAPI_E_BAD_VALUE, "MAPI_E_BAD_VALUE" }, + { MAPI_E_INVALID_TYPE, "MAPI_E_INVALID_TYPE" }, + { MAPI_E_TYPE_NO_SUPPORT, "MAPI_E_TYPE_NO_SUPPORT" }, + { MAPI_E_UNEXPECTED_TYPE, "MAPI_E_UNEXPECTED_TYPE" }, + { MAPI_E_TOO_BIG, "MAPI_E_TOO_BIG" }, + { MAPI_E_DECLINE_COPY, "MAPI_E_DECLINE_COPY" }, + { MAPI_E_UNEXPECTED_ID, "MAPI_E_UNEXPECTED_ID" }, + { MAPI_W_ERRORS_RETURNED, "MAPI_W_ERRORS_RETURNED" }, + { MAPI_E_UNABLE_TO_COMPLETE, "MAPI_E_UNABLE_TO_COMPLETE" }, + { MAPI_E_TIMEOUT, "MAPI_E_TIMEOUT" }, + { MAPI_E_TABLE_EMPTY, "MAPI_E_TABLE_EMPTY" }, + { MAPI_E_TABLE_TOO_BIG, "MAPI_E_TABLE_TOO_BIG" }, + { MAPI_E_INVALID_BOOKMARK, "MAPI_E_INVALID_BOOKMARK" }, + { MAPI_W_POSITION_CHANGED, "MAPI_W_POSITION_CHANGED" }, + { MAPI_W_APPROX_COUNT, "MAPI_W_APPROX_COUNT" }, + { MAPI_E_WAIT, "MAPI_E_WAIT" }, + { MAPI_E_CANCEL, "MAPI_E_CANCEL" }, + { MAPI_E_NOT_ME, "MAPI_E_NOT_ME" }, + { MAPI_W_CANCEL_MESSAGE, "MAPI_W_CANCEL_MESSAGE" }, + { MAPI_E_CORRUPT_STORE, "MAPI_E_CORRUPT_STORE" }, + { MAPI_E_NOT_IN_QUEUE, "MAPI_E_NOT_IN_QUEUE" }, + { MAPI_E_NO_SUPPRESS, "MAPI_E_NO_SUPPRESS" }, + { MAPI_E_COLLISION, "MAPI_E_COLLISION" }, + { MAPI_E_NOT_INITIALIZED, "MAPI_E_NOT_INITIALIZED" }, + { MAPI_E_NON_STANDARD, "MAPI_E_NON_STANDARD" }, + { MAPI_E_NO_RECIPIENTS, "MAPI_E_NO_RECIPIENTS" }, + { MAPI_E_SUBMITTED, "MAPI_E_SUBMITTED" }, + { MAPI_E_HAS_FOLDERS, "MAPI_E_HAS_FOLDERS" }, + { MAPI_E_HAS_MESSAGES, "MAPI_E_HAS_MESSAGES" }, + { MAPI_E_FOLDER_CYCLE, "MAPI_E_FOLDER_CYCLE" }, + { MAPI_W_PARTIAL_COMPLETION, "MAPI_W_PARTIAL_COMPLETION" }, + { MAPI_E_AMBIGUOUS_RECIP, "MAPI_E_AMBIGUOUS_RECIP" }, + { MAPI_E_RESERVED, "MAPI_E_RESERVED" }, +{ 0, NULL } +}; const value_string mapi_MAPITAGS_vals[] = { { PR_ACKNOWLEDGEMENT_MODE, "PR_ACKNOWLEDGEMENT_MODE" }, { PR_ACKNOWLEDGEMENT_MODE_ERROR, "PR_ACKNOWLEDGEMENT_MODE_ERROR" }, @@ -3573,85 +5390,9 @@ const value_string mapi_MAPITAGS_vals[] = { { MAPI_PROP_RESERVED, "MAPI_PROP_RESERVED" }, { 0, NULL } }; -const value_string mapi_MAPISTATUS_vals[] = { - { MAPI_E_SUCCESS, "MAPI_E_SUCCESS" }, - { MAPI_E_NO_SUPPORT, "MAPI_E_NO_SUPPORT" }, - { MAPI_E_BAD_CHARWIDTH, "MAPI_E_BAD_CHARWIDTH" }, - { MAPI_E_STRING_TOO_LONG, "MAPI_E_STRING_TOO_LONG" }, - { MAPI_E_UNKNOWN_FLAGS, "MAPI_E_UNKNOWN_FLAGS" }, - { MAPI_E_INVALID_ENTRYID, "MAPI_E_INVALID_ENTRYID" }, - { MAPI_E_INVALID_OBJECT, "MAPI_E_INVALID_OBJECT" }, - { MAPI_E_OBJECT_CHANGED, "MAPI_E_OBJECT_CHANGED" }, - { MAPI_E_OBJECT_DELETED, "MAPI_E_OBJECT_DELETED" }, - { MAPI_E_BUSY, "MAPI_E_BUSY" }, - { MAPI_E_NOT_ENOUGH_DISK, "MAPI_E_NOT_ENOUGH_DISK" }, - { MAPI_E_NOT_ENOUGH_RESOURCES, "MAPI_E_NOT_ENOUGH_RESOURCES" }, - { MAPI_E_NOT_FOUND, "MAPI_E_NOT_FOUND" }, - { MAPI_E_VERSION, "MAPI_E_VERSION" }, - { MAPI_E_LOGON_FAILED, "MAPI_E_LOGON_FAILED" }, - { MAPI_E_SESSION_LIMIT, "MAPI_E_SESSION_LIMIT" }, - { MAPI_E_USER_CANCEL, "MAPI_E_USER_CANCEL" }, - { MAPI_E_UNABLE_TO_ABORT, "MAPI_E_UNABLE_TO_ABORT" }, - { MAPI_E_NETWORK_ERROR, "MAPI_E_NETWORK_ERROR" }, - { MAPI_E_DISK_ERROR, "MAPI_E_DISK_ERROR" }, - { MAPI_E_TOO_COMPLEX, "MAPI_E_TOO_COMPLEX" }, - { MAPI_E_BAD_COLUMN, "MAPI_E_BAD_COLUMN" }, - { MAPI_E_EXTENDED_ERROR, "MAPI_E_EXTENDED_ERROR" }, - { MAPI_E_COMPUTED, "MAPI_E_COMPUTED" }, - { MAPI_E_CORRUPT_DATA, "MAPI_E_CORRUPT_DATA" }, - { MAPI_E_UNCONFIGURED, "MAPI_E_UNCONFIGURED" }, - { MAPI_E_FAILONEPROVIDER, "MAPI_E_FAILONEPROVIDER" }, - { MAPI_E_UNKNOWN_CPID, "MAPI_E_UNKNOWN_CPID" }, - { MAPI_E_UNKNOWN_LCID, "MAPI_E_UNKNOWN_LCID" }, - { MAPI_E_PASSWORD_CHANGE_REQUIRED, "MAPI_E_PASSWORD_CHANGE_REQUIRED" }, - { MAPI_E_PASSWORD_EXPIRED, "MAPI_E_PASSWORD_EXPIRED" }, - { MAPI_E_INVALID_WORKSTATION_ACCOUNT, "MAPI_E_INVALID_WORKSTATION_ACCOUNT" }, - { MAPI_E_INVALID_ACCESS_TIME, "MAPI_E_INVALID_ACCESS_TIME" }, - { MAPI_E_ACCOUNT_DISABLED, "MAPI_E_ACCOUNT_DISABLED" }, - { MAPI_E_END_OF_SESSION, "MAPI_E_END_OF_SESSION" }, - { MAPI_E_UNKNOWN_ENTRYID, "MAPI_E_UNKNOWN_ENTRYID" }, - { MAPI_E_MISSING_REQUIRED_COLUMN, "MAPI_E_MISSING_REQUIRED_COLUMN" }, - { MAPI_W_NO_SERVICE, "MAPI_W_NO_SERVICE" }, - { MAPI_E_BAD_VALUE, "MAPI_E_BAD_VALUE" }, - { MAPI_E_INVALID_TYPE, "MAPI_E_INVALID_TYPE" }, - { MAPI_E_TYPE_NO_SUPPORT, "MAPI_E_TYPE_NO_SUPPORT" }, - { MAPI_E_UNEXPECTED_TYPE, "MAPI_E_UNEXPECTED_TYPE" }, - { MAPI_E_TOO_BIG, "MAPI_E_TOO_BIG" }, - { MAPI_E_DECLINE_COPY, "MAPI_E_DECLINE_COPY" }, - { MAPI_E_UNEXPECTED_ID, "MAPI_E_UNEXPECTED_ID" }, - { MAPI_W_ERRORS_RETURNED, "MAPI_W_ERRORS_RETURNED" }, - { MAPI_E_UNABLE_TO_COMPLETE, "MAPI_E_UNABLE_TO_COMPLETE" }, - { MAPI_E_TIMEOUT, "MAPI_E_TIMEOUT" }, - { MAPI_E_TABLE_EMPTY, "MAPI_E_TABLE_EMPTY" }, - { MAPI_E_TABLE_TOO_BIG, "MAPI_E_TABLE_TOO_BIG" }, - { MAPI_E_INVALID_BOOKMARK, "MAPI_E_INVALID_BOOKMARK" }, - { MAPI_W_POSITION_CHANGED, "MAPI_W_POSITION_CHANGED" }, - { MAPI_W_APPROX_COUNT, "MAPI_W_APPROX_COUNT" }, - { MAPI_E_WAIT, "MAPI_E_WAIT" }, - { MAPI_E_CANCEL, "MAPI_E_CANCEL" }, - { MAPI_E_NOT_ME, "MAPI_E_NOT_ME" }, - { MAPI_W_CANCEL_MESSAGE, "MAPI_W_CANCEL_MESSAGE" }, - { MAPI_E_CORRUPT_STORE, "MAPI_E_CORRUPT_STORE" }, - { MAPI_E_NOT_IN_QUEUE, "MAPI_E_NOT_IN_QUEUE" }, - { MAPI_E_NO_SUPPRESS, "MAPI_E_NO_SUPPRESS" }, - { MAPI_E_COLLISION, "MAPI_E_COLLISION" }, - { MAPI_E_NOT_INITIALIZED, "MAPI_E_NOT_INITIALIZED" }, - { MAPI_E_NON_STANDARD, "MAPI_E_NON_STANDARD" }, - { MAPI_E_NO_RECIPIENTS, "MAPI_E_NO_RECIPIENTS" }, - { MAPI_E_SUBMITTED, "MAPI_E_SUBMITTED" }, - { MAPI_E_HAS_FOLDERS, "MAPI_E_HAS_FOLDERS" }, - { MAPI_E_HAS_MESSAGES, "MAPI_E_HAS_MESSAGES" }, - { MAPI_E_FOLDER_CYCLE, "MAPI_E_FOLDER_CYCLE" }, - { MAPI_W_PARTIAL_COMPLETION, "MAPI_W_PARTIAL_COMPLETION" }, - { MAPI_E_AMBIGUOUS_RECIP, "MAPI_E_AMBIGUOUS_RECIP" }, - { MAPI_E_RESERVED, "MAPI_E_RESERVED" }, -{ 0, NULL } -}; static int mapi_dissect_element_DATA_BLOB_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_DATA_BLOB_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_DATA_BLOB_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_input_locale_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_input_locale_method(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); const value_string mapi_MAPI_OBJTYPE_vals[] = { { MAPI_STORE, "MAPI_STORE" }, { MAPI_ADDRBOOK, "MAPI_ADDRBOOK" }, @@ -3690,123 +5431,365 @@ const value_string mapi_ACLRIGHTS_vals[] = { { RoleOwner, "RoleOwner" }, { 0, NULL } }; -const value_string mapi_MAPI_OPNUM_vals[] = { - { op_MAPI_Release, "op_MAPI_Release" }, - { op_MAPI_OpenFolder, "op_MAPI_OpenFolder" }, - { op_MAPI_OpenMessage, "op_MAPI_OpenMessage" }, - { op_MAPI_GetHierarchyTable, "op_MAPI_GetHierarchyTable" }, - { op_MAPI_GetContentsTable, "op_MAPI_GetContentsTable" }, - { op_MAPI_CreateMessage, "op_MAPI_CreateMessage" }, - { op_MAPI_GetProps, "op_MAPI_GetProps" }, - { op_MAPI_GetPropsAll, "op_MAPI_GetPropsAll" }, - { op_MAPI_GetPropList, "op_MAPI_GetPropList" }, - { op_MAPI_SetProps, "op_MAPI_SetProps" }, - { op_MAPI_DeleteProps, "op_MAPI_DeleteProps" }, - { op_MAPI_SaveChangesMessage, "op_MAPI_SaveChangesMessage" }, - { op_MAPI_ModifyRecipients, "op_MAPI_ModifyRecipients" }, - { op_MAPI_SetReadFlags, "op_MAPI_SetReadFlags" }, - { op_MAPI_SetColumns, "op_MAPI_SetColumns" }, - { op_MAPI_SortTable, "op_MAPI_SortTable" }, - { op_MAPI_Restrict, "op_MAPI_Restrict" }, - { op_MAPI_QueryRows, "op_MAPI_QueryRows" }, - { op_MAPI_GetRowCount, "op_MAPI_GetRowCount" }, - { op_MAPI_SeekRow, "op_MAPI_SeekRow" }, - { op_MAPI_SeekRowBookmark, "op_MAPI_SeekRowBookmark" }, - { op_MAPI_SeekRowApprox, "op_MAPI_SeekRowApprox" }, - { op_MAPI_CreateBookmark, "op_MAPI_CreateBookmark" }, - { op_MAPI_CreateFolder, "op_MAPI_CreateFolder" }, - { op_MAPI_DeleteFolder, "op_MAPI_DeleteFolder" }, - { op_MAPI_DeleteMessages, "op_MAPI_DeleteMessages" }, - { op_MAPI_GetMessageStatus, "op_MAPI_GetMessageStatus" }, - { op_MAPI_SetMessageStatus, "op_MAPI_SetMessageStatus" }, - { op_MAPI_GetAttachmentTable, "op_MAPI_GetAttachmentTable" }, - { op_MAPI_OpenAttach, "op_MAPI_OpenAttach" }, - { op_MAPI_CreateAttach, "op_MAPI_CreateAttach" }, - { op_MAPI_DeleteAttach, "op_MAPI_DeleteAttach" }, - { op_MAPI_SaveChanges, "op_MAPI_SaveChanges" }, - { op_MAPI_SetReceiveFolder, "op_MAPI_SetReceiveFolder" }, - { op_MAPI_GetReceiveFolder, "op_MAPI_GetReceiveFolder" }, - { op_MAPI_Advise, "op_MAPI_Advise" }, - { op_MAPI_Notify, "op_MAPI_Notify" }, - { op_MAPI_OpenStream, "op_MAPI_OpenStream" }, - { op_MAPI_ReadStream, "op_MAPI_ReadStream" }, - { op_MAPI_WriteStream, "op_MAPI_WriteStream" }, - { op_MAPI_SetSearchCriteria, "op_MAPI_SetSearchCriteria" }, - { op_MAPI_GetSearchCriteria, "op_MAPI_GetSearchCriteria" }, - { op_MAPI_SubmitMessage, "op_MAPI_SubmitMessage" }, - { op_MAPI_CopyMessages, "op_MAPI_CopyMessages" }, - { op_MAPI_QueryColumns, "op_MAPI_QueryColumns" }, - { op_MAPI_GetTable, "op_MAPI_GetTable" }, - { op_MAPI_ModifyTable, "op_MAPI_ModifyTable" }, - { op_MAPI_FindRow, "op_MAPI_FindRow" }, - { op_MAPI_AddressTypes, "op_MAPI_AddressTypes" }, - { op_MAPI_GetNamesFromIDs, "op_MAPI_GetNamesFromIDs" }, - { op_MAPI_GetIDsFromNames, "op_MAPI_GetIDsFromNames" }, - { op_MAPI_EmptyFolder, "op_MAPI_EmptyFolder" }, - { op_MAPI_QueryNamesFromIDs, "op_MAPI_QueryNamesFromIDs" }, - { op_MAPI_GetReceiveFolderTable, "op_MAPI_GetReceiveFolderTable" }, - { op_MAPI_OpenMsgStore, "op_MAPI_OpenMsgStore" }, +const value_string mapi_ROP_OPNUM_vals[] = { + { RopNone, "RopNone" }, + { RopRelease, "RopRelease" }, + { RopOpenFolder, "RopOpenFolder" }, + { RopOpenMessage, "RopOpenMessage" }, + { RopGetHierarchyTable, "RopGetHierarchyTable" }, + { RopGetContentsTable, "RopGetContentsTable" }, + { RopCreateMessage, "RopCreateMessage" }, + { RopGetPropertiesSpecific, "RopGetPropertiesSpecific" }, + { RopGetPropertiesAll, "RopGetPropertiesAll" }, + { RopGetPropertiesList, "RopGetPropertiesList" }, + { RopSetProperties, "RopSetProperties" }, + { RopDeleteProperties, "RopDeleteProperties" }, + { RopSaveChangesMessage, "RopSaveChangesMessage" }, + { RopRemoveAllRecipients, "RopRemoveAllRecipients" }, + { RopModifyRecipients, "RopModifyRecipients" }, + { RopReadRecipients, "RopReadRecipients" }, + { RopReloadCachedInformation, "RopReloadCachedInformation" }, + { RopSetMessageReadFlag, "RopSetMessageReadFlag" }, + { RopSetColumns, "RopSetColumns" }, + { RopSortTable, "RopSortTable" }, + { RopRestrict, "RopRestrict" }, + { RopQueryRows, "RopQueryRows" }, + { RopGetStatus, "RopGetStatus" }, + { RopQueryPosition, "RopQueryPosition" }, + { RopSeekRow, "RopSeekRow" }, + { RopSeekRowBookmark, "RopSeekRowBookmark" }, + { RopSeekRowFractional, "RopSeekRowFractional" }, + { RopCreateBookmark, "RopCreateBookmark" }, + { RopCreateFolder, "RopCreateFolder" }, + { RopDeleteFolder, "RopDeleteFolder" }, + { RopDeleteMessages, "RopDeleteMessages" }, + { RopGetMessageStatus, "RopGetMessageStatus" }, + { RopSetMessageStatus, "RopSetMessageStatus" }, + { RopGetAttachmentTable, "RopGetAttachmentTable" }, + { RopOpenAttachment, "RopOpenAttachment" }, + { RopCreateAttachment, "RopCreateAttachment" }, + { RopDeleteAttachment, "RopDeleteAttachment" }, + { RopSaveChangesAttachment, "RopSaveChangesAttachment" }, + { RopSetReceiveFolder, "RopSetReceiveFolder" }, + { RopGetReceiveFolder, "RopGetReceiveFolder" }, + { RopSpoolerRules, "RopSpoolerRules" }, + { RopRegisterNotification, "RopRegisterNotification" }, + { RopNotify, "RopNotify" }, + { RopOpenStream, "RopOpenStream" }, + { RopReadStream, "RopReadStream" }, + { RopWriteStream, "RopWriteStream" }, + { RopSeekStream, "RopSeekStream" }, + { RopSetStreamSize, "RopSetStreamSize" }, + { RopSetSearchCriteria, "RopSetSearchCriteria" }, + { RopGetSearchCriteria, "RopGetSearchCriteria" }, + { RopSubmitMessage, "RopSubmitMessage" }, + { RopMoveCopyMessages, "RopMoveCopyMessages" }, + { RopAbortSubmit, "RopAbortSubmit" }, + { RopMoveFolder, "RopMoveFolder" }, + { RopCopyFolder, "RopCopyFolder" }, + { RopQueryColumnsAll, "RopQueryColumnsAll" }, + { RopAbort, "RopAbort" }, + { RopCopyTo, "RopCopyTo" }, + { RopCopyToStream, "RopCopyToStream" }, + { RopCloneStream, "RopCloneStream" }, + { RopRegisterTableNotification, "RopRegisterTableNotification" }, + { RopDeregisterTableNotification, "RopDeregisterTableNotification" }, + { RopGetPermissionsTable, "RopGetPermissionsTable" }, + { RopGetRulesTable, "RopGetRulesTable" }, + { RopModifyPermissions, "RopModifyPermissions" }, + { RopModifyRules, "RopModifyRules" }, + { RopGetOwningServers, "RopGetOwningServers" }, + { RopLongTermIdFromId, "RopLongTermIdFromId" }, + { RopIdFromLongTermId, "RopIdFromLongTermId" }, + { RopPublicFolderIsGhosted, "RopPublicFolderIsGhosted" }, + { RopOpenEmbeddedMessage, "RopOpenEmbeddedMessage" }, + { RopSetSpooler, "RopSetSpooler" }, + { RopSpoolerLockMessage, "RopSpoolerLockMessage" }, + { RopGetAddressTypes, "RopGetAddressTypes" }, + { RopTransportSend, "RopTransportSend" }, + { RopFastTransferSourceCopyMessages, "RopFastTransferSourceCopyMessages" }, + { RopFastTransferSourceCopyFolder, "RopFastTransferSourceCopyFolder" }, + { RopFastTransferSourceCopyTo, "RopFastTransferSourceCopyTo" }, + { RopFastTransferSourceGetBuffer, "RopFastTransferSourceGetBuffer" }, + { RopFindRow, "RopFindRow" }, + { RopProgress, "RopProgress" }, + { RopTransportNewMail, "RopTransportNewMail" }, + { RopGetValidAttachments, "RopGetValidAttachments" }, + { RopFastTransferDestinationConfigure, "RopFastTransferDestinationConfigure" }, + { RopFastTransferDestinationPutBuffer, "RopFastTransferDestinationPutBuffer" }, + { RopGetNamesFromPropertyIds, "RopGetNamesFromPropertyIds" }, + { RopGetPropertyIdsFromNames, "RopGetPropertyIdsFromNames" }, + { RopUpdateDeferredActionMessages, "RopUpdateDeferredActionMessages" }, + { RopEmptyFolder, "RopEmptyFolder" }, + { RopExpandRow, "RopExpandRow" }, + { RopCollapseRow, "RopCollapseRow" }, + { RopLockRegionStream, "RopLockRegionStream" }, + { RopUnlockRegionStream, "RopUnlockRegionStream" }, + { RopCommitStream, "RopCommitStream" }, + { RopGetStreamSize, "RopGetStreamSize" }, + { RopQueryNamedProperties, "RopQueryNamedProperties" }, + { RopGetPerUserLongTermIds, "RopGetPerUserLongTermIds" }, + { RopGetPerUserGuid, "RopGetPerUserGuid" }, + { RopFlushPerUser, "RopFlushPerUser" }, + { RopReadPerUserInformation, "RopReadPerUserInformation" }, + { RopWritePerUserInformation, "RopWritePerUserInformation" }, + { RopCacheCcnRead, "RopCacheCcnRead" }, + { RopSetReadFlags, "RopSetReadFlags" }, + { RopCopyProperties, "RopCopyProperties" }, + { RopGetReceiveFolderTable, "RopGetReceiveFolderTable" }, + { RopFastTransferSourceCopyProperties, "RopFastTransferSourceCopyProperties" }, + { RopFastTransferDestinationCopyProperties, "RopFastTransferDestinationCopyProperties" }, + { RopGetCollapseState, "RopGetCollapseState" }, + { RopSetCollapseState, "RopSetCollapseState" }, + { RopGetTransportFolder, "RopGetTransportFolder" }, + { RopPending, "RopPending" }, + { RopOptionsData, "RopOptionsData" }, + { RopSynchronizationConfigure, "RopSynchronizationConfigure" }, + { RopIncrState, "RopIncrState" }, + { RopSynchronizationImportMessageChange, "RopSynchronizationImportMessageChange" }, + { RopSynchronizationImportHierarchyChange, "RopSynchronizationImportHierarchyChange" }, + { RopSynchronizationImportDeletes, "RopSynchronizationImportDeletes" }, + { RopSynchronizationUploadStateStreamBegin, "RopSynchronizationUploadStateStreamBegin" }, + { RopSynchronizationUploadStateStreamContinue, "RopSynchronizationUploadStateStreamContinue" }, + { RopSynchronizationUploadStateStreamEnd, "RopSynchronizationUploadStateStreamEnd" }, + { RopSynchronizationImportMessageMove, "RopSynchronizationImportMessageMove" }, + { RopSetPropertiesNoReplicate, "RopSetPropertiesNoReplicate" }, + { RopDeletePropertiesNoReplicate, "RopDeletePropertiesNoReplicate" }, + { RopGetStoreState, "RopGetStoreState" }, + { RopGetRights, "RopGetRights" }, + { RopGetAllPerUserLtids, "RopGetAllPerUserLtids" }, + { RopSynchronizationOpenCollector, "RopSynchronizationOpenCollector" }, + { RopGetLocalReplicaIds, "RopGetLocalReplicaIds" }, + { RopSynchronizationImportReadStateChanges, "RopSynchronizationImportReadStateChanges" }, + { RopResetTable, "RopResetTable" }, + { RopSynchronizationGetTransferState, "RopSynchronizationGetTransferState" }, + { RopOpenAdvisor, "RopOpenAdvisor" }, + { RopRegICSNotifs, "RopRegICSNotifs" }, + { RopOpenCStream, "RopOpenCStream" }, + { RopTellVersion, "RopTellVersion" }, + { RopOpenPublicFolderByName, "RopOpenPublicFolderByName" }, + { RopSetSyncNotificationGuid, "RopSetSyncNotificationGuid" }, + { RopFreeBookmark, "RopFreeBookmark" }, + { RopWriteAndCommitStream, "RopWriteAndCommitStream" }, + { RopHardDeleteMessages, "RopHardDeleteMessages" }, + { RopHardDeleteMessagesAndSubfolders, "RopHardDeleteMessagesAndSubfolders" }, + { RopSetLocalReplicaMidsetDeleted, "RopSetLocalReplicaMidsetDeleted" }, + { RopTransportDeliverMessage, "RopTransportDeliverMessage" }, + { RopTransportDoneWithMessage, "RopTransportDoneWithMessage" }, + { RopIdFromLegacyDN, "RopIdFromLegacyDN" }, + { RopSetAuthenticatedContext, "RopSetAuthenticatedContext" }, + { RopCopyToEx, "RopCopyToEx" }, + { RopImportMsgChangePartial, "RopImportMsgChangePartial" }, + { RopSetMessageFlags, "RopSetMessageFlags" }, + { RopMoveCopyMessagesEx, "RopMoveCopyMessagesEx" }, + { RopFXSrcGetBufferEx, "RopFXSrcGetBufferEx" }, + { RopFXDstPutBufferEx, "RopFXDstPutBufferEx" }, + { RopTransportDeliverMessage2, "RopTransportDeliverMessage2" }, + { RopCreateMessageEx, "RopCreateMessageEx" }, + { RopMoveCopyMessagesEID, "RopMoveCopyMessagesEID" }, + { RopTransportDupDlvCheck, "RopTransportDupDlvCheck" }, + { RopPrereadMessages, "RopPrereadMessages" }, + { RopWriteStreamExtended, "RopWriteStreamExtended" }, + { RopGetContentsTableExtended, "RopGetContentsTableExtended" }, + { RopStartScope, "RopStartScope" }, + { RopEndScope, "RopEndScope" }, + { RopEchoString, "RopEchoString" }, + { RopEchoInt, "RopEchoInt" }, + { RopEchoBinary, "RopEchoBinary" }, + { RopBackoff, "RopBackoff" }, + { RopExtendedError, "RopExtendedError" }, + { RopBookmarkReturned, "RopBookmarkReturned" }, + { RopFidReturned, "RopFidReturned" }, + { RopHsotReturned, "RopHsotReturned" }, + { RopLogon, "RopLogon" }, + { RopBufferTooSmall, "RopBufferTooSmall" }, { 0, NULL } }; -static int mapi_dissect_element_FILETIME_dwLowDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_FILETIME_dwHighDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinary_short_cb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinary_short_lpb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinary_short_lpb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MV_LONG_STRUCT_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MV_LONG_STRUCT_lpl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MV_LONG_STRUCT_lpl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_LPSTR_lppszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -const value_string mapi_property_types_vals[] = { - { PT_UNSPECIFIED, "PT_UNSPECIFIED" }, - { PT_NULL, "PT_NULL" }, - { PT_I2, "PT_I2" }, - { PT_LONG, "PT_LONG" }, - { PT_R4, "PT_R4" }, - { PT_DOUBLE, "PT_DOUBLE" }, - { PT_CURRENCY, "PT_CURRENCY" }, - { PT_APPTIME, "PT_APPTIME" }, - { PT_ERROR, "PT_ERROR" }, - { PT_BOOLEAN, "PT_BOOLEAN" }, - { PT_OBJECT, "PT_OBJECT" }, - { PT_I8, "PT_I8" }, - { PT_STRING8, "PT_STRING8" }, - { PT_UNICODE, "PT_UNICODE" }, - { PT_SYSTIME, "PT_SYSTIME" }, - { PT_CLSID, "PT_CLSID" }, - { PT_BINARY, "PT_BINARY" }, - { PT_MV_I2, "PT_MV_I2" }, - { PT_MV_LONG, "PT_MV_LONG" }, - { PT_MV_R4, "PT_MV_R4" }, - { PT_MV_DOUBLE, "PT_MV_DOUBLE" }, - { PT_MV_CURRENCY, "PT_MV_CURRENCY" }, - { PT_MV_APPTIME, "PT_MV_APPTIME" }, - { PT_MV_I8, "PT_MV_I8" }, - { PT_MV_STRING8, "PT_MV_STRING8" }, - { PT_MV_UNICODE, "PT_MV_UNICODE" }, - { PT_MV_SYSTIME, "PT_MV_SYSTIME" }, - { PT_MV_CLSID, "PT_MV_CLSID" }, - { PT_MV_BINARY, "PT_MV_BINARY" }, +static int mapi_dissect_element_SLPSTRArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SLPSTRArray_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SLPSTRArray_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LPWSTR_lppszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPLSTRArrayW_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPLSTRArrayW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPLSTRArrayW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinaryArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinaryArray_bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBinaryArray_bin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SGuidArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SGuidArray_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SGuidArray_lpguid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_array_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_array_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_ActionType_vals[] = { + { ActionType_OP_MOVE, "ActionType_OP_MOVE" }, + { ActionType_OP_COPY, "ActionType_OP_COPY" }, + { ActionType_OP_REPLY, "ActionType_OP_REPLY" }, + { ActionType_OP_OOF_REPLY, "ActionType_OP_OOF_REPLY" }, + { ActionType_OP_DEFER_ACTION, "ActionType_OP_DEFER_ACTION" }, + { ActionType_OP_BOUNCE, "ActionType_OP_BOUNCE" }, + { ActionType_OP_FORWARD, "ActionType_OP_FORWARD" }, + { ActionType_OP_DELEGATE, "ActionType_OP_DELEGATE" }, + { ActionType_OP_TAG, "ActionType_OP_TAG" }, + { ActionType_OP_DELETE, "ActionType_OP_DELETE" }, + { ActionType_OP_MARK_AS_READ, "ActionType_OP_MARK_AS_READ" }, +{ 0, NULL } +}; +static int mapi_dissect_element_MoveCopy_Action_FolderInThisStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopy_Action_StoreEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopy_Action_FolderEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReplyOOF_Action_ReplyTemplateFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReplyOOF_Action_ReplyTemplateMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReplyOOF_Action_ReplyTemplateGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientBlock_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientBlock_PropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_BounceCode_vals[] = { + { BOUNCE_MESSAGE_TOO_LARGE, "BOUNCE_MESSAGE_TOO_LARGE" }, + { BOUNCE_MESSAGE_NOT_DISPLAYED, "BOUNCE_MESSAGE_NOT_DISPLAYED" }, + { BOUNCE_MESSAGE_DENIED, "BOUNCE_MESSAGE_DENIED" }, { 0, NULL } }; +static int mapi_dissect_element_ForwardDelegate_Action_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ForwardDelegate_Action_RecipientBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ForwardDelegate_Action_RecipientBlock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_MoveAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_CopyAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_ReplyAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_ReplyOOFAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_DeferAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_BounceCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_PropValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_ForwardAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionData_DelegateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionBlockData_ActionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ActionType); +static int mapi_dissect_element_ActionBlockData_ActionFlavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionBlockData_ActionFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ActionBlockData_ActionDataBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ActionType); +static int mapi_dissect_element_ActionBlock_ActionBlockData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RuleAction_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RuleAction_ActionBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RuleAction_ActionBlock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ShortArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ShortArray_r_lpi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ShortArray_r_lpi_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ShortArray_r_lpi__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongArray_r_lpl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongArray_r_lpl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongArray_r_lpl__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_BinaryArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_BinaryArray_r_lpbin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_BinaryArray_r_lpbin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_BinaryArray_r_lpbin__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DateTimeArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DateTimeArray_r_lpft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DateTimeArray_r_lpft_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DateTimeArray_r_lpft__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Binary_r_cb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Binary_r_lpb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Binary_r_lpb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Binary_r_lpb__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_i(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_l(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_dbl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_SPropValue_CTR_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_b(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_d(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_lpszA_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_svreid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_SPropValue_CTR_ft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_lpszW_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_CTR_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_lpguid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_Restrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_RuleAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_ft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVbin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_MVft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_CTR_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_SPropValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_array_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_array_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropValue_array_lpProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropTagArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropTagArray_aulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropTagArray_aulPropTag_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); const value_string mapi_ulRowFlags_vals[] = { { ROW_ADD, "ROW_ADD" }, { ROW_MODIFY, "ROW_MODIFY" }, { ROW_REMOVE, "ROW_REMOVE" }, { 0, NULL } }; -static int mapi_dissect_element_SRow_ulRowFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_req_folder_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_req_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_req_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_req_message_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_req_message_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Release_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Release_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_OpenFolder_OpenModeFlags_vals[] = { + { OpenModeFlags_Folder, "OpenModeFlags_Folder" }, + { OpenModeFlags_SoftDeleted, "OpenModeFlags_SoftDeleted" }, +{ 0, NULL } +}; +static int mapi_dissect_element_OpenFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Replicas_ServerCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Replicas_CheapServerCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Replicas_Servers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Replicas_Servers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IsGhosted_Replicas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Success_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_Success_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_OpenFolder_Success_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_OpenFolder_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenFolder_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_OpenFolder_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +const value_string mapi_StringType_vals[] = { + { StringType_NONE, "StringType_NONE" }, + { StringType_EMPTY, "StringType_EMPTY" }, + { StringType_STRING8, "StringType_STRING8" }, + { StringType_UNICODE_REDUCED, "StringType_UNICODE_REDUCED" }, + { StringType_UNICODE, "StringType_UNICODE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_String_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_String_lpszW_reduced(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_String_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TypedString_StringType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *StringType); +static int mapi_dissect_element_TypedString_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *StringType); +const value_string mapi_OpenMessage_OpenModeFlags_vals[] = { + { ReadOnly, "ReadOnly" }, + { ReadWrite, "ReadWrite" }, + { Create, "Create" }, + { OpenSoftDelete, "OpenSoftDelete" }, +{ 0, NULL } +}; +static int mapi_dissect_element_OpenMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); const value_string mapi_CODEPAGEID_vals[] = { { CP_USASCII, "CP_USASCII" }, { CP_UNICODE, "CP_UNICODE" }, @@ -3830,522 +5813,3038 @@ const value_string mapi_addr_type_vals[] = { }; static int mapi_dissect_element_RecipExchange_organization_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_RecipExchange_addr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -const value_string mapi_OM_recipient_type_vals[] = { - { EXCHANGE, "EXCHANGE" }, - { SMTP, "SMTP" }, -{ 0, NULL } -}; +static int mapi_dissect_element_RecipExchange_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_recipient_type_EXCHANGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_recipient_type_SMTP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -const value_string mapi_OM_recipient_displayname_7bit_vals[] = { - { DISPLAYNAME, "DISPLAYNAME" }, -{ 0, NULL } -}; -static int mapi_dissect_element_recipient_displayname_7bit_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_bitmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_recipients_headers_prop_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_SimpleDisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_SimpleDisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_TransmittableDisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_TransmittableDisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_DisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_DisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_EmailAddress_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_recipient_EmailAddress_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_RecipientFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_EmailAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_SimpleDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_TransmittableDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RecipientRow_prop_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_OpenMessage_recipients_RecipClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_OpenMessage_recipients_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_recipients_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_OpenMessage_recipients_recipients_headers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static const true_false_string ulEventType_fnevCriticalError_tfs = { - "fnevCriticalError is SET", - "fnevCriticalError is NOT SET", -}; -static const true_false_string ulEventType_fnevNewMail_tfs = { - "fnevNewMail is SET", - "fnevNewMail is NOT SET", -}; -static const true_false_string ulEventType_fnevObjectCreated_tfs = { - "fnevObjectCreated is SET", - "fnevObjectCreated is NOT SET", -}; -static const true_false_string ulEventType_fnevObjectDeleted_tfs = { - "fnevObjectDeleted is SET", - "fnevObjectDeleted is NOT SET", -}; -static const true_false_string ulEventType_fnevObjectModified_tfs = { - "fnevObjectModified is SET", - "fnevObjectModified is NOT SET", -}; -static const true_false_string ulEventType_fnevObjectMoved_tfs = { - "fnevObjectMoved is SET", - "fnevObjectMoved is NOT SET", -}; -static const true_false_string ulEventType_fnevObjectCopied_tfs = { - "fnevObjectCopied is SET", - "fnevObjectCopied is NOT SET", -}; -static const true_false_string ulEventType_fnevSearchComplete_tfs = { - "fnevSearchComplete is SET", - "fnevSearchComplete is NOT SET", -}; -static const true_false_string ulEventType_fnevTableModified_tfs = { - "fnevTableModified is SET", - "fnevTableModified is NOT SET", -}; -static const true_false_string ulEventType_fnevStatusObjectModified_tfs = { - "fnevStatusObjectModified is SET", - "fnevStatusObjectModified is NOT SET", -}; -static const true_false_string ulEventType_fnevReservedForMapi_tfs = { - "fnevReservedForMapi is SET", - "fnevReservedForMapi is NOT SET", -}; -static const true_false_string ulEventType_fnevExtended_tfs = { - "fnevExtended is SET", - "fnevExtended is NOT SET", -}; -static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_input_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_session_nb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_session_nb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_org_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_org_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_store_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_store_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_emsmdb_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_emsmdb_client_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_alloc_space(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoConnect_alloc_space_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoDisconnect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoDisconnect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_recipients_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_recipients_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_ColumnCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_recipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_Success_recipients_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenMessage_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_OpenMessage_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static const true_false_string TableFlags_TableFlags_Depth_tfs = { + "TableFlags_Depth is SET", + "TableFlags_Depth is NOT SET", +}; +static const true_false_string TableFlags_TableFlags_DeferredErrors_tfs = { + "TableFlags_DeferredErrors is SET", + "TableFlags_DeferredErrors is NOT SET", +}; +static const true_false_string TableFlags_TableFlags_NoNotifications_tfs = { + "TableFlags_NoNotifications is SET", + "TableFlags_NoNotifications is NOT SET", +}; +static const true_false_string TableFlags_TableFlags_SoftDeletes_tfs = { + "TableFlags_SoftDeletes is SET", + "TableFlags_SoftDeletes is NOT SET", +}; +static const true_false_string TableFlags_TableFlags_UseUnicode_tfs = { + "TableFlags_UseUnicode is SET", + "TableFlags_UseUnicode is NOT SET", +}; +static const true_false_string TableFlags_TableFlags_SuppressNotifications_tfs = { + "TableFlags_SuppressNotifications is SET", + "TableFlags_SuppressNotifications is NOT SET", +}; +static int mapi_dissect_element_GetHierarchyTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_repl_success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetHierarchyTable_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetHierarchyTable_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetContentsTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_repl_success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetContentsTable_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetContentsTable_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_CreateMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_req_AssociatedFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_MessageId_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_repl_success_HasMessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasMessageId); +static int mapi_dissect_element_CreateMessage_repl_success_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasMessageId); +static int mapi_dissect_element_CreateMessage_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateMessage_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_CreateMessage_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_PropertySizeLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_WantUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_repl_success_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_repl_success_prop_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetProps_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetProps_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetPropsAll_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_req_PropertySizeLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_req_WantUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_repl_success_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropsAll_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetPropsAll_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_GetPropList_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropList_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropList_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropList_repl_tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPropList_repl_tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PropertyProblem_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PropertyProblem_property_tag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PropertyProblem_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_req_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetProps_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_req_PropertyTagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_req_tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_req_tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteProps_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_SaveFlags_vals[] = { + { KeepOpenReadOnly, "KeepOpenReadOnly" }, + { KeepOpenReadWrite, "KeepOpenReadWrite" }, + { ForceSave, "ForceSave" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SaveChangesMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesMessage_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesMessage_req_SaveFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesMessage_repl_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesMessage_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RemoveAllRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RemoveAllRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RemoveAllRecipients_req_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_modrecip_vals[] = { + { MODRECIP_NULL, "MODRECIP_NULL" }, + { MODRECIP_INVALID, "MODRECIP_INVALID" }, + { MODRECIP_ADD, "MODRECIP_ADD" }, + { MODRECIP_MODIFY, "MODRECIP_MODIFY" }, + { MODRECIP_REMOVE, "MODRECIP_REMOVE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_ModifyRecipientRow_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipientRow_RecipClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRecipients_req_RecipientRow_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_req_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_req_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipientRow_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipientRow_RecipientType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipientRow_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipientRow_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadRecipients_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_RecipientType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_req_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string MSGFLAG_READ_SUPPRESS_RECEIPT_tfs = { + "SUPPRESS_RECEIPT is SET", + "SUPPRESS_RECEIPT is NOT SET", +}; +static const true_false_string MSGFLAG_READ_CLEAR_READ_FLAG_tfs = { + "CLEAR_READ_FLAG is SET", + "CLEAR_READ_FLAG is NOT SET", +}; +static const true_false_string MSGFLAG_READ_MAPI_DEFERRED_ERRORS_tfs = { + "MAPI_DEFERRED_ERRORS is SET", + "MAPI_DEFERRED_ERRORS is NOT SET", +}; +static const true_false_string MSGFLAG_READ_GENERATE_RECEIPT_ONLY_tfs = { + "GENERATE_RECEIPT_ONLY is SET", + "GENERATE_RECEIPT_ONLY is NOT SET", +}; +static const true_false_string MSGFLAG_READ_CLEAR_RN_PENDING_tfs = { + "CLEAR_RN_PENDING is SET", + "CLEAR_RN_PENDING is NOT SET", +}; +static const true_false_string MSGFLAG_READ_CLEAR_NRN_PENDING_tfs = { + "CLEAR_NRN_PENDING is SET", + "CLEAR_NRN_PENDING is NOT SET", +}; +static int mapi_dissect_element_SetMessageReadFlag_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_req_ReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_req_clientdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_LogonId_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageReadFlag_repl_ReadStatusChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged); +static int mapi_dissect_element_SetMessageReadFlag_repl_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged); +static int mapi_dissect_element_SetMessageReadFlag_repl_ClientData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged); +const value_string mapi_SetColumnsFlags_vals[] = { + { SetColumns_TBL_SYNC, "SetColumns_TBL_SYNC" }, + { SetColumns_TBL_ASYNC, "SetColumns_TBL_ASYNC" }, +{ 0, NULL } +}; +const value_string mapi_TableStatus_vals[] = { + { TBLSTAT_COMPLETE, "TBLSTAT_COMPLETE" }, + { TBLSTAT_SORTING, "TBLSTAT_SORTING" }, + { TBLSTAT_SORT_ERROR, "TBLSTAT_SORT_ERROR" }, + { TBLSTAT_SETTING_COLS, "TBLSTAT_SETTING_COLS" }, + { TBLSTAT_SETCOL_ERROR, "TBLSTAT_SETCOL_ERROR" }, + { TBLSTAT_RESTRICTING, "TBLSTAT_RESTRICTING" }, + { TBLSTAT_RESTRICT_ERROR, "TBLSTAT_RESTRICT_ERROR" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SetColumns_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_req_SetColumnsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetColumns_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_TBL_FLAGS_vals[] = { + { TBL_ASYNC, "TBL_ASYNC" }, + { TBL_BATCH, "TBL_BATCH" }, +{ 0, NULL } +}; +const value_string mapi_TABLE_SORT_vals[] = { + { TABLE_SORT_ASCEND, "TABLE_SORT_ASCEND" }, + { TABLE_SORT_COMBINE, "TABLE_SORT_COMBINE" }, + { TABLE_SORT_DESCEND, "TABLE_SORT_DESCEND" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SSortOrder_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrder_ulOrder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrderSet_cSorts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrderSet_cCategories(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrderSet_cExpanded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrderSet_aSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSortOrderSet_aSort_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SortTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SortTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SortTable_req_SortTableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SortTable_req_lpSortCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SortTable_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SAndRestriction_cRes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SAndRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SAndRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SOrRestriction_cRes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SOrRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SOrRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SNotRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string fuzzyLevel_FL_SUBSTRING_tfs = { + "FL_SUBSTRING is SET", + "FL_SUBSTRING is NOT SET", +}; +static const true_false_string fuzzyLevel_FL_PREFIX_tfs = { + "FL_PREFIX is SET", + "FL_PREFIX is NOT SET", +}; +static const true_false_string fuzzyLevel_FL_IGNORECASE_tfs = { + "FL_IGNORECASE is SET", + "FL_IGNORECASE is NOT SET", +}; +static const true_false_string fuzzyLevel_FL_IGNORENONSPACE_tfs = { + "FL_IGNORENONSPACE is SET", + "FL_IGNORENONSPACE is NOT SET", +}; +static const true_false_string fuzzyLevel_FL_LOOSE_tfs = { + "FL_LOOSE is SET", + "FL_LOOSE is NOT SET", +}; +static int mapi_dissect_element_SContentRestriction_fuzzy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SContentRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SContentRestriction_lpProp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_relMBR_vals[] = { + { BMR_EQZ, "BMR_EQZ" }, + { BMR_NEZ, "BMR_NEZ" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SBitmaskRestriction_relMBR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBitmaskRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SBitmaskRestriction_ulMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_CompareRelop_vals[] = { + { RELOP_LT, "RELOP_LT" }, + { RELOP_LE, "RELOP_LE" }, + { RELOP_GT, "RELOP_GT" }, + { RELOP_GE, "RELOP_GE" }, + { RELOP_EQ, "RELOP_EQ" }, + { RELOP_NE, "RELOP_NE" }, + { RELOP_RE, "RELOP_RE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SSizeRestriction_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSizeRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSizeRestriction_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropertyRestriction_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropertyRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SPropertyRestriction_lpProp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCompareProps_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCompareProps_ulPropTag1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCompareProps_ulPropTag2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SExistRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSubRestriction_ulSubObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSubRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SSubRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RestrictionVariable_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RestrictionVariable_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCommentRestriction_TaggedValuesCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCommentRestriction_TaggedValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCommentRestriction_TaggedValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SCommentRestriction_RestrictionPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RestrictionPresent); +static int mapi_dissect_element_SCommentRestriction_Restriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RestrictionPresent); +static int mapi_dissect_element_SRestriction_CTR_resAnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resOr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resNot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resContent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resCompareProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resBitmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resExist(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resSub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_CTR_resComment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SRestriction_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_and_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_and_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_or_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_or_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_sub_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_sub_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_comment_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_SRestriction_comment_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt); +static int mapi_dissect_element_Restrict_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Restrict_req_restrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Restrict_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_QueryRowsFlags_vals[] = { + { TBL_ADVANCE, "TBL_ADVANCE" }, + { TBL_NOADVANCE, "TBL_NOADVANCE" }, + { TBL_ENABLEPACKEDBUFFERS, "TBL_ENABLEPACKEDBUFFERS" }, +{ 0, NULL } +}; +static int mapi_dissect_element_QueryRows_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_req_QueryRowsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_req_ForwardRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_req_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_repl_Origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryRows_repl_RowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStatus_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryPosition_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryPosition_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryPosition_repl_Numerator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryPosition_repl_Denominator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_BOOKMARK_vals[] = { + { BOOKMARK_BEGINNING, "BOOKMARK_BEGINNING" }, + { BOOKMARK_CURRENT, "BOOKMARK_CURRENT" }, + { BOOKMARK_END, "BOOKMARK_END" }, + { BOOKMARK_USER, "BOOKMARK_USER" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SeekRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_req_origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_req_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_req_WantRowMovedCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_repl_HasSoughtLess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRow_repl_RowsSought(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_req_Bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_req_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_req_WantRowMovedCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_repl_RowNoLongerVisible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_repl_HasSoughtLess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowBookmark_repl_RowsSought(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowApprox_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowApprox_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowApprox_req_ulNumerator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekRowApprox_req_ulDenominator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateBookmark_repl_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_FOLDER_TYPE_vals[] = { + { FOLDER_GENERIC, "FOLDER_GENERIC" }, + { FOLDER_SEARCH, "FOLDER_SEARCH" }, +{ 0, NULL } +}; +const value_string mapi_FOLDER_STRING_vals[] = { + { MAPI_FOLDER_ANSI, "MAPI_FOLDER_ANSI" }, + { MAPI_FOLDER_UNICODE, "MAPI_FOLDER_UNICODE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_LPTSTR_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LPTSTR_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_FOLDER_FLAGS_vals[] = { + { NONE, "NONE" }, + { OPEN_IF_EXISTS, "OPEN_IF_EXISTS" }, +{ 0, NULL } +}; +static int mapi_dissect_element_CreateFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_req_ulFolderType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_req_ulType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType); +static int mapi_dissect_element_CreateFolder_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_req_FolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType); +static int mapi_dissect_element_CreateFolder_req_FolderComment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType); +static int mapi_dissect_element_CreateFolder_GhostInfo_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_GhostInfo_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_CreateFolder_GhostInfo_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_CreateFolder_GhostUnion_GhostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_repl_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateFolder_repl_IsExistingFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsExistingFolder); +static int mapi_dissect_element_CreateFolder_repl_GhostUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsExistingFolder); +static const true_false_string DeleteFolderFlags_DEL_MESSAGES_tfs = { + "DEL_MESSAGES is SET", + "DEL_MESSAGES is NOT SET", +}; +static const true_false_string DeleteFolderFlags_DEL_FOLDERS_tfs = { + "DEL_FOLDERS is SET", + "DEL_FOLDERS is NOT SET", +}; +static const true_false_string DeleteFolderFlags_DELETE_HARD_DELETE_tfs = { + "DELETE_HARD_DELETE is SET", + "DELETE_HARD_DELETE is NOT SET", +}; +static int mapi_dissect_element_DeleteFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteFolder_req_DeleteFolderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_NotifyNonRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_cn_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_message_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_req_message_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetMessageStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetMessageStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetMessageStatus_req_msgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string ulMessageStatus_MSGSTATUS_HIGHLIGHTED_tfs = { + "MSGSTATUS_HIGHLIGHTED is SET", + "MSGSTATUS_HIGHLIGHTED is NOT SET", +}; +static const true_false_string ulMessageStatus_MSGSTATUS_TAGGED_tfs = { + "MSGSTATUS_TAGGED is SET", + "MSGSTATUS_TAGGED is NOT SET", +}; +static const true_false_string ulMessageStatus_MSGSTATUS_HIDDEN_tfs = { + "MSGSTATUS_HIDDEN is SET", + "MSGSTATUS_HIDDEN is NOT SET", +}; +static const true_false_string ulMessageStatus_MSGSTATUS_DELMARKED_tfs = { + "MSGSTATUS_DELMARKED is SET", + "MSGSTATUS_DELMARKED is NOT SET", +}; +static const true_false_string ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD_tfs = { + "MSGSTATUS_REMOTE_DOWNLOAD is SET", + "MSGSTATUS_REMOTE_DOWNLOAD is NOT SET", +}; +static const true_false_string ulMessageStatus_MSGSTATUS_REMOTE_DELETE_tfs = { + "MSGSTATUS_REMOTE_DELETE is SET", + "MSGSTATUS_REMOTE_DELETE is NOT SET", +}; +static int mapi_dissect_element_SetMessageStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageStatus_req_msgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageStatus_req_ulNewStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageStatus_req_ulNewStatusMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetMessageStatus_repl_ulOldStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetAttachmentTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetAttachmentTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetAttachmentTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetAttachmentTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_OpenAttachmentFlags_vals[] = { + { OpenAttachmentFlags_ReadOnly, "OpenAttachmentFlags_ReadOnly" }, + { OpenAttachmentFlags_ReadWrite, "OpenAttachmentFlags_ReadWrite" }, + { OpenAttachmentFlags_BestAccess, "OpenAttachmentFlags_BestAccess" }, +{ 0, NULL } +}; +static int mapi_dissect_element_OpenAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenAttach_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenAttach_req_OpenAttachmentFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenAttach_req_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateAttach_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CreateAttach_repl_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeleteAttach_req_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesAttachment_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesAttachment_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesAttachment_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SaveChangesAttachment_req_SaveFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReceiveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReceiveFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReceiveFolder_req_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReceiveFolder_req_lpszMessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolder_req_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolder_repl_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolder_repl_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_NotificationFlags_vals[] = { + { fnevCriticalError, "fnevCriticalError" }, + { fnevNewMail, "fnevNewMail" }, + { fnevObjectCreated, "fnevObjectCreated" }, + { fnevObjectDeleted, "fnevObjectDeleted" }, + { fnevObjectModified, "fnevObjectModified" }, + { fnevObjectMoved, "fnevObjectMoved" }, + { fnevObjectCopied, "fnevObjectCopied" }, + { fnevSearchComplete, "fnevSearchComplete" }, + { fnevTableModified, "fnevTableModified" }, + { fnevStatusObjectModified, "fnevStatusObjectModified" }, + { fnevReserved, "fnevReserved" }, + { fnevTbit, "fnevTbit" }, + { fnevUbit, "fnevUbit" }, + { fnevSbit, "fnevSbit" }, + { fnevMbit, "fnevMbit" }, +{ 0, NULL } +}; +static int mapi_dissect_element_hyperbool_ID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RegisterNotification_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RegisterNotification_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RegisterNotification_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RegisterNotification_req_notificationFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RegisterNotification_req_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *layout); +static int mapi_dissect_element_RegisterNotification_req_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *layout); +static const true_false_string MsgFlags_MSGFLAG_READ_tfs = { + "MSGFLAG_READ is SET", + "MSGFLAG_READ is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_UNMODIFIED_tfs = { + "MSGFLAG_UNMODIFIED is SET", + "MSGFLAG_UNMODIFIED is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_SUBMIT_tfs = { + "MSGFLAG_SUBMIT is SET", + "MSGFLAG_SUBMIT is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_UNSENT_tfs = { + "MSGFLAG_UNSENT is SET", + "MSGFLAG_UNSENT is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_HASATTACH_tfs = { + "MSGFLAG_HASATTACH is SET", + "MSGFLAG_HASATTACH is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_FROMME_tfs = { + "MSGFLAG_FROMME is SET", + "MSGFLAG_FROMME is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_ASSOCIATED_tfs = { + "MSGFLAG_ASSOCIATED is SET", + "MSGFLAG_ASSOCIATED is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_RESEND_tfs = { + "MSGFLAG_RESEND is SET", + "MSGFLAG_RESEND is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_RN_PENDING_tfs = { + "MSGFLAG_RN_PENDING is SET", + "MSGFLAG_RN_PENDING is NOT SET", +}; +static const true_false_string MsgFlags_MSGFLAG_NRN_PENDING_tfs = { + "MSGFLAG_NRN_PENDING is SET", + "MSGFLAG_NRN_PENDING is NOT SET", +}; +static int mapi_dissect_element_MessageClass_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageClass_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GID_DatabaseGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GID_GlobalCounter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GID_GlobalCounter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_RichTableNotificationType_vals[] = { + { TABLE_CHANGED, "TABLE_CHANGED" }, + { TABLE_ROW_ADDED, "TABLE_ROW_ADDED" }, + { TABLE_ROW_DELETED, "TABLE_ROW_DELETED" }, + { TABLE_ROW_MODIFIED, "TABLE_ROW_MODIFIED" }, + { TABLE_RESTRICT_DONE, "TABLE_RESTRICT_DONE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_NewMailNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NewMailNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NewMailNotification_MessageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NewMailNotification_UnicodeFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UnicodeFlag); +static int mapi_dissect_element_NewMailNotification_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UnicodeFlag); +static int mapi_dissect_element_FolderCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderCreatedNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderDeletedNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_10_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_10_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_10_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_10_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderMoveCopyNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderMoveCopyNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderMoveCopyNotification_OldFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderMoveCopyNotification_OldParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchCompleteNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowAddedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowAddedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowAddedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowModifiedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyRowModifiedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HierarchyTableChange_TableEvent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent); +static int mapi_dissect_element_HierarchyTableChange_HierarchyTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent); +static int mapi_dissect_element_IcsNotification_HierChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IcsNotification_GIDCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IcsNotification_GID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IcsNotification_GID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_1010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_1010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_1010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_1010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_1010_TotalMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_2010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_2010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_2010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_2010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_2010_UnreadMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_TotalMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FolderModifiedNotification_3010_UnreadMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageCreatedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageDeletedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageModifiedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageModifiedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageModifiedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageMoveCopyNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageMoveCopyNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageMoveCopyNotification_OldFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MessageMoveCopyNotification_OldMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_InsertAfterMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_InsertAfterInstance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowAddedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowDeletedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowDeletedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterInstance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsRowModifiedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsTableChangeUnion_ContentsRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsTableChangeUnion_ContentsRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsTableChangeUnion_ContentsRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ContentsTableChange_TableEvent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent); +static int mapi_dissect_element_ContentsTableChange_ContentsTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent); +static int mapi_dissect_element_SearchMessageCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageCreatedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageCreatedNotification_SearchFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageRemovedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageRemovedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageRemovedNotification_SearchFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageModifiedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageModifiedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SearchMessageModifiedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_NewMailNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderModifiedNotification_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderMoveNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_SearchCompleteNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_HierarchyTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_IcsNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderModifiedNotification_1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderModifiedNotification_2010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_FolderModifiedNotification_3010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_NewMessageNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_MessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_MessageDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_MessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_MessageMoveNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_MessageCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_ContentsTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_SearchMessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_SearchMessageRemovedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_SearchMessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_NotificationData_SearchTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Notify_repl_NotificationHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Notify_repl_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Notify_repl_NotificationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *NotificationType); +static int mapi_dissect_element_Notify_repl_NotificationData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *NotificationType); +const value_string mapi_OpenStream_OpenModeFlags_vals[] = { + { OpenStream_ReadOnly, "OpenStream_ReadOnly" }, + { OpenStream_ReadWrite, "OpenStream_ReadWrite" }, + { OpenStream_Create, "OpenStream_Create" }, + { OpenStream_BestAccess, "OpenStream_BestAccess" }, +{ 0, NULL } +}; +static int mapi_dissect_element_OpenStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenStream_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenStream_req_PropertyTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenStream_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenStream_repl_StreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MaximumByteCount_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadStream_req_ByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *ByteCount); +static int mapi_dissect_element_ReadStream_req_MaximumByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *ByteCount); +static int mapi_dissect_element_ReadStream_repl_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteStream_req_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteStream_repl_WrittenSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekStream_req_Origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekStream_req_Offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SeekStream_repl_NewPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetStreamSize_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetStreamSize_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetStreamSize_req_SizeStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string SearchFlags_STOP_SEARCH_tfs = { + "STOP_SEARCH is SET", + "STOP_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_RESTART_SEARCH_tfs = { + "RESTART_SEARCH is SET", + "RESTART_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_RECURSIVE_SEARCH_tfs = { + "RECURSIVE_SEARCH is SET", + "RECURSIVE_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_SHALLOW_SEARCH_tfs = { + "SHALLOW_SEARCH is SET", + "SHALLOW_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_FOREGROUND_SEARCH_tfs = { + "FOREGROUND_SEARCH is SET", + "FOREGROUND_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_BACKGROUND_SEARCH_tfs = { + "BACKGROUND_SEARCH is SET", + "BACKGROUND_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_CONTENT_INDEXED_SEARCH_tfs = { + "CONTENT_INDEXED_SEARCH is SET", + "CONTENT_INDEXED_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_NON_CONTENT_INDEXED_SEARCH_tfs = { + "NON_CONTENT_INDEXED_SEARCH is SET", + "NON_CONTENT_INDEXED_SEARCH is NOT SET", +}; +static const true_false_string SearchFlags_STATIC_SEARCH_tfs = { + "STATIC_SEARCH is SET", + "STATIC_SEARCH is NOT SET", +}; +static int mapi_dissect_element_SetSearchCriteria_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_FolderIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSearchCriteria_req_SearchFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_req_IncludeRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_req_IncludeFolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_FolderIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetSearchCriteria_repl_SearchFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_SubmitFlags_vals[] = { + { None, "None" }, + { PreProcess, "PreProcess" }, + { NeedsSpooler, "NeedsSpooler" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SubmitMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SubmitMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SubmitMessage_req_SubmitFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_message_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_message_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_req_WantCopy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveCopyMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AbortSubmit_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AbortSubmit_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AbortSubmit_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AbortSubmit_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Folder_name_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Folder_name_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveFolder_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode); +static int mapi_dissect_element_MoveFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MoveFolder_req_NewFolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode); +static int mapi_dissect_element_MoveFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyFolder_req_WantRecursive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyFolder_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode); +static int mapi_dissect_element_CopyFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyFolder_req_NewFolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode); +static int mapi_dissect_element_CopyFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryColumnsAll_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryColumnsAll_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryColumnsAll_repl_PropertyTagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryColumnsAll_repl_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryColumnsAll_repl_PropertyTags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Abort_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Abort_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Abort_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string CopyFlags_CopyFlagsMove_tfs = { + "CopyFlagsMove is SET", + "CopyFlagsMove is NOT SET", +}; +static const true_false_string CopyFlags_CopyFlagsNoOverwrite_tfs = { + "CopyFlagsNoOverwrite is SET", + "CopyFlagsNoOverwrite is NOT SET", +}; +static int mapi_dissect_element_CopyTo_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_req_WantSubObjects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_req_CopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_req_ExcludedTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyTo_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyToStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyToStream_req_ByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyToStream_repl_ReadByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyToStream_repl_WrittenByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CloneStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CloneStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CloneStream_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string PermissionsTableFlags_IncludeFreeBusy_tfs = { + "IncludeFreeBusy is SET", + "IncludeFreeBusy is NOT SET", +}; +static int mapi_dissect_element_GetPermissionsTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPermissionsTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPermissionsTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPermissionsTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string RulesTableFlags_RulesTableFlags_Unicode_tfs = { + "RulesTableFlags_Unicode is SET", + "RulesTableFlags_Unicode is NOT SET", +}; +static int mapi_dissect_element_GetRulesTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetRulesTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetRulesTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetRulesTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy_tfs = { + "ModifyPerms_IncludeFreeBusy is SET", + "ModifyPerms_IncludeFreeBusy is NOT SET", +}; +static const true_false_string ModifyPermissionsFlags_ModifyPerms_ReplaceRows_tfs = { + "ModifyPerms_ReplaceRows is SET", + "ModifyPerms_ReplaceRows is NOT SET", +}; +static int mapi_dissect_element_PermissionData_PermissionDataFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PermissionData_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PermissionsData_ModifyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PermissionsData_ModifyCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PermissionsData_PermissionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PermissionsData_PermissionsData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyPermissions_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyPermissions_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyPermissions_req_rowList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RuleData_RuleDataFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RuleData_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string ModifyRulesFlag_ModifyRulesFlag_Replace_tfs = { + "ModifyRulesFlag_Replace is SET", + "ModifyRulesFlag_Replace is NOT SET", +}; +static int mapi_dissect_element_ModifyRules_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRules_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRules_req_ModifyRulesFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRules_req_RulesCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRules_req_RulesData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ModifyRules_req_RulesData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_repl_OwningServersCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_repl_CheapServersCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_repl_OwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetOwningServers_repl_OwningServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_req_Id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermId_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermId_GlobalCounter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermId_GlobalCounter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermId_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_repl_Success_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LongTermIdFromId_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_LongTermIdFromId_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue); +static int mapi_dissect_element_IdFromLongTermId_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IdFromLongTermId_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IdFromLongTermId_req_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_IdFromLongTermId_repl_Id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PublicFolderIsGhosted_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PublicFolderIsGhosted_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PublicFolderIsGhosted_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_PublicFolderIsGhosted_repl_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_PublicFolderIsGhosted_repl_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +const value_string mapi_OpenEmbeddedMessage_OpenModeFlags_vals[] = { + { MAPI_READONLY, "MAPI_READONLY" }, + { MAPI_READWRITE, "MAPI_READWRITE" }, + { MAPI_CREATE, "MAPI_CREATE" }, +{ 0, NULL } +}; +static int mapi_dissect_element_OpenEmbeddedMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_ColumnCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSpooler_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetSpooler_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_LockState_vals[] = { + { LockState_1stLock, "LockState_1stLock" }, + { LockState_1stUnlock, "LockState_1stUnlock" }, + { LockState_1stFinished, "LockState_1stFinished" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SpoolerLockMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SpoolerLockMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SpoolerLockMessage_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SpoolerLockMessage_req_LockState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_repl_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_repl_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_repl_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AddressTypes_repl_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportSend_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportSend_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportSend_lpProps_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportSend_repl_NoPropertiesReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *NoPropertiesReturned); +static int mapi_dissect_element_TransportSend_repl_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *NoPropertiesReturned); +static int mapi_dissect_element_FastTransferSourceGetBuffer_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_req_BufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_TransferStatus_vals[] = { + { TransferStatus_Error, "TransferStatus_Error" }, + { TransferStatus_Partial, "TransferStatus_Partial" }, + { TransferStatus_NoRoom, "TransferStatus_NoRoom" }, + { TransferStatus_Done, "TransferStatus_Done" }, +{ 0, NULL } +}; +static int mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_repl_InProgressCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_repl_TotalStepCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_FindRow_ulFlags_vals[] = { + { DIR_FORWARD, "DIR_FORWARD" }, + { DIR_BACKWARD, "DIR_BACKWARD" }, +{ 0, NULL } +}; +static int mapi_dissect_element_FindRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_req_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_req_origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_req_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_repl_RowNoLongerVisible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_repl_HasRowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FindRow_repl_row(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Progress_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Progress_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Progress_req_WantCancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Progress_repl_CompletedTaskCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Progress_repl_TotalTaskCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_TransportNewMail_req_MessageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetValidAttachments_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetValidAttachments_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetValidAttachments_repl_AttachmentIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_ulKind_vals[] = { + { MNID_ID, "MNID_ID" }, + { MNID_STRING, "MNID_STRING" }, +{ 0, NULL } +}; +static int mapi_dissect_element_name_NameSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_name_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Kind_lid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Kind_lpwstr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MAPINAMEID_ulKind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulKind); +static int mapi_dissect_element_MAPINAMEID_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_MAPINAMEID_kind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulKind); +static int mapi_dissect_element_GetNamesFromIDs_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_req_PropertyIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_req_PropertyIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_req_PropertyIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_repl_nameid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetNamesFromIDs_repl_nameid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_nameid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_req_nameid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_repl_propID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetIDsFromNames_repl_propID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UpdateDeferredActionMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UpdateDeferredActionMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UpdateDeferredActionMessages_req_ServerEntryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UpdateDeferredActionMessages_req_ClientEntryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EmptyFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EmptyFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EmptyFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EmptyFolder_req_WantDeleteAssociated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EmptyFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_req_MaxRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_req_CategoryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_repl_ExpandedRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ExpandRow_repl_RowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CollapseRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CollapseRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CollapseRow_req_CategoryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CollapseRow_repl_CollapsedRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LockRegionStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LockRegionStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LockRegionStream_req_RegionOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LockRegionStream_req_RegionSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LockRegionStream_req_LockFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UnlockRegionStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UnlockRegionStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UnlockRegionStream_req_RegionOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UnlockRegionStream_req_RegionSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_UnlockRegionStream_req_LockFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CommitStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CommitStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStreamSize_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStreamSize_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStreamSize_repl_StreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string QueryFlags_NoStrings_tfs = { + "NoStrings is SET", + "NoStrings is NOT SET", +}; +static const true_false_string QueryFlags_NoIds_tfs = { + "NoIds is SET", + "NoIds is NOT SET", +}; +static int mapi_dissect_element_QueryNamedProperties_guid_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_req_QueryFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_req_HasGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasGuid); +static int mapi_dissect_element_QueryNamedProperties_req_PropertyGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasGuid); +static int mapi_dissect_element_QueryNamedProperties_repl_IdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_repl_PropertyIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_repl_PropertyIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_repl_PropertyNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_QueryNamedProperties_repl_PropertyNames_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_req_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserGuid_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserGuid_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserGuid_req_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetPerUserGuid_repl_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_FolderId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_WhatIfChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_DataOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_req_MaxDataSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_repl_HasFinished(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReadPerUserInformation_repl_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_ReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_MessageIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_MessageIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_req_MessageIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetReadFlags_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_req_CopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_CopyProperties_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FILETIME_dwLowDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FILETIME_dwHighDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReceiveFolder_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReceiveFolder_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReceiveFolder_lpszMessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ReceiveFolder_modiftime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolderTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolderTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolderTable_repl_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolderTable_repl_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetReceiveFolderTable_repl_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetCollapseState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetCollapseState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetCollapseState_req_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetCollapseState_req_RowInstanceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetCollapseState_repl_CollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetCollapseState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetCollapseState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetCollapseState_req_CollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetCollapseState_repl_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetTransportFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetTransportFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetTransportFolder_repl_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Pending_repl_SessionIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_req_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_req_WantWin32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_HelpFileName_HelpFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_repl_OptionsInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_repl_HelpFileSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *HelpFileSize); +static int mapi_dissect_element_OptionsData_repl_HelpFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_repl_HelpFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OptionsData_repl_HelpFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *HelpFileSize); +const value_string mapi_SynchronizationType_vals[] = { + { Contents, "Contents" }, + { Hierarchy, "Hierarchy" }, +{ 0, NULL } +}; +static const true_false_string SendOptions_SendOptions_Unicode_tfs = { + "SendOptions_Unicode is SET", + "SendOptions_Unicode is NOT SET", +}; +static const true_false_string SendOptions_SendOptions_ForUpload_tfs = { + "SendOptions_ForUpload is SET", + "SendOptions_ForUpload is NOT SET", +}; +static const true_false_string SendOptions_SendOptions_RecoverMode_tfs = { + "SendOptions_RecoverMode is SET", + "SendOptions_RecoverMode is NOT SET", +}; +static const true_false_string SendOptions_SendOptions_ForceUnicode_tfs = { + "SendOptions_ForceUnicode is SET", + "SendOptions_ForceUnicode is NOT SET", +}; +static const true_false_string SendOptions_SendOptions_Partial_tfs = { + "SendOptions_Partial is SET", + "SendOptions_Partial is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_Unicode_tfs = { + "SynchronizationFlag_Unicode is SET", + "SynchronizationFlag_Unicode is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_NoDeletions_tfs = { + "SynchronizationFlag_NoDeletions is SET", + "SynchronizationFlag_NoDeletions is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_NoSoftDeletions_tfs = { + "SynchronizationFlag_NoSoftDeletions is SET", + "SynchronizationFlag_NoSoftDeletions is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_ReadState_tfs = { + "SynchronizationFlag_ReadState is SET", + "SynchronizationFlag_ReadState is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_FAI_tfs = { + "SynchronizationFlag_FAI is SET", + "SynchronizationFlag_FAI is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_Normal_tfs = { + "SynchronizationFlag_Normal is SET", + "SynchronizationFlag_Normal is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties_tfs = { + "SynchronizationFlag_OnlySpecifiedProperties is SET", + "SynchronizationFlag_OnlySpecifiedProperties is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers_tfs = { + "SynchronizationFlag_NoForeignIdentifiers is SET", + "SynchronizationFlag_NoForeignIdentifiers is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_Reserved_tfs = { + "SynchronizationFlag_Reserved is SET", + "SynchronizationFlag_Reserved is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_BestBody_tfs = { + "SynchronizationFlag_BestBody is SET", + "SynchronizationFlag_BestBody is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI_tfs = { + "SynchronizationFlag_IgnoreSpecifiedOnFAI is SET", + "SynchronizationFlag_IgnoreSpecifiedOnFAI is NOT SET", +}; +static const true_false_string SynchronizationFlag_SynchronizationFlag_Progress_tfs = { + "SynchronizationFlag_Progress is SET", + "SynchronizationFlag_Progress is NOT SET", +}; +static const true_false_string SynchronizationExtraFlags_Eid_tfs = { + "Eid is SET", + "Eid is NOT SET", +}; +static const true_false_string SynchronizationExtraFlags_MessageSize_tfs = { + "MessageSize is SET", + "MessageSize is NOT SET", +}; +static const true_false_string SynchronizationExtraFlags_Cn_tfs = { + "Cn is SET", + "Cn is NOT SET", +}; +static const true_false_string SynchronizationExtraFlags_OrderByDeliveryTime_tfs = { + "OrderByDeliveryTime is SET", + "OrderByDeliveryTime is NOT SET", +}; +static int mapi_dissect_element_SyncConfigure_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_SynchronizationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_SendOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_SynchronizationFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_RestrictionData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_SynchronizationExtraFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncConfigure_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string ImportFlag_ImportFlag_Associated_tfs = { + "ImportFlag_Associated is SET", + "ImportFlag_Associated is NOT SET", +}; +static const true_false_string ImportFlag_ImportFlag_FailOnConflict_tfs = { + "ImportFlag_FailOnConflict is SET", + "ImportFlag_FailOnConflict is NOT SET", +}; +static int mapi_dissect_element_SyncImportMessageChange_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageChange_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageChange_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageChange_req_ImportFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageChange_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageChange_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportHierarchyChange_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportHierarchyChange_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportHierarchyChange_req_HierarchyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportHierarchyChange_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportHierarchyChange_repl_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportDeletes_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportDeletes_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportDeletes_req_IsHierarchy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportDeletes_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_StateProperty_vals[] = { + { PidTagIdsetGiven, "PidTagIdsetGiven" }, + { PidTagCnsetSeen, "PidTagCnsetSeen" }, + { PidTagCnsetSeenFAI, "PidTagCnsetSeenFAI" }, + { PidTagCnsetRead, "PidTagCnsetRead" }, +{ 0, NULL } +}; +static int mapi_dissect_element_SyncUploadStateStreamBegin_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamBegin_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamBegin_req_StateProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamBegin_req_TransferBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamContinue_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamContinue_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamEnd_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncUploadStateStreamEnd_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageMove_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageMove_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportMessageMove_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_req_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string StoreState_STORE_HAS_SEARCHES_tfs = { + "STORE_HAS_SEARCHES is SET", + "STORE_HAS_SEARCHES is NOT SET", +}; +static int mapi_dissect_element_GetStoreState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStoreState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetStoreState_repl_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncOpenCollector_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncOpenCollector_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncOpenCollector_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncOpenCollector_req_IsContentsCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_req_IdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_repl_ReplGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportReadStateChanges_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportReadStateChanges_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncImportReadStateChanges_req_MessageStates(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ResetTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ResetTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncGetTransferState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncGetTransferState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_SyncGetTransferState_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenPublicFolderByName_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenPublicFolderByName_req_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenPublicFolderByName_repl_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_OpenPublicFolderByName_repl_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_OpenPublicFolderByName_repl_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted); +static int mapi_dissect_element_SetSyncNotificationGuid_req_NotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FreeBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FreeBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_FreeBookmark_req_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteAndCommitStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteAndCommitStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteAndCommitStream_req_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_WriteAndCommitStream_repl_WrittenSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_NotifyNonRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_MessageIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_MessageIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_req_MessageIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_HardDeleteMessagesAndSubfolders_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_LogonFlags_vals[] = { + { LogonPrivate, "LogonPrivate" }, + { UnderCover, "UnderCover" }, + { Ghosted, "Ghosted" }, + { SpIProcess, "SpIProcess" }, +{ 0, NULL } +}; +static const true_false_string OpenFlags_PUBLIC_tfs = { + "PUBLIC is SET", + "PUBLIC is NOT SET", +}; +static const true_false_string OpenFlags_HOME_LOGON_tfs = { + "HOME_LOGON is SET", + "HOME_LOGON is NOT SET", +}; +static const true_false_string OpenFlags_TAKE_OWNERSHIP_tfs = { + "TAKE_OWNERSHIP is SET", + "TAKE_OWNERSHIP is NOT SET", +}; +static const true_false_string OpenFlags_ALTERNATE_SERVER_tfs = { + "ALTERNATE_SERVER is SET", + "ALTERNATE_SERVER is NOT SET", +}; +static const true_false_string OpenFlags_IGNORE_HOME_MDB_tfs = { + "IGNORE_HOME_MDB is SET", + "IGNORE_HOME_MDB is NOT SET", +}; +static const true_false_string OpenFlags_NO_MAIL_tfs = { + "NO_MAIL is SET", + "NO_MAIL is NOT SET", +}; +static const true_false_string OpenFlags_USE_PER_MDB_REPLID_MAPPING_tfs = { + "USE_PER_MDB_REPLID_MAPPING is SET", + "USE_PER_MDB_REPLID_MAPPING is NOT SET", +}; +const value_string mapi_DayOfWeek_vals[] = { + { DayOfWeek_Sunday, "DayOfWeek_Sunday" }, + { DayOfWeek_Monday, "DayOfWeek_Monday" }, + { DayOfWeek_Tuesday, "DayOfWeek_Tuesday" }, + { DayOfWeek_Wednesday, "DayOfWeek_Wednesday" }, + { DayOfWeek_Thursday, "DayOfWeek_Thursday" }, + { DayOfWeek_Friday, "DayOfWeek_Friday" }, + { DayOfWeek_Saturday, "DayOfWeek_Saturday" }, +{ 0, NULL } +}; +static int mapi_dissect_element_LogonTime_Seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_Minutes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_Hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_DayOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_Day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_Month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_LogonTime_Year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string ResponseFlags_ResponseFlags_Reserved_tfs = { + "ResponseFlags_Reserved is SET", + "ResponseFlags_Reserved is NOT SET", +}; +static const true_false_string ResponseFlags_ResponseFlags_OwnerRight_tfs = { + "ResponseFlags_OwnerRight is SET", + "ResponseFlags_OwnerRight is NOT SET", +}; +static const true_false_string ResponseFlags_ResponseFlags_SendAsRight_tfs = { + "ResponseFlags_SendAsRight is SET", + "ResponseFlags_SendAsRight is NOT SET", +}; +static const true_false_string ResponseFlags_ResponseFlags_OOF_tfs = { + "ResponseFlags_OOF is SET", + "ResponseFlags_OOF is NOT SET", +}; +static int mapi_dissect_element_Logon_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_LogonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_OpenFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_EssdnSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_req_EssDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_ResponseFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_MailboxGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_ReplId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_ReplGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_LogonTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_GwartTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_PerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_ServerNameSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_Logon_repl_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopBufferTooSmall_repl_SizeNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetHierarchyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetContentsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CreateMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetPropsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetPropList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_DeleteProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SaveChangesMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetMessageReadFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ReloadCachedInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SortTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Restrict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_RemoveAllRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ModifyRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ReadRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_QueryRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_QueryPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SeekRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SeekRowBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SeekRowApprox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CreateBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CreateFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_DeleteFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_DeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetAttachmentTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CreateAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_DeleteAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SaveChangesAttachment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Advise(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ReadStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_WriteStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SeekStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SubmitMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_MoveCopyMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_AbortSubmit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_MoveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CopyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_QueryColumnsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Abort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CopyTo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CopyToStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CloneStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetPermissionsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetRulesTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ModifyPermissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ModifyRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetOwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_LongTermIdFromId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_IdFromLongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_PublicFolderIsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenEmbeddedMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetSpooler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SpoolerLockMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_AddressTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_TransportSend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_FastTransferSourceGetBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_FindRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_TransportNewMail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetValidAttachments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetNamesFromIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetIDsFromNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_UpdateDeferredActionMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_EmptyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ExpandRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CollapseRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_LockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_UnlockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_QueryNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetPerUserLongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetPerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ReadPerUserInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_CopyProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetReceiveFolderTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetTransportFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OptionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncImportMessageChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncImportHierarchyChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncImportDeletes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncUploadStateStreamBegin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncUploadStateStreamContinue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncUploadStateStreamEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncImportMessageMove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetPropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_DeletePropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetStoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncOpenCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_GetLocalReplicaIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncImportReadStateChanges(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_ResetTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SyncGetTransferState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_OpenPublicFolderByName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_SetSyncNotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_FreeBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_WriteAndCommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_HardDeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_HardDeleteMessagesAndSubfolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopRequest_Logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetHierarchyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetContentsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CreateMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetPropsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetPropList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_DeleteProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SaveChangesMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_RemoveAllRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ModifyRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ReadRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetMessageReadFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ReloadCachedInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SortTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Restrict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_QueryRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_QueryPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SeekRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SeekRowBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SeekRowApprox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CreateBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CreateFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_DeleteFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_DeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetAttachmentTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CreateAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_DeleteAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SaveChangesAttachment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Advise(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Notify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ReadStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_WriteStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SeekStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SubmitMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_MoveCopyMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_AbortSubmit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_MoveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CopyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_QueryColumnsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Abort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CopyTo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CopyToStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CloneStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetPermissionsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetRulesTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ModifyPermissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ModifyRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetOwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_LongTermIdFromId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_IdFromLongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_PublicFolderIsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenEmbeddedMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetSpooler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SpoolerLockMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_AddressTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_TransportSend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_FastTransferSourceGetBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_FindRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_TransportNewMail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetValidAttachments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetNamesFromIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetIDsFromNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_UpdateDeferredActionMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_EmptyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ExpandRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CollapseRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_LockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_UnlockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_QueryNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetPerUserLongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetPerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ReadPerUserInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_CopyProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetReceiveFolderTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Pending(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetTransportFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OptionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncImportMessageChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncImportHierarchyChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncImportDeletes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncUploadStateStreamBegin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncUploadStateStreamContinue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncUploadStateStreamEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncImportMessageMove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetPropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_DeletePropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetStoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncOpenCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_GetLocalReplicaIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncImportReadStateChanges(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_ResetTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SyncGetTransferState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_OpenPublicFolderByName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_SetSyncNotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_FreeBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_WriteAndCommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_HardDeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_HardDeleteMessagesAndSubfolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_Logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopReply_RopBufferTooSmall(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcMapiRequest_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum); +static int mapi_dissect_element_EcDoRpcMapiResponse_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum); +static int mapi_dissect_element_request_rpcRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_response_rpcResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_AUX_HEADER_TYPE_1_vals[] = { + { AUX_TYPE_PERF_REQUESTID, "AUX_TYPE_PERF_REQUESTID" }, + { AUX_TYPE_PERF_CLIENTINFO, "AUX_TYPE_PERF_CLIENTINFO" }, + { AUX_TYPE_PERF_SERVERINFO, "AUX_TYPE_PERF_SERVERINFO" }, + { AUX_TYPE_PERF_SESSIONINFO, "AUX_TYPE_PERF_SESSIONINFO" }, + { AUX_TYPE_PERF_DEFMDB_SUCCESS, "AUX_TYPE_PERF_DEFMDB_SUCCESS" }, + { AUX_TYPE_PERF_DEFGC_SUCCESS, "AUX_TYPE_PERF_DEFGC_SUCCESS" }, + { AUX_TYPE_PERF_MDB_SUCCESS, "AUX_TYPE_PERF_MDB_SUCCESS" }, + { AUX_TYPE_PERF_GC_SUCCESS, "AUX_TYPE_PERF_GC_SUCCESS" }, + { AUX_TYPE_PERF_FAILURE, "AUX_TYPE_PERF_FAILURE" }, + { AUX_TYPE_CLIENT_CONTROL, "AUX_TYPE_CLIENT_CONTROL" }, + { AUX_TYPE_PERF_PROCESSINFO, "AUX_TYPE_PERF_PROCESSINFO" }, + { AUX_TYPE_PERF_BG_DEFMDB_SUCCESS, "AUX_TYPE_PERF_BG_DEFMDB_SUCCESS" }, + { AUX_TYPE_PERF_BG_DEFGC_SUCCESS, "AUX_TYPE_PERF_BG_DEFGC_SUCCESS" }, + { AUX_TYPE_PERF_BG_MDB_SUCCESS, "AUX_TYPE_PERF_BG_MDB_SUCCESS" }, + { AUX_TYPE_PERF_BG_GC_SUCCESS, "AUX_TYPE_PERF_BG_GC_SUCCESS" }, + { AUX_TYPE_PERF_BG_FAILURE, "AUX_TYPE_PERF_BG_FAILURE" }, + { AUX_TYPE_PERF_FG_DEFMDB_SUCCESS, "AUX_TYPE_PERF_FG_DEFMDB_SUCCESS" }, + { AUX_TYPE_PERF_FG_DEFGC_SUCCESS, "AUX_TYPE_PERF_FG_DEFGC_SUCCESS" }, + { AUX_TYPE_PERF_FG_MDB_SUCCESS, "AUX_TYPE_PERF_FG_MDB_SUCCESS" }, + { AUX_TYPE_PERF_FG_GC_SUCCESS, "AUX_TYPE_PERF_FG_GC_SUCCESS" }, + { AUX_TYPE_PERF_FG_FAILURE, "AUX_TYPE_PERF_FG_FAILURE" }, + { AUX_TYPE_OSVERSIONINFO, "AUX_TYPE_OSVERSIONINFO" }, + { AUX_TYPE_EXORGINFO, "AUX_TYPE_EXORGINFO" }, + { AUX_TYPE_PERF_ACCOUNTINFO, "AUX_TYPE_PERF_ACCOUNTINFO" }, + { AUX_TYPE_SERVER_CAPABILITIES, "AUX_TYPE_SERVER_CAPABILITIES" }, + { AUX_TYPE_ENDPOINT_CAPABILITIES, "AUX_TYPE_ENDPOINT_CAPABILITIES" }, + { AUX_CLIENT_CONNECTION_INFO, "AUX_CLIENT_CONNECTION_INFO" }, + { AUX_SERVER_SESSION_INFO, "AUX_SERVER_SESSION_INFO" }, + { AUX_PROTOCOL_DEVICE_IDENTIFICATION, "AUX_PROTOCOL_DEVICE_IDENTIFICATION" }, +{ 0, NULL } +}; +const value_string mapi_AUX_HEADER_TYPE_2_vals[] = { + { AUX_TYPE_PERF_SESSIONINFO_2, "AUX_TYPE_PERF_SESSIONINFO_2" }, + { AUX_TYPE_PERF_MDB_SUCCESS_2, "AUX_TYPE_PERF_MDB_SUCCESS_2" }, + { AUX_TYPE_PERF_GC_SUCCESS_2, "AUX_TYPE_PERF_GC_SUCCESS_2" }, + { AUX_TYPE_PERF_FAILURE_2, "AUX_TYPE_PERF_FAILURE_2" }, + { AUX_TYPE_PERF_PROCESSINFO_2, "AUX_TYPE_PERF_PROCESSINFO_2" }, + { AUX_TYPE_PERF_BG_MDB_SUCCESS_2, "AUX_TYPE_PERF_BG_MDB_SUCCESS_2" }, + { AUX_TYPE_PERF_BG_GC_SUCCESS_2, "AUX_TYPE_PERF_BG_GC_SUCCESS_2" }, + { AUX_TYPE_PERF_BG_FAILURE_2, "AUX_TYPE_PERF_BG_FAILURE_2" }, + { AUX_TYPE_PERF_FG_MDB_SUCCESS_2, "AUX_TYPE_PERF_FG_MDB_SUCCESS_2" }, + { AUX_TYPE_PERF_FG_GC_SUCCESS_2, "AUX_TYPE_PERF_FG_GC_SUCCESS_2" }, + { AUX_TYPE_PERF_FG_FAILURE_2, "AUX_TYPE_PERF_FG_FAILURE_2" }, +{ 0, NULL } +}; +const value_string mapi_AUX_VERSION_vals[] = { + { AUX_VERSION_1, "AUX_VERSION_1" }, + { AUX_VERSION_2, "AUX_VERSION_2" }, +{ 0, NULL } +}; +static int mapi_dissect_element_AUX_PERF_REQUESTID_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_REQUESTID_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_ClientMode_vals[] = { + { CLIENTMODE_UNKNOWN, "CLIENTMODE_UNKNOWN" }, + { CLIENTMODE_CLASSIC, "CLIENTMODE_CLASSIC" }, + { CLIENTMODE_CACHED, "CLIENTMODE_CACHED" }, +{ 0, NULL } +}; +static int mapi_dissect_element_AUX_PERF_CLIENTINFO_AdapterSpeed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientMode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_CLIENTINFO_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +const value_string mapi_SERVERINFO_ServerType_vals[] = { + { SERVERTYPE_UNKNOWN, "SERVERTYPE_UNKNOWN" }, + { SERVERTYPE_PRIVATE, "SERVERTYPE_PRIVATE" }, + { SERVERTYPE_PUBLIC, "SERVERTYPE_PUBLIC" }, + { SERVERTYPE_DIRECTORY, "SERVERTYPE_DIRECTORY" }, + { SERVERTYPE_REFERRAL, "SERVERTYPE_REFERRAL" }, +{ 0, NULL } +}; +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDNOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerNameOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SERVERINFO_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_ConnectionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_TimeToFailRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_ResultCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeToFailRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_ResultCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER_tfs = { + "ENABLE_PERF_SENDTOSERVER is SET", + "ENABLE_PERF_SENDTOSERVER is NOT SET", +}; +static const true_false_string CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX_tfs = { + "ENABLE_PERF_SENDTOMAILBOX is SET", + "ENABLE_PERF_SENDTOMAILBOX is NOT SET", +}; +static const true_false_string CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION_tfs = { + "ENABLE_COMPRESSION is SET", + "ENABLE_COMPRESSION is NOT SET", +}; +static const true_false_string CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING_tfs = { + "ENABLE_HTTP_TUNNELING is SET", + "ENABLE_HTTP_TUNNELING is NOT SET", +}; +static const true_false_string CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA_tfs = { + "ENABLE_PERF_SENDGCDATA is SET", + "ENABLE_PERF_SENDGCDATA is NOT SET", +}; +static int mapi_dissect_element_AUX_CLIENT_CONTROL_EnableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_CLIENT_CONTROL_ExpiryTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessNameOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_OSVersionInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_BuildNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED_tfs = { + "PUBLIC_FOLDERS_ENABLED is SET", + "PUBLIC_FOLDERS_ENABLED is NOT SET", +}; +static int mapi_dissect_element_AUX_EXORGINFO_OrgFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfRequestId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfSessionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryClientControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfProcessInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerFGGCSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryOSVersionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_AuxiliaryEXOrgInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion1_Payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfRequestId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfSessioninfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfProcessInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerFGGCSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryOSVersionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_AuxiliaryEXOrgInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxDataVersion2_Payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AUX_HEADER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *Version); +static const true_false_string RPC_HEADER_EXT_Flags_RHEF_Compressed_tfs = { + "RHEF_Compressed is SET", + "RHEF_Compressed is NOT SET", +}; +static const true_false_string RPC_HEADER_EXT_Flags_RHEF_XorMagic_tfs = { + "RHEF_XorMagic is SET", + "RHEF_XorMagic is NOT SET", +}; +static const true_false_string RPC_HEADER_EXT_Flags_RHEF_Last_tfs = { + "RHEF_Last is SET", + "RHEF_Last is NOT SET", +}; +static int mapi_dissect_element_RPC_HEADER_EXT_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RPC_HEADER_EXT_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RPC_HEADER_EXT_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RPC_HEADER_EXT_SizeActual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxInfo_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxInfoOut_RpcHeaderExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxInfoOut_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_AuxInfoOut_auxHeader_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static const true_false_string RpcExt2Flags_NoCompression_tfs = { + "NoCompression is SET", + "NoCompression is NOT SET", +}; +static const true_false_string RpcExt2Flags_NoXorMagic_tfs = { + "NoXorMagic is SET", + "NoXorMagic is NOT SET", +}; +static const true_false_string RpcExt2Flags_Chain_tfs = { + "Chain is SET", + "Chain is NOT SET", +}; +static int mapi_dissect_element_RopInput_RopId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId); +static int mapi_dissect_element_RopInput_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId); +static int mapi_dissect_element_ROPInputBuffer_ropSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPInputBuffer_rop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPInputBuffer_rop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPInputBuffer_objectHandles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPInputBuffer_objectHandles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_RopOutput_RopId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId); +static int mapi_dissect_element_RopOutput_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId); +static int mapi_dissect_element_ROPOutputBuffer_ropSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPOutputBuffer_rop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPOutputBuffer_rop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPOutputBuffer_objectHandles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_ROPOutputBuffer_objectHandles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_hBinding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_hBinding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulConMod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_cbLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulCpid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulLcidString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulLcidSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_ulIcxrLink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_usFCanConvertCodePages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcmsPollsMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcmsPollsMax_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcRetry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcmsRetryDelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pcmsRetryDelay_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_picxr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_picxr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDNPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDNPrefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDNPrefix__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_szDisplayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_rgwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_rgwServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_rgwBestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pullTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnect_pullTimeStamp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoDisconnect_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoDisconnect_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpc_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_request__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpc_offset_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcDoRpc_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_rgb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_rgb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_rgb__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_pusLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_pusLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcGetMoreRpc_usSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcRRegisterPushNotification_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcRRegisterPushNotification_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_ulEventMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_notifkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_notifkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_notif_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_sockaddr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_sockaddr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_retval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRRegisterPushNotification_retval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_iRpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbContext__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_cbContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_grbitMapiAdviseBits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_cbCallbackAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_hNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRRegisterPushNotification_hNotification_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcRUnregisterPushNotification_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); static int mapi_dissect_element_EcRUnregisterPushNotification_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRUnregisterPushNotification_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int mapi_dissect_element_EcRUnregisterPushNotification_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRUnregisterPushNotification_iRpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRUnregisterPushNotification_hNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_szDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_szDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_rgchDomainController(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRGetDCName_rgchDomainController_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRNetGetDCName_szDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRNetGetDCName_szDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRNetGetDCName_rgchDomainController(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcRNetGetDCName_rgchDomainController_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pulFlags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_cbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pcbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pcbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pulTransTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt_pulTransTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulConMod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_cbLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulCpid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulLcidString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulLcidSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_ulIcxrLink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_usFCanConvertCodePages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcmsPollsMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcmsPollsMax_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcRetry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_picxr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_picxr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDNPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDNPrefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDNPrefix__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_szDisplayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgwServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgwBestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pulTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pulTimeStamp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoConnectEx_pcbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pulFlags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_cbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pcbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pulTransTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoRpcExt2_pulTransTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnect_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnect_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnect_pacxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnect_pacxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncWait_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncWait_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncWait_ulFlagsIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncWait_pulFlagsOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncWait_pulFlagsOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnectEx_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnectEx_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnectEx_pacxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int mapi_dissect_element_EcDoAsyncConnectEx_pacxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +tvbuff_t * +mapi_deobfuscate(tvbuff_t *tvb, int offset, packet_info *pinfo, guint32 size) +{ + tvbuff_t *deob_tvb = NULL; + guint8 *decrypted_data; + const guint8 *ptr; + gint reported_len; + reported_len = tvb_reported_length_remaining(tvb, offset); + if ((guint32) reported_len > size) { + reported_len = size; + } + if (size > (guint32) reported_len) { + size = reported_len; + } + ptr = tvb_get_ptr(tvb, offset, size); + decrypted_data = (guint8 *)wmem_alloc0(pinfo->pool, size); + for (guint32 i = 0; i < size; i++) { + decrypted_data[i] = ptr[i] ^ 0xA5; + } + deob_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len); + return deob_tvb; +} +/* [MS-OXCRPC] 3.1.4.1.3.1 Version Number Comparison +*/ static int -cnf_dissect_hyper(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep, guint32 param _U_, int hfindex) +normalize_version(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, int hf_index, const gchar * str) { - offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hfindex, NULL); - return offset; + guint16 version_0, build_major, product_major, product_minor; + gchar *value; + version_0= tvb_get_letohs(tvb, offset); + build_major= tvb_get_letohs(tvb, offset + 2); + if(build_major & 0x8000){ + product_major = (version_0 & 0xFF00) >> 8; + product_minor = (version_0 & 0xFF); + build_major = (build_major & 0x7FFF); + } else { + product_major = version_0; + product_minor = 0; + } + value = wmem_strdup_printf( pinfo->pool + , "%d.%d.%d.%d" + , product_major + , product_minor + , build_major + , tvb_get_letohs(tvb, offset + 4)); + proto_tree_add_string_format( tree + , hf_index + , tvb + , offset + , 6 + , value + , "%s: %s" + , str + , value + ); + return offset + 6; +} +static int +mapi_dissect_element_EcDoConnect_rgwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnect_rgwClientVersion, "rgwClientVersion"); +} +static int +mapi_dissect_element_EcDoConnect_rgwServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnect_rgwServerVersion, "rgwServerVersion"); +} +static int +mapi_dissect_element_EcDoConnect_rgwBestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnect_rgwBestVersion, "rgwBestVersion"); +} +static int +mapi_dissect_element_EcDoConnectEx_rgwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnectEx_rgwClientVersion, "rgwClientVersion"); +} +static int +mapi_dissect_element_EcDoConnectEx_rgwServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnectEx_rgwServerVersion, "rgwServerVersion"); +} +static int +mapi_dissect_element_EcDoConnectEx_rgwBestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return normalize_version(tvb, pinfo, offset, tree, hf_mapi_mapi_EcDoConnectEx_rgwBestVersion, "rgwBestVersion"); +} +static int +mapi_dissect_element_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return mapi_dissect_struct_request(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_mapi_request, 0); +} +static int +mapi_dissect_element_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return mapi_dissect_struct_response(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_mapi_response, 0); } /** * Analyze mapi_request MAPI Handles */ -static int mapi_dissect_element_request_handles_cnf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +static int +mapi_dissect_element_handles_cnf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, int hf_index _U_, guint8 *drep _U_) { gint reported_len; - gint i; gint handles_cnt = 0; guint32 value; proto_tree *tr = NULL; reported_len = tvb_reported_length_remaining(tvb, offset); handles_cnt = reported_len / 4; tr = proto_tree_add_subtree_format(tree, tvb, offset, reported_len, ett_mapi_mapi_request, NULL, "MAPI Handles: %d", handles_cnt); - for (i = 0; i < handles_cnt; i++) { + for (gint i = 0; i < handles_cnt; i++) { value = tvb_get_letohl(tvb, offset); - proto_tree_add_uint_format(tr, hf_mapi_MAPI_handle, tvb, offset, 4, value, "[%.2d] MAPI handle: 0x%.8x", i, value); + proto_tree_add_uint_format(tr, hf_index, tvb, offset, 4, value, "[%.2d] MAPI handle: 0x%.8x", i, value); offset += 4; } return offset; } -static int -mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) -{ - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - guint8 opnum; - old_offset = offset; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); - tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REQ); - } - opnum = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA); - offset += 1; - col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation")); - proto_tree_add_item(tree, hf_mapi_EcDoRpc_mapi_flags, tvb, offset, 1, ENC_NA); - offset += 1; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA); - offset += 1; - switch(opnum) { - case op_MAPI_Release: - offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvb, offset, pinfo, tree, di, drep); - break; - case op_MAPI_OpenFolder: - offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep); - break; - case op_MAPI_GetProps: - offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvb, offset, pinfo, tree, di, drep); - break; - case op_MAPI_OpenMsgStore: - offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvb, offset, pinfo, tree, di, drep); - break; - default: - offset += param - 3; +int +mapi_dissect_struct_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int start_offset = offset; + tvbuff_t *decrypted_tvb; + guint32 size; + guint16 pdu_len; + ALIGN_TO_5_BYTES; + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, start_offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_response); + } + offset = dissect_ndr_uint32(tvb, start_offset, pinfo, tree, di, drep, hf_mapi_mapi_response_mapi_len, &size); + decrypted_tvb = mapi_deobfuscate(tvb, offset, pinfo, size); + if (!decrypted_tvb || tvb_reported_length(decrypted_tvb) != size) { + return offset; + } + offset += size; + proto_item_set_len(item, offset - start_offset); + { + add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI Response"); + tree = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_response, NULL, "Decrypted MAPI Response PDU"); + pdu_len = tvb_get_letohs(decrypted_tvb, 0); + proto_tree_add_uint(tree, hf_mapi_mapi_response_length, decrypted_tvb, 0, sizeof(guint16), pdu_len); + proto_tree_add_item(tree, hf_mapi_decrypted_data, decrypted_tvb, sizeof(guint16), pdu_len - sizeof(guint16), ENC_NA); + /* analyze contents */ + mapi_dissect_element_response_rpcResponse(decrypted_tvb, sizeof(guint16), pinfo, tree, di, drep); + mapi_dissect_element_handles_cnf(decrypted_tvb, pdu_len, pinfo, tree, di, hf_mapi_mapi_response_handles, drep); + } + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; } - proto_item_set_len(item, offset-old_offset); return offset; } static int -mapi_dissect_element_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AuxInfo_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_element_EcDoRpc_request_(tvb, offset, pinfo, tree, di, drep); + guint total_length = tvb_reported_length(tvb); + if(di->conformant_run){ + return offset; + } + while(offset >= 0 && (guint)offset < total_length){ + offset = mapi_dissect_struct_AUX_HEADER(tvb,offset,pinfo,tree,di,drep,di->ptype == PDU_REQ ? hf_mapi_AuxInfo_auxHeader : hf_mapi_AuxInfoOut_auxHeader ,0); + } return offset; } +int +dissect_EcDoConnectEx_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + if (length == 0){ + return offset; + } + return mapi_dissect_struct_AuxInfo(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_mapi_EcDoConnectEx_rgbAuxOut, 0); +} static int -mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcDoConnectEx_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - guint32 size; - int start_offset = offset; - guint8 *decrypted_data; - tvbuff_t *decrypted_tvb; - const guint8 *ptr; - gint reported_len; - guint16 pdu_len; - guint32 i; - proto_tree *tr = NULL; - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_request, &size); - proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size); - reported_len = tvb_reported_length_remaining(tvb, offset); - if ((guint32) reported_len > size) { - reported_len = size; + return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoConnectEx_AuxInfoOut); +} +int +dissect_EcDoRpcExt2_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + if (length == 0){ + return offset; } - if (size > (guint32) reported_len) { - size = reported_len; + return mapi_dissect_struct_AuxInfo(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut, 0); +} +static int +mapi_dissect_element_EcDoRpcExt2_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoRpcExt2_AuxInfoOut); +} +int +mapi_dissect_struct_AUX_PERF_CLIENTINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset, cur_end_offset; + guint16 MachineNameOffset; + guint16 UserNameOffset; + guint16 ClientIPSize; + guint16 ClientIPOffset; + guint16 ClientIPMaskSize; + guint16 ClientIPMaskOffset; + guint16 AdapterNameOffset; + guint16 MacAddressSize; + guint16 MacAddressOffset; + di->no_align = TRUE; + old_offset = offset; + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_CLIENTINFO); } - ptr = tvb_get_ptr(tvb, offset, size); - decrypted_data = (guint8 *)wmem_alloc(pinfo->pool, size); - for (i = 0; i < size; i++) { - decrypted_data[i] = ptr[i] ^ 0xA5; + offset = mapi_dissect_element_AUX_PERF_CLIENTINFO_AdapterSpeed(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientID(tvb, offset, pinfo, tree, di, drep); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_MachineNameOffset, 0, &MachineNameOffset); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_UserNameOffset, 0, &UserNameOffset); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPSize, 0, &ClientIPSize); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPOffset, 0, &ClientIPOffset); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskSize, 0, &ClientIPMaskSize); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskOffset, 0, &ClientIPMaskOffset); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_AdapterNameOffset, 0, &AdapterNameOffset); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_MacAddressSize, 0, &MacAddressSize); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_MacAddressOffset, 0, &MacAddressOffset); + offset = mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientMode(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_CLIENTINFO_Reserved(tvb, offset, pinfo, tree, di, drep); + if (MachineNameOffset > 0){ + cur_end_offset = dissect_null_term_wstring(tvb, MachineNameOffset, pinfo, tree, drep, hf_mapi_AUX_PERF_CLIENTINFO_MachineName , 0); + if (cur_end_offset > offset) + offset = cur_end_offset; } - decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len); - add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI"); - tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_request, NULL, "Decrypted MAPI PDU"); - pdu_len = tvb_get_letohs(decrypted_tvb, 0); - proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len); - proto_tree_add_item(tr, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA); - /* analyze contents */ - offset = mapi_dissect_element_EcDoRpc_request__(decrypted_tvb, 0, pinfo, tr, di, drep); - /* analyze mapi handles */ - offset = mapi_dissect_element_request_handles_cnf(decrypted_tvb, offset, pinfo, tr, di, drep); - /* append ptr size (4) */ - return start_offset + offset + 4; -} -/* - * Analyze mapi_request real contents - */ -static int mapi_dissect_element_EcDoRpc_request__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - guint16 length; - length = tvb_get_letohs(tvb, offset); - offset += 2; - while (offset < length) { - offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_req, length - offset); + if (UserNameOffset > 0){ + cur_end_offset = dissect_null_term_wstring(tvb, UserNameOffset, pinfo, tree, drep, hf_mapi_AUX_PERF_CLIENTINFO_UserName , 0); + if (cur_end_offset > offset) + offset = cur_end_offset; + } + if (ClientIPOffset > 0 && ClientIPSize > 0){ + if(ClientIPSize == 4){ + proto_tree_add_item(tree, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV4, tvb, ClientIPOffset, 4, ENC_NA); + } else if(ClientIPSize == 16){ + proto_tree_add_item(tree, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV6, tvb, ClientIPOffset, 16, ENC_NA); + } + cur_end_offset = ClientIPOffset + ClientIPSize; + if (cur_end_offset > offset) + offset = cur_end_offset; } + if (ClientIPMaskOffset > 0 && ClientIPMaskSize > 0){ + for (int i = 0; i < ClientIPMaskSize; i++) + cur_end_offset = PIDL_dissect_uint8(tvb, ClientIPMaskOffset+i, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMask, 0); + if (cur_end_offset > offset) + offset = cur_end_offset; + } + if (AdapterNameOffset > 0){ + cur_end_offset = dissect_null_term_wstring(tvb, AdapterNameOffset, pinfo, tree, drep, hf_mapi_AUX_PERF_CLIENTINFO_AdapterName , 0); + if (cur_end_offset > offset) + offset = cur_end_offset; + } + if (MacAddressOffset > 0 && MacAddressSize > 0){ + if(MacAddressSize == 6){ + proto_tree_add_item(tree, hf_mapi_AUX_PERF_CLIENTINFO_MacAddressEther, tvb, MacAddressOffset, 6, ENC_NA); + } + cur_end_offset = MacAddressOffset + MacAddressSize; + if (cur_end_offset > offset) + offset = cur_end_offset; + } + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; return offset; } -/* static int -mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_AuxDataVersion1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_); +static int +mapi_dissect_AuxDataVersion2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_); +static int +mapi_dissect_AUX_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 Version, int hf_index _U_, guint8 hdrType) +{ + switch(Version) { + case AUX_VERSION_1: + return mapi_dissect_AuxDataVersion1(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_AUX_DATA_Version1, hdrType); + case AUX_VERSION_2: + return mapi_dissect_AuxDataVersion2(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_AUX_DATA_Version2, hdrType); + default: + return offset; + } +} +int +mapi_dissect_AUX_HEADER_TYPE_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 Version, int hf_index _U_, guint8 *hdrType) { - proto_item *item = NULL; - proto_tree *tree = NULL; + switch(Version) { + case AUX_VERSION_1: + return PIDL_dissect_uint8_val(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_AUX_HEADER_TYPE_ENUM_Type, 0, hdrType); + case AUX_VERSION_2: + return PIDL_dissect_uint8_val(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_AUX_HEADER_TYPE_ENUM_Type_2, 0, hdrType); + default: + return offset; + } +} +int +mapi_dissect_struct_AUX_HEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 auxSize = 0; + guint8 Version = 0; + guint8 hdrType = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + di->no_align = TRUE; if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); - tree = proto_item_add_subtree(item, ett_mapi_mapi_request); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_HEADER); } - offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_req, 0); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_HEADER_Size, 0, &auxSize); + offset = mapi_dissect_element_AUX_HEADER_Version(tvb, offset, pinfo, tree, di, drep, &Version); + offset = mapi_dissect_AUX_HEADER_TYPE_ENUM(tvb, offset, pinfo, tree, di, drep, Version, hf_mapi_AUX_HEADER_hdrType, &hdrType); + offset = mapi_dissect_AUX_DATA(tvb, offset, pinfo, tree, di, drep, Version, hf_mapi_AUX_HEADER_AuxData, hdrType); + proto_item_set_len(item, auxSize); + di->no_align = oldalign; return offset; } -*/ -/*************************/ -/* EcDoRpc Function 0x2 */ -static int -mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int origin_offset; - origin_offset = offset; + guint8 opnum = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + di->no_align = TRUE; + old_offset = offset; if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_req); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_EcDoRpcMapiRequest); } - proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA); - offset += 1; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_folder_id, tvb, offset, 8, ENC_LITTLE_ENDIAN); - offset += 8; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown2, tvb, offset, 1, ENC_NA); - offset += 1; - proto_item_set_len(item, offset - origin_offset); + offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiRequest_opnum, param, &opnum); + col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation")); + offset = mapi_dissect_element_EcDoRpcMapiRequest_u(tvb, offset, pinfo, tree, di, drep, &opnum); + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; return offset; } -/*************************/ -/* EcDoRpc Function 0x7 */ -static int -mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int origin_offset; - guint16 i; - /**** Function parameters ****/ - guint16 prop_count; - guint32 mapitag; - origin_offset = offset; + proto_item *item = NULL; + proto_tree *tree = NULL; + int start_offset = offset;; + tvbuff_t *decrypted_tvb = NULL; + guint16 pdu_len; + guint32 size; + ALIGN_TO_5_BYTES; if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_GetProps_req); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_request); } - proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown3, tvb, offset, 4, ENC_LITTLE_ENDIAN); - offset += 4; - prop_count = tvb_get_letohs(tvb, offset); - proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 2, prop_count); - offset += 2; - for (i = 0; i < prop_count; i++) { - mapitag = tvb_get_letohl(tvb, offset); - proto_tree_add_uint_format(tree, hf_mapi_EcDoRpc_mapi_tag, tvb, offset, 4, mapitag, "[%.2d] %s", i, val_to_str(mapitag, mapi_MAPITAGS_vals, "Unknown MAPITAGS")); - offset += 4; + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_len, &size); + decrypted_tvb = mapi_deobfuscate(tvb, offset, pinfo, size); + if (!decrypted_tvb || tvb_reported_length(decrypted_tvb) != size) { + return offset; + } + offset += size; + proto_item_set_len(item, offset - start_offset); + { + add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI Request"); + tree = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_request, NULL, "Decrypted MAPI Request PDU"); + pdu_len = tvb_get_letohs(decrypted_tvb, 0); + proto_tree_add_uint(tree, hf_mapi_mapi_request_length, decrypted_tvb, 0, 2, pdu_len); + proto_tree_add_item(tree, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA); + /* analyze contents */ + mapi_dissect_element_request_rpcRequest(decrypted_tvb, 2, pinfo, tree, di, drep); + mapi_dissect_element_handles_cnf(decrypted_tvb, pdu_len, pinfo, tree, di, hf_mapi_mapi_request_handles, drep); + } + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; } - proto_item_set_len(item, offset - origin_offset); return offset; } -/*************************/ -/* EcDoRpc Function 0xFE */ static int -mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcDoConnect_szUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int origin_offset; - /**** Function parameters ****/ - guint16 str_len; - origin_offset = offset; + char *data= NULL; + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnect_szUserDN, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + col_append_fstr(pinfo->cinfo, COL_INFO, " DN: %s", data); + return offset; +} +static int +mapi_dissect_element_EcDoConnectEx_szUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data= NULL; + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnectEx_szUserDN, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + col_append_fstr(pinfo->cinfo, COL_INFO, " DN: %s", data); + return offset; +} +int +mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 opnum = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset= offset; + di->no_align = TRUE; if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_req); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_EcDoRpcMapiResponse); } - proto_tree_add_item(tree, hf_mapi_EcDoRpc_codepage, tvb, offset, 4, ENC_LITTLE_ENDIAN); - offset += 4; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_padding, tvb, offset, 4, ENC_LITTLE_ENDIAN); - offset += 4; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_row, tvb, offset, 1, ENC_NA); - offset += 1; - str_len = tvb_get_letohs(tvb, offset); - proto_tree_add_item(tree, hf_mapi_EcDoRpc_str_length, tvb, offset, 2, ENC_LITTLE_ENDIAN); - offset += 2; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_mailbox, tvb, offset, str_len, ENC_ASCII|ENC_NA); - offset += str_len; - proto_item_set_len(item, offset - origin_offset); + offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiResponse_opnum, param, &opnum); + col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation")); + offset = mapi_dissect_element_EcDoRpcMapiResponse_u(tvb, offset, pinfo, tree, di, drep, &opnum); + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; return offset; } -static int -mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +int +uint32_size_uint8_buffer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_size_index, int hf_buffer_index, guint32 param) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - guint8 opnum; - guint32 retval; - old_offset = offset; + guint32 size= 0; + offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, parent_tree, di, drep, hf_size_index, param, &size); + proto_tree_add_item(parent_tree, hf_buffer_index, tvb, offset, size, ENC_NA); + return offset+size; +} +int +mapi_dissect_struct_SyncUploadStateStreamContinue_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset= offset; + di->no_align = TRUE; if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REPL); + tree = proto_item_add_subtree(item, ett_mapi_SyncUploadStateStreamContinue_req); } - opnum = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA); - offset += 1; - col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation: 0x%02x")); - if (opnum != op_MAPI_Notify) { - proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA); - offset += 1; - retval = tvb_get_letohl(tvb, offset); - proto_tree_add_item(tree, hf_mapi_MAPISTATUS_status, tvb, offset, 4, ENC_LITTLE_ENDIAN); - offset += 4; - if (retval == MAPI_E_SUCCESS) { - switch(opnum) { - case op_MAPI_Release: - offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvb, offset, pinfo, tree, di, drep); - break; - case op_MAPI_OpenFolder: - offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep); - break; - case op_MAPI_GetProps: - offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvb, offset, pinfo, tree, di, drep); - break; -/* case op_MAPI_OpenMsgStore: */ -/* offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvb, offset, pinfo, tree, di, drep); */ -/* break; */ - default: - offset += param - 6; - } - } - } else { - /* we don't decode notifications within the dissector yet */ - offset += param - 1; + offset = mapi_dissect_element_SyncUploadStateStreamContinue_req_LogonId(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_SyncUploadStateStreamContinue_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncUploadStateStreamContinue_req_StreamDataSize, hf_mapi_SyncUploadStateStreamContinue_req_StreamDataValue, 0); + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; + return offset; +} +int +mapi_dissect_struct_SyncImportMessageMove_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset = offset; + di->no_align = TRUE; + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportMessageMove_req); } - proto_item_set_len(item, offset - old_offset); + offset = mapi_dissect_element_SyncImportMessageMove_req_LogonId(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_SyncImportMessageMove_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_req_SourceFolderIdSize, hf_mapi_SyncImportMessageMove_req_SourceFolderIdValue, 0); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_req_SourceMessageIdSize, hf_mapi_SyncImportMessageMove_req_SourceMessageIdValue, 0); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_req_PredecessorChangeListSize, hf_mapi_SyncImportMessageMove_req_PredecessorChangeListValue, 0); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_req_DestinationMessageIdSize, hf_mapi_SyncImportMessageMove_req_DestinationMessageIdValue, 0); + offset = uint32_size_uint8_buffer(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_req_ChangeNumberSize, hf_mapi_SyncImportMessageMove_req_ChangeNumberValue, 0); + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; return offset; } -static int -mapi_dissect_element_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +/* IDL: bitmap { */ +/* IDL: PUBLIC = 0x2 , */ +/* IDL: HOME_LOGON = 0x4 , */ +/* IDL: TAKE_OWNERSHIP = 0x8 , */ +/* IDL: ALTERNATE_SERVER = 0x100 , */ +/* IDL: IGNORE_HOME_MDB = 0x200 , */ +/* IDL: NO_MAIL = 0x400 , */ +/* IDL: USE_PER_MDB_REPLID_MAPPING = 0x010000000 , */ +/* IDL: } */ +int +mapi_dissect_bitmap_OpenFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - offset = mapi_dissect_element_EcDoRpc_response_(tvb, offset, pinfo, tree, di, drep); + proto_item *item= NULL; + static int * const mapi_OpenFlags_fields[] = { + &hf_mapi_OpenFlags_PUBLIC, + &hf_mapi_OpenFlags_HOME_LOGON, + &hf_mapi_OpenFlags_TAKE_OWNERSHIP, + &hf_mapi_OpenFlags_ALTERNATE_SERVER, + &hf_mapi_OpenFlags_IGNORE_HOME_MDB, + &hf_mapi_OpenFlags_NO_MAIL, + &hf_mapi_OpenFlags_USE_PER_MDB_REPLID_MAPPING, + NULL + }; + guint32 flags; + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_OpenFlags, mapi_OpenFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + if (!flags) + proto_item_append_text(item, ": (No values set)"); + if (flags & (~0x1000070e)) { + flags &= (~0x1000070e); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } return offset; } -static int -mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_bitmap_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - guint32 size; - int start_offset = offset; - guint8 *decrypted_data; - tvbuff_t *decrypted_tvb; - const guint8 *ptr; - gint reported_len; - guint16 pdu_len; - guint32 i; - proto_tree *tr = NULL; - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_response, &size); - proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size); - reported_len = tvb_reported_length_remaining(tvb, offset); - if ((guint32) reported_len > size) { - reported_len = size; + proto_item *item; + static int * const mapi_StoreState_fields[] = { + &hf_mapi_StoreState_STORE_HAS_SEARCHES, + NULL + }; + guint32 flags; + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_StoreState, mapi_StoreState_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + if (!flags) + proto_item_append_text(item, ": (No values set)"); + if (flags & (~0x10000000)) { + flags &= (~0x10000000); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } - if (size > (guint32) reported_len) { - size = reported_len; + return offset; +} +int +mapi_dissect_struct_Logon_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset= offset; + guint32 returnValue; + di->no_align = TRUE; + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Logon_repl); } - ptr = tvb_get_ptr(tvb, offset, size); - decrypted_data = (guint8 *)wmem_alloc(pinfo->pool, size); - for (i = 0; i < size; i++) { - decrypted_data[i] = ptr[i] ^ 0xA5; + offset = mapi_dissect_element_Logon_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_ReturnValue, 0, &returnValue); + if (returnValue == 0x0){ + // 2.2.3.1.2 RopLogon ROP Success Response Buffer + guint8 LogonFlags= 0; + offset = mapi_dissect_enum_LogonFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_LogonFlags, &LogonFlags); + if (LogonFlags == 0x1){ + // Private + offset = mapi_dissect_element_Logon_repl_FolderIds(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ResponseFlags(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_MailboxGuid(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ReplId(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ReplGuid(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_LogonTime(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_GwartTime(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_StoreState(tvb, offset, pinfo, tree, di, drep); + } else { + // Public + offset = mapi_dissect_element_Logon_repl_FolderIds(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ReplId(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ReplGuid(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_PerUserGuid(tvb, offset, pinfo, tree, di, drep); + } + } else if (returnValue == 0x00000478){ + // 2.2.1.1.2 RopLogon ROP Redirect Response Buffer + offset = mapi_dissect_enum_LogonFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_LogonFlags, 0); + offset = mapi_dissect_element_Logon_repl_ServerNameSize(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Logon_repl_ServerName(tvb, offset, pinfo, tree, di, drep); } - decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len); - add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI"); - tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_response, NULL, "Decrypted MAPI PDU"); - pdu_len = tvb_get_letohs(decrypted_tvb, 0); - proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len); - proto_tree_add_item(tr, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA); - /* Analyze contents */ - offset = mapi_dissect_element_EcDoRpc_response__(decrypted_tvb, 0, pinfo, tr, di, drep); - /* Analyze mapi handles */ - offset = mapi_dissect_element_request_handles_cnf(decrypted_tvb, offset, pinfo, tr, di, drep); - return start_offset + offset + 4; + proto_item_set_len(item, offset-old_offset); + di->no_align = oldalign; + return offset; } -static int -mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) + #define RHEF_Compressed 0x0001 + #define RHEF_XorMagic 0x0002 + #define RHEF_Last 0x0004 +int dissect_RPC_HEADER_EXT(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, tvbuff_t **ppUncomp_tvb) { - guint16 length; - tvbuff_t *subtvb; - length = tvb_get_letohs(tvb, offset); - subtvb = tvb_new_subset_length_caplen(tvb, offset, length, length); - offset += 2; - while (offset < length) { - offset = mapi_dissect_struct_EcDoRpc_MAPI_REPL(subtvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_mapi_repl, length - offset); + proto_tree *hTree = NULL; + proto_item *rpcItem = NULL; + guint16 flags; + guint16 compressedSize= 0, uncompressedSize= 0; + int old_offset= offset; + ALIGN_TO_2_BYTES; + if (parent_tree) { + rpcItem = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + hTree = proto_item_add_subtree(rpcItem, ett_mapi_RPC_HEADER_EXT); + } + offset = mapi_dissect_element_RPC_HEADER_EXT_Version(tvb, offset, pinfo, hTree, di, drep); + proto_item *flagItem; + static int * const mapi_RPC_HEADER_EXT_Flags_fields[] = { + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed, + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic, + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last, + NULL + }; + ALIGN_TO_2_BYTES; + flagItem = proto_tree_add_bitmask_with_flags(hTree, tvb, offset, hf_mapi_RPC_HEADER_EXT_Flags, + ett_mapi_RPC_HEADER_EXT_Flags, mapi_RPC_HEADER_EXT_Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + offset = dissect_ndr_uint16(tvb, offset, pinfo, hTree, di, drep, -1, &flags); + if (!flags) + proto_item_append_text(flagItem, ": (No values set)"); + if (flags & (~0x00000007)) { + flags &= (~0x00000007); + proto_item_append_text(flagItem, "Unknown bitmap value 0x%x", flags); + } + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, hTree, di, drep, hf_mapi_RPC_HEADER_EXT_Size, 0, &compressedSize); + offset = PIDL_dissect_uint16_val(tvb, offset, pinfo, hTree, di, drep, hf_mapi_RPC_HEADER_EXT_SizeActual, 0, &uncompressedSize); + proto_item_set_len(flagItem, 2); + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_2_BYTES; } + bool last = RHEF_Last == (flags & RHEF_Last); + bool compressed = RHEF_Compressed == (flags & RHEF_Compressed); + bool xored = RHEF_XorMagic == (flags & RHEF_XorMagic); + if (!last){ + // TODO: Currently we don't support multiple buffers of RPC_HEADER_EXT. + return offset; + } + if (compressed && xored){ + // TODO: Currently we don't support both compressed and Xored + return offset; + } + if (compressed){ + *ppUncomp_tvb= tvb_child_uncompress_lz77(tvb, tvb, offset, compressedSize); + } else if (xored){ + *ppUncomp_tvb= mapi_deobfuscate(tvb, offset, pinfo, uncompressedSize); + } else if (!compressed && !xored) { + *ppUncomp_tvb = tvb_new_subset_length(tvb, offset, uncompressedSize); + } else { + return offset; + } + if (!(*ppUncomp_tvb) || tvb_reported_length(*ppUncomp_tvb) != uncompressedSize) { + *ppUncomp_tvb= NULL; + return offset; + } + offset += compressedSize; + proto_item_set_len(rpcItem, offset-old_offset); return offset; } -/*************************/ -/* EcDoRpc Function 0x2 */ -static int -mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_struct_AuxInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - int origin_offset; - origin_offset = offset; + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset= offset; + tvbuff_t *uncomp_tvb = NULL; + ALIGN_TO_4_BYTES; + if(di->conformant_run){ + return offset; + } if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_repl); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AuxInfo); + } + if (di->ptype == PDU_REQ){ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AuxInfo_auxInSize, NULL); + } + offset = dissect_RPC_HEADER_EXT(tvb, offset, pinfo, tree, di, drep, di->ptype == PDU_REQ ? hf_mapi_AuxInfo_RpcHeaderExtension : hf_mapi_AuxInfoOut_RpcHeaderExtension, &uncomp_tvb); + if (!uncomp_tvb) { + return offset; + } + proto_item_set_len(item, offset-old_offset); + add_new_data_source(pinfo, uncomp_tvb, "Decrypted MAPI AuxInfo"); + { + tree = proto_tree_add_subtree(tree, uncomp_tvb, 0, tvb_reported_length(uncomp_tvb), ett_mapi_connect_request, NULL, "Decrypted MAPI AuxInfo"); + mapi_dissect_element_AuxInfo_auxHeader(uncomp_tvb, 0, pinfo, tree, di, drep); + } + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; } - old_offset = offset; - proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown1, tvb, old_offset, 2, ENC_LITTLE_ENDIAN); - offset += 2; - proto_item_set_len(item, offset - origin_offset); return offset; } -/*************************/ -/* EcDoRpc Function 0x7 */ -static int -mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_RgbInOut(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int origin_offset; - /**** Function parameters ****/ - guint16 length; - origin_offset = offset; + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset= offset; + tvbuff_t *uncomp_tvb = NULL; if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, di->ptype == PDU_REQ ? ett_mapi_RgbIn : ett_mapi_RgbOut); + } + if (di->ptype == PDU_REQ){ + offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, di->ptype == PDU_REQ ? hf_mapi_RgbInSize : hf_mapi_RgbOutSize, NULL); + } + offset = dissect_RPC_HEADER_EXT(tvb, offset, pinfo, tree, di, drep, di->ptype == PDU_REQ ? hf_mapi_RgbIn_RpcHeaderExtension : hf_mapi_RgbOut_RpcHeaderExtension, &uncomp_tvb); + if (!uncomp_tvb) { + return offset; + } + proto_item_set_len(item, offset-old_offset); + add_new_data_source(pinfo, uncomp_tvb, di->ptype == PDU_REQ ? "Decrypted MAPI ROPIn PDU" : "Decrypted MAPI ROPOut PDU"); + { + int uncompressed_offset= 0; + guint16 total_length; + item = proto_tree_add_item(tree, di->ptype == PDU_REQ ? hf_mapi_RgbIn_ropIn : hf_mapi_RgbOut_ropOut, uncomp_tvb, 0, tvb_reported_length(uncomp_tvb), ENC_NA); + tree = proto_item_add_subtree(item, di->ptype == PDU_REQ ? ett_mapi_RgbIn : ett_mapi_RgbOut); + uncompressed_offset = PIDL_dissect_uint16_val(uncomp_tvb, uncompressed_offset, pinfo, tree, di, drep, di->ptype == PDU_REQ ? hf_mapi_ROPInputBuffer_ropSize : hf_mapi_ROPOutputBuffer_ropSize, 0, &total_length); + while((guint)(uncompressed_offset) < total_length){ + if (di->ptype == PDU_REQ){ + uncompressed_offset = mapi_dissect_struct_RopInput(uncomp_tvb, uncompressed_offset,pinfo,tree,di,drep,hf_mapi_ROPInputBuffer_rop,0); + } else { + uncompressed_offset = mapi_dissect_struct_RopOutput(uncomp_tvb, uncompressed_offset,pinfo,tree,di,drep,hf_mapi_ROPOutputBuffer_rop,0); + } + } } - proto_tree_add_item(tree, hf_mapi_EcDoRpc_layout, tvb, offset, 1, ENC_NA); - offset += 1; - length = tvb_reported_length_remaining(tvb, offset); - proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 0, length); - offset += length; - proto_item_set_len(item, offset - origin_offset); + ALIGN_TO_5_BYTES return offset; } -/*************************/ -/* EcDoRpc Function 0xFE */ -/* static int -mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +int +mapi_dissect_struct_RgbIn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - int origin_offset; - origin_offset = offset; - old_offset = offset; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenMsgStore, tvb, offset, -1, TRUE); - tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_repl); + return mapi_dissect_RgbInOut(tvb, offset, pinfo, parent_tree, di, drep, hf_index); +} +int +dissect_EcDoRpcExt2_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + if (length == 0){ + return offset; + } + return mapi_dissect_struct_RgbOut(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_rgbOut, 0); +} +static int +mapi_dissect_element_EcDoRpcExt2_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoRpcExt2_RgbOut); +} +int +dissect_EcDoRpcExt_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + if (length == 0){ + return offset; + } + return mapi_dissect_struct_RgbOut(tvb, offset, pinfo, parent_tree, di, drep, hf_mapi_mapi_EcDoRpcExt_rgbOut, 0); +} +static int +mapi_dissect_element_EcDoRpcExt_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoRpcExt_RgbOut); +} +int +mapi_dissect_struct_RgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + return mapi_dissect_RgbInOut(tvb, offset, pinfo, parent_tree, di, drep, hf_index); +} + + +/* IDL: enum { */ +/* IDL: MAPI_E_SUCCESS=0x00000000, */ +/* IDL: MAPI_E_NO_SUPPORT=0x80040102, */ +/* IDL: MAPI_E_BAD_CHARWIDTH=0x80040103, */ +/* IDL: MAPI_E_STRING_TOO_LONG=0x80040105, */ +/* IDL: MAPI_E_UNKNOWN_FLAGS=0x80040106, */ +/* IDL: MAPI_E_INVALID_ENTRYID=0x80040107, */ +/* IDL: MAPI_E_INVALID_OBJECT=0x80040108, */ +/* IDL: MAPI_E_OBJECT_CHANGED=0x80040109, */ +/* IDL: MAPI_E_OBJECT_DELETED=0x8004010A, */ +/* IDL: MAPI_E_BUSY=0x8004010B, */ +/* IDL: MAPI_E_NOT_ENOUGH_DISK=0x8004010D, */ +/* IDL: MAPI_E_NOT_ENOUGH_RESOURCES=0x8004010E, */ +/* IDL: MAPI_E_NOT_FOUND=0x8004010F, */ +/* IDL: MAPI_E_VERSION=0x80040110, */ +/* IDL: MAPI_E_LOGON_FAILED=0x80040111, */ +/* IDL: MAPI_E_SESSION_LIMIT=0x80040112, */ +/* IDL: MAPI_E_USER_CANCEL=0x80040113, */ +/* IDL: MAPI_E_UNABLE_TO_ABORT=0x80040114, */ +/* IDL: MAPI_E_NETWORK_ERROR=0x80040115, */ +/* IDL: MAPI_E_DISK_ERROR=0x80040116, */ +/* IDL: MAPI_E_TOO_COMPLEX=0x80040117, */ +/* IDL: MAPI_E_BAD_COLUMN=0x80040118, */ +/* IDL: MAPI_E_EXTENDED_ERROR=0x80040119, */ +/* IDL: MAPI_E_COMPUTED=0x8004011A, */ +/* IDL: MAPI_E_CORRUPT_DATA=0x8004011B, */ +/* IDL: MAPI_E_UNCONFIGURED=0x8004011C, */ +/* IDL: MAPI_E_FAILONEPROVIDER=0x8004011D, */ +/* IDL: MAPI_E_UNKNOWN_CPID=0x8004011E, */ +/* IDL: MAPI_E_UNKNOWN_LCID=0x8004011F, */ +/* IDL: MAPI_E_PASSWORD_CHANGE_REQUIRED=0x80040120, */ +/* IDL: MAPI_E_PASSWORD_EXPIRED=0x80040121, */ +/* IDL: MAPI_E_INVALID_WORKSTATION_ACCOUNT=0x80040122, */ +/* IDL: MAPI_E_INVALID_ACCESS_TIME=0x80040123, */ +/* IDL: MAPI_E_ACCOUNT_DISABLED=0x80040124, */ +/* IDL: MAPI_E_END_OF_SESSION=0x80040200, */ +/* IDL: MAPI_E_UNKNOWN_ENTRYID=0x80040201, */ +/* IDL: MAPI_E_MISSING_REQUIRED_COLUMN=0x80040202, */ +/* IDL: MAPI_W_NO_SERVICE=0x80040203, */ +/* IDL: MAPI_E_BAD_VALUE=0x80040301, */ +/* IDL: MAPI_E_INVALID_TYPE=0x80040302, */ +/* IDL: MAPI_E_TYPE_NO_SUPPORT=0x80040303, */ +/* IDL: MAPI_E_UNEXPECTED_TYPE=0x80040304, */ +/* IDL: MAPI_E_TOO_BIG=0x80040305, */ +/* IDL: MAPI_E_DECLINE_COPY=0x80040306, */ +/* IDL: MAPI_E_UNEXPECTED_ID=0x80040307, */ +/* IDL: MAPI_W_ERRORS_RETURNED=0x80040380, */ +/* IDL: MAPI_E_UNABLE_TO_COMPLETE=0x80040400, */ +/* IDL: MAPI_E_TIMEOUT=0x80040401, */ +/* IDL: MAPI_E_TABLE_EMPTY=0x80040402, */ +/* IDL: MAPI_E_TABLE_TOO_BIG=0x80040403, */ +/* IDL: MAPI_E_INVALID_BOOKMARK=0x80040405, */ +/* IDL: MAPI_W_POSITION_CHANGED=0x80040481, */ +/* IDL: MAPI_W_APPROX_COUNT=0x80040482, */ +/* IDL: MAPI_E_WAIT=0x80040500, */ +/* IDL: MAPI_E_CANCEL=0x80040501, */ +/* IDL: MAPI_E_NOT_ME=0x80040502, */ +/* IDL: MAPI_W_CANCEL_MESSAGE=0x80040580, */ +/* IDL: MAPI_E_CORRUPT_STORE=0x80040600, */ +/* IDL: MAPI_E_NOT_IN_QUEUE=0x80040601, */ +/* IDL: MAPI_E_NO_SUPPRESS=0x80040602, */ +/* IDL: MAPI_E_COLLISION=0x80040604, */ +/* IDL: MAPI_E_NOT_INITIALIZED=0x80040605, */ +/* IDL: MAPI_E_NON_STANDARD=0x80040606, */ +/* IDL: MAPI_E_NO_RECIPIENTS=0x80040607, */ +/* IDL: MAPI_E_SUBMITTED=0x80040608, */ +/* IDL: MAPI_E_HAS_FOLDERS=0x80040609, */ +/* IDL: MAPI_E_HAS_MESSAGES=0x8004060A, */ +/* IDL: MAPI_E_FOLDER_CYCLE=0x8004060B, */ +/* IDL: MAPI_W_PARTIAL_COMPLETION=0x80040680, */ +/* IDL: MAPI_E_AMBIGUOUS_RECIP=0x80040700, */ +/* IDL: MAPI_E_RESERVED=0xFFFFFFFF, */ +/* IDL: } */ + +int +mapi_dissect_enum_MAPISTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_) +{ + guint32 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; } - offset = mapi_dissect_element_OpenMsgStore_repl_PR_OBJECT_TYPE(tvb, offset, pinfo, tree, di, drep); - proto_item_set_len(item, offset - origin_offset); return offset; - }*/ +} /* IDL: enum { */ @@ -7759,95 +12258,6 @@ mapi_dissect_enum_MAPITAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo } -/* IDL: enum { */ -/* IDL: MAPI_E_SUCCESS=0x00000000, */ -/* IDL: MAPI_E_NO_SUPPORT=0x80040102, */ -/* IDL: MAPI_E_BAD_CHARWIDTH=0x80040103, */ -/* IDL: MAPI_E_STRING_TOO_LONG=0x80040105, */ -/* IDL: MAPI_E_UNKNOWN_FLAGS=0x80040106, */ -/* IDL: MAPI_E_INVALID_ENTRYID=0x80040107, */ -/* IDL: MAPI_E_INVALID_OBJECT=0x80040108, */ -/* IDL: MAPI_E_OBJECT_CHANGED=0x80040109, */ -/* IDL: MAPI_E_OBJECT_DELETED=0x8004010A, */ -/* IDL: MAPI_E_BUSY=0x8004010B, */ -/* IDL: MAPI_E_NOT_ENOUGH_DISK=0x8004010D, */ -/* IDL: MAPI_E_NOT_ENOUGH_RESOURCES=0x8004010E, */ -/* IDL: MAPI_E_NOT_FOUND=0x8004010F, */ -/* IDL: MAPI_E_VERSION=0x80040110, */ -/* IDL: MAPI_E_LOGON_FAILED=0x80040111, */ -/* IDL: MAPI_E_SESSION_LIMIT=0x80040112, */ -/* IDL: MAPI_E_USER_CANCEL=0x80040113, */ -/* IDL: MAPI_E_UNABLE_TO_ABORT=0x80040114, */ -/* IDL: MAPI_E_NETWORK_ERROR=0x80040115, */ -/* IDL: MAPI_E_DISK_ERROR=0x80040116, */ -/* IDL: MAPI_E_TOO_COMPLEX=0x80040117, */ -/* IDL: MAPI_E_BAD_COLUMN=0x80040118, */ -/* IDL: MAPI_E_EXTENDED_ERROR=0x80040119, */ -/* IDL: MAPI_E_COMPUTED=0x8004011A, */ -/* IDL: MAPI_E_CORRUPT_DATA=0x8004011B, */ -/* IDL: MAPI_E_UNCONFIGURED=0x8004011C, */ -/* IDL: MAPI_E_FAILONEPROVIDER=0x8004011D, */ -/* IDL: MAPI_E_UNKNOWN_CPID=0x8004011E, */ -/* IDL: MAPI_E_UNKNOWN_LCID=0x8004011F, */ -/* IDL: MAPI_E_PASSWORD_CHANGE_REQUIRED=0x80040120, */ -/* IDL: MAPI_E_PASSWORD_EXPIRED=0x80040121, */ -/* IDL: MAPI_E_INVALID_WORKSTATION_ACCOUNT=0x80040122, */ -/* IDL: MAPI_E_INVALID_ACCESS_TIME=0x80040123, */ -/* IDL: MAPI_E_ACCOUNT_DISABLED=0x80040124, */ -/* IDL: MAPI_E_END_OF_SESSION=0x80040200, */ -/* IDL: MAPI_E_UNKNOWN_ENTRYID=0x80040201, */ -/* IDL: MAPI_E_MISSING_REQUIRED_COLUMN=0x80040202, */ -/* IDL: MAPI_W_NO_SERVICE=0x80040203, */ -/* IDL: MAPI_E_BAD_VALUE=0x80040301, */ -/* IDL: MAPI_E_INVALID_TYPE=0x80040302, */ -/* IDL: MAPI_E_TYPE_NO_SUPPORT=0x80040303, */ -/* IDL: MAPI_E_UNEXPECTED_TYPE=0x80040304, */ -/* IDL: MAPI_E_TOO_BIG=0x80040305, */ -/* IDL: MAPI_E_DECLINE_COPY=0x80040306, */ -/* IDL: MAPI_E_UNEXPECTED_ID=0x80040307, */ -/* IDL: MAPI_W_ERRORS_RETURNED=0x80040380, */ -/* IDL: MAPI_E_UNABLE_TO_COMPLETE=0x80040400, */ -/* IDL: MAPI_E_TIMEOUT=0x80040401, */ -/* IDL: MAPI_E_TABLE_EMPTY=0x80040402, */ -/* IDL: MAPI_E_TABLE_TOO_BIG=0x80040403, */ -/* IDL: MAPI_E_INVALID_BOOKMARK=0x80040405, */ -/* IDL: MAPI_W_POSITION_CHANGED=0x80040481, */ -/* IDL: MAPI_W_APPROX_COUNT=0x80040482, */ -/* IDL: MAPI_E_WAIT=0x80040500, */ -/* IDL: MAPI_E_CANCEL=0x80040501, */ -/* IDL: MAPI_E_NOT_ME=0x80040502, */ -/* IDL: MAPI_W_CANCEL_MESSAGE=0x80040580, */ -/* IDL: MAPI_E_CORRUPT_STORE=0x80040600, */ -/* IDL: MAPI_E_NOT_IN_QUEUE=0x80040601, */ -/* IDL: MAPI_E_NO_SUPPRESS=0x80040602, */ -/* IDL: MAPI_E_COLLISION=0x80040604, */ -/* IDL: MAPI_E_NOT_INITIALIZED=0x80040605, */ -/* IDL: MAPI_E_NON_STANDARD=0x80040606, */ -/* IDL: MAPI_E_NO_RECIPIENTS=0x80040607, */ -/* IDL: MAPI_E_SUBMITTED=0x80040608, */ -/* IDL: MAPI_E_HAS_FOLDERS=0x80040609, */ -/* IDL: MAPI_E_HAS_MESSAGES=0x8004060A, */ -/* IDL: MAPI_E_FOLDER_CYCLE=0x8004060B, */ -/* IDL: MAPI_W_PARTIAL_COMPLETION=0x80040680, */ -/* IDL: MAPI_E_AMBIGUOUS_RECIP=0x80040700, */ -/* IDL: MAPI_E_RESERVED=0xFFFFFFFF, */ -/* IDL: } */ - -int -mapi_dissect_enum_MAPISTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_) -{ - guint32 parameter=0; - if (param) { - parameter = *param; - } - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); - if (param) { - *param = parameter; - } - return offset; -} - - /* IDL: struct datablob { */ /* IDL: [unique(1)] uint8 *data; */ /* IDL: uint8 length; */ @@ -7909,59 +12319,6 @@ mapi_dissect_struct_DATA_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi } -/* IDL: struct { */ -/* IDL: uint32 language; */ -/* IDL: uint32 method; */ -/* IDL: } */ - -static int -mapi_dissect_element_input_locale_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_input_locale_language, 0); - - return offset; -} - -static int -mapi_dissect_element_input_locale_method(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_input_locale_method, 0); - - return offset; -} - -int -mapi_dissect_struct_input_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) -{ - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - - ALIGN_TO_4_BYTES; - - old_offset = offset; - - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_input_locale); - } - - offset = mapi_dissect_element_input_locale_language(tvb, offset, pinfo, tree, di, drep); - - offset = mapi_dissect_element_input_locale_method(tvb, offset, pinfo, tree, di, drep); - - - proto_item_set_len(item, offset-old_offset); - - - if (di->call_data->flags & DCERPC_IS_NDR64) { - ALIGN_TO_4_BYTES; - } - - return offset; -} - - /* IDL: enum { */ /* IDL: MAPI_STORE=0x1, */ /* IDL: MAPI_ADDRBOOK=0x2, */ @@ -8031,65 +12388,181 @@ mapi_dissect_enum_ACLRIGHTS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf /* IDL: enum { */ -/* IDL: op_MAPI_Release=0x1, */ -/* IDL: op_MAPI_OpenFolder=0x2, */ -/* IDL: op_MAPI_OpenMessage=0x3, */ -/* IDL: op_MAPI_GetHierarchyTable=0x4, */ -/* IDL: op_MAPI_GetContentsTable=0x5, */ -/* IDL: op_MAPI_CreateMessage=0x6, */ -/* IDL: op_MAPI_GetProps=0x7, */ -/* IDL: op_MAPI_GetPropsAll=0x8, */ -/* IDL: op_MAPI_GetPropList=0x9, */ -/* IDL: op_MAPI_SetProps=0xa, */ -/* IDL: op_MAPI_DeleteProps=0xb, */ -/* IDL: op_MAPI_SaveChangesMessage=0xc, */ -/* IDL: op_MAPI_ModifyRecipients=0xe, */ -/* IDL: op_MAPI_SetReadFlags=0x11, */ -/* IDL: op_MAPI_SetColumns=0x12, */ -/* IDL: op_MAPI_SortTable=0x13, */ -/* IDL: op_MAPI_Restrict=0x14, */ -/* IDL: op_MAPI_QueryRows=0x15, */ -/* IDL: op_MAPI_GetRowCount=0x17, */ -/* IDL: op_MAPI_SeekRow=0x18, */ -/* IDL: op_MAPI_SeekRowBookmark=0x19, */ -/* IDL: op_MAPI_SeekRowApprox=0x1a, */ -/* IDL: op_MAPI_CreateBookmark=0x1b, */ -/* IDL: op_MAPI_CreateFolder=0x1c, */ -/* IDL: op_MAPI_DeleteFolder=0x1d, */ -/* IDL: op_MAPI_DeleteMessages=0x1e, */ -/* IDL: op_MAPI_GetMessageStatus=0x1f, */ -/* IDL: op_MAPI_SetMessageStatus=0x20, */ -/* IDL: op_MAPI_GetAttachmentTable=0x21, */ -/* IDL: op_MAPI_OpenAttach=0x22, */ -/* IDL: op_MAPI_CreateAttach=0x23, */ -/* IDL: op_MAPI_DeleteAttach=0x24, */ -/* IDL: op_MAPI_SaveChanges=0x25, */ -/* IDL: op_MAPI_SetReceiveFolder=0x26, */ -/* IDL: op_MAPI_GetReceiveFolder=0x27, */ -/* IDL: op_MAPI_Advise=0x29, */ -/* IDL: op_MAPI_Notify=0x2a, */ -/* IDL: op_MAPI_OpenStream=0x2b, */ -/* IDL: op_MAPI_ReadStream=0x2c, */ -/* IDL: op_MAPI_WriteStream=0x2d, */ -/* IDL: op_MAPI_SetSearchCriteria=0x30, */ -/* IDL: op_MAPI_GetSearchCriteria=0x31, */ -/* IDL: op_MAPI_SubmitMessage=0x32, */ -/* IDL: op_MAPI_CopyMessages=0x33, */ -/* IDL: op_MAPI_QueryColumns=0x37, */ -/* IDL: op_MAPI_GetTable=0x3e, */ -/* IDL: op_MAPI_ModifyTable=0x40, */ -/* IDL: op_MAPI_FindRow=0x4f, */ -/* IDL: op_MAPI_AddressTypes=0x49, */ -/* IDL: op_MAPI_GetNamesFromIDs=0x55, */ -/* IDL: op_MAPI_GetIDsFromNames=0x56, */ -/* IDL: op_MAPI_EmptyFolder=0x58, */ -/* IDL: op_MAPI_QueryNamesFromIDs=0x5f, */ -/* IDL: op_MAPI_GetReceiveFolderTable=0x68, */ -/* IDL: op_MAPI_OpenMsgStore=0xfe, */ -/* IDL: } */ - -int -mapi_dissect_enum_MAPI_OPNUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +/* IDL: RopNone=0x00, */ +/* IDL: RopRelease=0x01, */ +/* IDL: RopOpenFolder=0x02, */ +/* IDL: RopOpenMessage=0x03, */ +/* IDL: RopGetHierarchyTable=0x04, */ +/* IDL: RopGetContentsTable=0x05, */ +/* IDL: RopCreateMessage=0x06, */ +/* IDL: RopGetPropertiesSpecific=0x07, */ +/* IDL: RopGetPropertiesAll=0x08, */ +/* IDL: RopGetPropertiesList=0x09, */ +/* IDL: RopSetProperties=0x0a, */ +/* IDL: RopDeleteProperties=0x0b, */ +/* IDL: RopSaveChangesMessage=0x0c, */ +/* IDL: RopRemoveAllRecipients=0x0d, */ +/* IDL: RopModifyRecipients=0x0e, */ +/* IDL: RopReadRecipients=0x0f, */ +/* IDL: RopReloadCachedInformation=0x10, */ +/* IDL: RopSetMessageReadFlag=0x11, */ +/* IDL: RopSetColumns=0x12, */ +/* IDL: RopSortTable=0x13, */ +/* IDL: RopRestrict=0x14, */ +/* IDL: RopQueryRows=0x15, */ +/* IDL: RopGetStatus=0x16, */ +/* IDL: RopQueryPosition=0x17, */ +/* IDL: RopSeekRow=0x18, */ +/* IDL: RopSeekRowBookmark=0x19, */ +/* IDL: RopSeekRowFractional=0x1a, */ +/* IDL: RopCreateBookmark=0x1b, */ +/* IDL: RopCreateFolder=0x1c, */ +/* IDL: RopDeleteFolder=0x1d, */ +/* IDL: RopDeleteMessages=0x1e, */ +/* IDL: RopGetMessageStatus=0x1f, */ +/* IDL: RopSetMessageStatus=0x20, */ +/* IDL: RopGetAttachmentTable=0x21, */ +/* IDL: RopOpenAttachment=0x22, */ +/* IDL: RopCreateAttachment=0x23, */ +/* IDL: RopDeleteAttachment=0x24, */ +/* IDL: RopSaveChangesAttachment=0x25, */ +/* IDL: RopSetReceiveFolder=0x26, */ +/* IDL: RopGetReceiveFolder=0x27, */ +/* IDL: RopSpoolerRules=0x28, */ +/* IDL: RopRegisterNotification=0x29, */ +/* IDL: RopNotify=0x2a, */ +/* IDL: RopOpenStream=0x2b, */ +/* IDL: RopReadStream=0x2c, */ +/* IDL: RopWriteStream=0x2d, */ +/* IDL: RopSeekStream=0x2e, */ +/* IDL: RopSetStreamSize=0x2f, */ +/* IDL: RopSetSearchCriteria=0x30, */ +/* IDL: RopGetSearchCriteria=0x31, */ +/* IDL: RopSubmitMessage=0x32, */ +/* IDL: RopMoveCopyMessages=0x33, */ +/* IDL: RopAbortSubmit=0x34, */ +/* IDL: RopMoveFolder=0x35, */ +/* IDL: RopCopyFolder=0x36, */ +/* IDL: RopQueryColumnsAll=0x37, */ +/* IDL: RopAbort=0x38, */ +/* IDL: RopCopyTo=0x39, */ +/* IDL: RopCopyToStream=0x3a, */ +/* IDL: RopCloneStream=0x3b, */ +/* IDL: RopRegisterTableNotification=0x3c, */ +/* IDL: RopDeregisterTableNotification=0x3d, */ +/* IDL: RopGetPermissionsTable=0x3e, */ +/* IDL: RopGetRulesTable=0x3f, */ +/* IDL: RopModifyPermissions=0x40, */ +/* IDL: RopModifyRules=0x41, */ +/* IDL: RopGetOwningServers=0x42, */ +/* IDL: RopLongTermIdFromId=0x43, */ +/* IDL: RopIdFromLongTermId=0x44, */ +/* IDL: RopPublicFolderIsGhosted=0x45, */ +/* IDL: RopOpenEmbeddedMessage=0x46, */ +/* IDL: RopSetSpooler=0x47, */ +/* IDL: RopSpoolerLockMessage=0x48, */ +/* IDL: RopGetAddressTypes=0x49, */ +/* IDL: RopTransportSend=0x4a, */ +/* IDL: RopFastTransferSourceCopyMessages=0x4b, */ +/* IDL: RopFastTransferSourceCopyFolder=0x4c, */ +/* IDL: RopFastTransferSourceCopyTo=0x4d, */ +/* IDL: RopFastTransferSourceGetBuffer=0x4e, */ +/* IDL: RopFindRow=0x4f, */ +/* IDL: RopProgress=0x50, */ +/* IDL: RopTransportNewMail=0x51, */ +/* IDL: RopGetValidAttachments=0x52, */ +/* IDL: RopFastTransferDestinationConfigure=0x53, */ +/* IDL: RopFastTransferDestinationPutBuffer=0x54, */ +/* IDL: RopGetNamesFromPropertyIds=0x55, */ +/* IDL: RopGetPropertyIdsFromNames=0x56, */ +/* IDL: RopUpdateDeferredActionMessages=0x57, */ +/* IDL: RopEmptyFolder=0x58, */ +/* IDL: RopExpandRow=0x59, */ +/* IDL: RopCollapseRow=0x5a, */ +/* IDL: RopLockRegionStream=0x5b, */ +/* IDL: RopUnlockRegionStream=0x5c, */ +/* IDL: RopCommitStream=0x5d, */ +/* IDL: RopGetStreamSize=0x5e, */ +/* IDL: RopQueryNamedProperties=0x5f, */ +/* IDL: RopGetPerUserLongTermIds=0x60, */ +/* IDL: RopGetPerUserGuid=0x61, */ +/* IDL: RopFlushPerUser=0x62, */ +/* IDL: RopReadPerUserInformation=0x63, */ +/* IDL: RopWritePerUserInformation=0x64, */ +/* IDL: RopCacheCcnRead=0x65, */ +/* IDL: RopSetReadFlags=0x66, */ +/* IDL: RopCopyProperties=0x67, */ +/* IDL: RopGetReceiveFolderTable=0x68, */ +/* IDL: RopFastTransferSourceCopyProperties=0x69, */ +/* IDL: RopFastTransferDestinationCopyProperties=0x6a, */ +/* IDL: RopGetCollapseState=0x6b, */ +/* IDL: RopSetCollapseState=0x6c, */ +/* IDL: RopGetTransportFolder=0x6d, */ +/* IDL: RopPending=0x6e, */ +/* IDL: RopOptionsData=0x6f, */ +/* IDL: RopSynchronizationConfigure=0x70, */ +/* IDL: RopIncrState=0x71, */ +/* IDL: RopSynchronizationImportMessageChange=0x72, */ +/* IDL: RopSynchronizationImportHierarchyChange=0x73, */ +/* IDL: RopSynchronizationImportDeletes=0x74, */ +/* IDL: RopSynchronizationUploadStateStreamBegin=0x75, */ +/* IDL: RopSynchronizationUploadStateStreamContinue=0x76, */ +/* IDL: RopSynchronizationUploadStateStreamEnd=0x77, */ +/* IDL: RopSynchronizationImportMessageMove=0x78, */ +/* IDL: RopSetPropertiesNoReplicate=0x79, */ +/* IDL: RopDeletePropertiesNoReplicate=0x7a, */ +/* IDL: RopGetStoreState=0x7b, */ +/* IDL: RopGetRights=0x7c, */ +/* IDL: RopGetAllPerUserLtids=0x7d, */ +/* IDL: RopSynchronizationOpenCollector=0x7e, */ +/* IDL: RopGetLocalReplicaIds=0x7f, */ +/* IDL: RopSynchronizationImportReadStateChanges=0x80, */ +/* IDL: RopResetTable=0x81, */ +/* IDL: RopSynchronizationGetTransferState=0x82, */ +/* IDL: RopOpenAdvisor=0x83, */ +/* IDL: RopRegICSNotifs=0x84, */ +/* IDL: RopOpenCStream=0x85, */ +/* IDL: RopTellVersion=0x86, */ +/* IDL: RopOpenPublicFolderByName=0x87, */ +/* IDL: RopSetSyncNotificationGuid=0x88, */ +/* IDL: RopFreeBookmark=0x89, */ +/* IDL: RopWriteAndCommitStream=0x90, */ +/* IDL: RopHardDeleteMessages=0x91, */ +/* IDL: RopHardDeleteMessagesAndSubfolders=0x92, */ +/* IDL: RopSetLocalReplicaMidsetDeleted=0x93, */ +/* IDL: RopTransportDeliverMessage=0x94, */ +/* IDL: RopTransportDoneWithMessage=0x95, */ +/* IDL: RopIdFromLegacyDN=0x96, */ +/* IDL: RopSetAuthenticatedContext=0x97, */ +/* IDL: RopCopyToEx=0x98, */ +/* IDL: RopImportMsgChangePartial=0x99, */ +/* IDL: RopSetMessageFlags=0x9a, */ +/* IDL: RopMoveCopyMessagesEx=0x9b, */ +/* IDL: RopFXSrcGetBufferEx=0x9c, */ +/* IDL: RopFXDstPutBufferEx=0x9d, */ +/* IDL: RopTransportDeliverMessage2=0x9e, */ +/* IDL: RopCreateMessageEx=0x9f, */ +/* IDL: RopMoveCopyMessagesEID=0xA0, */ +/* IDL: RopTransportDupDlvCheck=0xA1, */ +/* IDL: RopPrereadMessages=0xA2, */ +/* IDL: RopWriteStreamExtended=0xA3, */ +/* IDL: RopGetContentsTableExtended=0xA4, */ +/* IDL: RopStartScope=0xA5, */ +/* IDL: RopEndScope=0xA6, */ +/* IDL: RopEchoString=0xC8, */ +/* IDL: RopEchoInt=0xC9, */ +/* IDL: RopEchoBinary=0xCA, */ +/* IDL: RopBackoff=0xF9, */ +/* IDL: RopExtendedError=0xFA, */ +/* IDL: RopBookmarkReturned=0xFB, */ +/* IDL: RopFidReturned=0xFC, */ +/* IDL: RopHsotReturned=0xFd, */ +/* IDL: RopLogon=0xFE, */ +/* IDL: RopBufferTooSmall=0xFF, */ +/* IDL: } */ + +int +mapi_dissect_enum_ROP_OPNUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) { guint8 parameter=0; if (param) { @@ -8104,53 +12577,60 @@ mapi_dissect_enum_MAPI_OPNUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin /* IDL: struct { */ -/* IDL: uint32 dwLowDateTime; */ -/* IDL: uint32 dwHighDateTime; */ +/* IDL: uint16 cb; */ +/* IDL: [flag(NDR_BUFFERS)] [size_is(cb)] uint8 lpb[*]; */ /* IDL: } */ static int -mapi_dissect_element_FILETIME_dwLowDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_SBinary_short_cb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FILETIME_dwLowDateTime, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SBinary_short_cb, 0); return offset; } static int -mapi_dissect_element_FILETIME_dwHighDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_SBinary_short_lpb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FILETIME_dwHighDateTime, 0); + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SBinary_short_lpb_); + + return offset; +} + +static int +mapi_dissect_element_SBinary_short_lpb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SBinary_short_lpb, 0); return offset; } int -mapi_dissect_struct_FILETIME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_SBinary_short(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item = NULL; proto_tree *tree = NULL; + gboolean oldalign = di->no_align; int old_offset; - ALIGN_TO_4_BYTES; + di->no_align = TRUE; old_offset = offset; if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_FILETIME); + tree = proto_item_add_subtree(item, ett_mapi_SBinary_short); } - offset = mapi_dissect_element_FILETIME_dwLowDateTime(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_SBinary_short_cb(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_FILETIME_dwHighDateTime(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_SBinary_short_lpb(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); - if (di->call_data->flags & DCERPC_IS_NDR64) { - ALIGN_TO_4_BYTES; - } + di->no_align = oldalign; return offset; } @@ -8158,9 +12638,64 @@ mapi_dissect_struct_FILETIME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin /* IDL: struct { */ /* IDL: uint32 cValues; */ -/* IDL: uint32 lpl[cValues]; */ +/* IDL: [size_is(cValues)] uint32 lpl[*]; */ /* IDL: } */ +static int +mapi_dissect_element_MV_LONG_STRUCT_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_MV_LONG_STRUCT_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_MV_LONG_STRUCT_lpl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_MV_LONG_STRUCT_lpl_); + + return offset; +} + +static int +mapi_dissect_element_MV_LONG_STRUCT_lpl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_MV_LONG_STRUCT_lpl, 0); + + return offset; +} + +int +mapi_dissect_struct_MV_LONG_STRUCT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_MV_LONG_STRUCT); + } + + offset = mapi_dissect_element_MV_LONG_STRUCT_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MV_LONG_STRUCT_lpl(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + /* IDL: struct { */ /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lppszA; */ @@ -8169,7 +12704,7 @@ mapi_dissect_struct_FILETIME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin static int mapi_dissect_element_LPSTR_lppszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_LPSTR_lppszA , 0); + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_mapi_LPSTR_lppszA , 0); return offset; } @@ -8187,7 +12722,7 @@ mapi_dissect_struct_LPSTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_LPSTR); + tree = proto_item_add_subtree(item, ett_mapi_mapi_LPSTR); } offset = mapi_dissect_element_LPSTR_lppszA(tvb, offset, pinfo, tree, di, drep); @@ -8206,56 +12741,465 @@ mapi_dissect_struct_LPSTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo /* IDL: struct { */ /* IDL: uint32 cValues; */ -/* IDL: LPSTR strings[cValues]; */ +/* IDL: [size_is(cValues)] mapi_LPSTR strings[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SLPSTRArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SLPSTRArray_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SLPSTRArray_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SLPSTRArray_strings_); + + return offset; +} + +static int +mapi_dissect_element_SLPSTRArray_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LPSTR(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SLPSTRArray_strings,0); + + return offset; +} + +int +mapi_dissect_struct_SLPSTRArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SLPSTRArray); + } + + offset = mapi_dissect_element_SLPSTRArray_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SLPSTRArray_strings(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string lppszW; */ +/* IDL: } */ + +static int +mapi_dissect_element_LPWSTR_lppszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_mapi_LPWSTR_lppszW , 0); + + return offset; +} + +int +mapi_dissect_struct_LPWSTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_LPWSTR); + } + + offset = mapi_dissect_element_LPWSTR_lppszW(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 cValues; */ +/* IDL: [size_is(cValues)] mapi_LPWSTR strings[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SPLSTRArrayW_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPLSTRArrayW_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SPLSTRArrayW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPLSTRArrayW_strings_); + + return offset; +} + +static int +mapi_dissect_element_SPLSTRArrayW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LPWSTR(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPLSTRArrayW_strings,0); + + return offset; +} + +int +mapi_dissect_struct_SPLSTRArrayW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPLSTRArrayW); + } + + offset = mapi_dissect_element_SPLSTRArrayW_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SPLSTRArrayW_strings(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 cValues; */ +/* IDL: [size_is(cValues)] SBinary_short bin[*]; */ /* IDL: } */ +static int +mapi_dissect_element_SBinaryArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SBinaryArray_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SBinaryArray_bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SBinaryArray_bin_); + + return offset; +} + +static int +mapi_dissect_element_SBinaryArray_bin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SBinaryArray_bin,0); + + return offset; +} + +int +mapi_dissect_struct_SBinaryArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SBinaryArray); + } + + offset = mapi_dissect_element_SBinaryArray_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SBinaryArray_bin(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + /* IDL: struct { */ /* IDL: uint32 cValues; */ -/* IDL: GUID lpguid[cValues]; */ +/* IDL: [size_is(cValues)] GUID lpguid[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SGuidArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SGuidArray_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SGuidArray_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SGuidArray_lpguid_); + + return offset; +} + +static int +mapi_dissect_element_SGuidArray_lpguid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SGuidArray_lpguid, NULL); + + return offset; +} + +int +mapi_dissect_struct_SGuidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SGuidArray); + } + + offset = mapi_dissect_element_SGuidArray_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SGuidArray_lpguid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 wrap[0x8000]; */ /* IDL: } */ +static int +mapi_dissect_element_SRestriction_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0x8000; i++) + offset = mapi_dissect_element_SRestriction_wrap_wrap_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SRestriction_wrap_wrap, 0); + + return offset; +} + +int +mapi_dissect_struct_SRestriction_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SRestriction_wrap); + } + + offset = mapi_dissect_element_SRestriction_wrap_wrap(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 wrap[0x8000]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SPropValue_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0x8000; i++) + offset = mapi_dissect_element_SPropValue_wrap_wrap_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_wrap_wrap, 0); + + return offset; +} + +int +mapi_dissect_struct_SPropValue_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropValue_wrap); + } + + offset = mapi_dissect_element_SPropValue_wrap_wrap(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 wrap[0x8000]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SPropValue_array_wrap_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0x8000; i++) + offset = mapi_dissect_element_SPropValue_array_wrap_wrap_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_array_wrap_wrap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_array_wrap_wrap, 0); + + return offset; +} + +int +mapi_dissect_struct_SPropValue_array_wrap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropValue_array_wrap); + } + + offset = mapi_dissect_element_SPropValue_array_wrap_wrap(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: enum { */ -/* IDL: PT_UNSPECIFIED=0x0000, */ -/* IDL: PT_NULL=0x0001, */ -/* IDL: PT_I2=0x0002, */ -/* IDL: PT_LONG=0x0003, */ -/* IDL: PT_R4=0x0004, */ -/* IDL: PT_DOUBLE=0x0005, */ -/* IDL: PT_CURRENCY=0x0006, */ -/* IDL: PT_APPTIME=0x0007, */ -/* IDL: PT_ERROR=0x000a, */ -/* IDL: PT_BOOLEAN=0x000b, */ -/* IDL: PT_OBJECT=0x000d, */ -/* IDL: PT_I8=0x0014, */ -/* IDL: PT_STRING8=0x001e, */ -/* IDL: PT_UNICODE=0x001f, */ -/* IDL: PT_SYSTIME=0x0040, */ -/* IDL: PT_CLSID=0x0048, */ -/* IDL: PT_BINARY=0x0102, */ -/* IDL: PT_MV_I2=0x1002, */ -/* IDL: PT_MV_LONG=0x1003, */ -/* IDL: PT_MV_R4=0x1004, */ -/* IDL: PT_MV_DOUBLE=0x1005, */ -/* IDL: PT_MV_CURRENCY=0x1006, */ -/* IDL: PT_MV_APPTIME=0x1007, */ -/* IDL: PT_MV_I8=0x1014, */ -/* IDL: PT_MV_STRING8=0x101e, */ -/* IDL: PT_MV_UNICODE=0x101f, */ -/* IDL: PT_MV_SYSTIME=0x1040, */ -/* IDL: PT_MV_CLSID=0x1048, */ -/* IDL: PT_MV_BINARY=0x1102, */ -/* IDL: } */ - -int -mapi_dissect_enum_property_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_) +/* IDL: ActionType_OP_MOVE=0x1, */ +/* IDL: ActionType_OP_COPY=0x2, */ +/* IDL: ActionType_OP_REPLY=0x3, */ +/* IDL: ActionType_OP_OOF_REPLY=0x4, */ +/* IDL: ActionType_OP_DEFER_ACTION=0x5, */ +/* IDL: ActionType_OP_BOUNCE=0x6, */ +/* IDL: ActionType_OP_FORWARD=0x7, */ +/* IDL: ActionType_OP_DELEGATE=0x8, */ +/* IDL: ActionType_OP_TAG=0x9, */ +/* IDL: ActionType_OP_DELETE=0xA, */ +/* IDL: ActionType_OP_MARK_AS_READ=0xB, */ +/* IDL: } */ + +int +mapi_dissect_enum_ActionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) { - guint32 parameter=0; + guint8 parameter=0; if (param) { parameter = *param; } - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); if (param) { *param = parameter; } @@ -8263,47 +13207,980 @@ mapi_dissect_enum_property_types(tvbuff_t *tvb _U_, int offset _U_, packet_info } -/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(property_types)] union { */ -/* IDL: [case(PT_I2)] [case(PT_I2)] uint16 i; */ -/* IDL: [case(PT_LONG)] [case(PT_LONG)] uint32 l; */ -/* IDL: [case(PT_DOUBLE)] [case(PT_DOUBLE)] dlong dbl; */ -/* IDL: [case(PT_ERROR)] [case(PT_ERROR)] uint32 err; */ -/* IDL: [case(PT_BOOLEAN)] [case(PT_BOOLEAN)] uint8 b; */ -/* IDL: [case(PT_I8)] [case(PT_I8)] dlong d; */ -/* IDL: [case(PT_STRING8)] [case(PT_STRING8)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ -/* IDL: [case(PT_UNICODE)] [case(PT_UNICODE)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ -/* IDL: [case(PT_SYSTIME)] [case(PT_SYSTIME)] FILETIME ft; */ -/* IDL: [case(PT_CLSID)] [case(PT_CLSID)] GUID lpguid; */ +/* IDL: struct { */ +/* IDL: uint8 FolderInThisStore; */ +/* IDL: SBinary_short StoreEID; */ +/* IDL: SBinary_short FolderEID; */ /* IDL: } */ static int -mapi_dissect_element_SPropValue_CTR_i(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_MoveCopy_Action_FolderInThisStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_i, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopy_Action_FolderInThisStore, 0); return offset; } static int -mapi_dissect_element_SPropValue_CTR_l(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_MoveCopy_Action_StoreEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_l, 0); + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_MoveCopy_Action_StoreEID,0); return offset; } static int -mapi_dissect_element_SPropValue_CTR_dbl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_MoveCopy_Action_FolderEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_dbl, NULL); + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_MoveCopy_Action_FolderEID,0); return offset; } +int +mapi_dissect_struct_MoveCopy_Action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MoveCopy_Action); + } + + offset = mapi_dissect_element_MoveCopy_Action_FolderInThisStore(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopy_Action_StoreEID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopy_Action_FolderEID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper ReplyTemplateFID; */ +/* IDL: hyper ReplyTemplateMID; */ +/* IDL: GUID ReplyTemplateGUID; */ +/* IDL: } */ + static int -mapi_dissect_element_SPropValue_CTR_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_ReplyOOF_Action_ReplyTemplateFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReplyOOF_Action_ReplyTemplateFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ReplyOOF_Action_ReplyTemplateMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReplyOOF_Action_ReplyTemplateMID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ReplyOOF_Action_ReplyTemplateGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReplyOOF_Action_ReplyTemplateGUID, NULL); + + return offset; +} + +int +mapi_dissect_struct_ReplyOOF_Action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReplyOOF_Action); + } + + offset = mapi_dissect_element_ReplyOOF_Action_ReplyTemplateFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReplyOOF_Action_ReplyTemplateMID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReplyOOF_Action_ReplyTemplateGUID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 Reserved; */ +/* IDL: mapi_SPropValue_array_wrap PropertyValue; */ +/* IDL: } */ + +static int +mapi_dissect_element_RecipientBlock_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientBlock_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientBlock_PropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array_wrap(tvb,offset,pinfo,tree,di,drep,hf_mapi_RecipientBlock_PropertyValue,0); + + return offset; +} + +int +mapi_dissect_struct_RecipientBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RecipientBlock); + } + + offset = mapi_dissect_element_RecipientBlock_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientBlock_PropertyValue(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: BOUNCE_MESSAGE_TOO_LARGE=0x0000000d, */ +/* IDL: BOUNCE_MESSAGE_NOT_DISPLAYED=0x0000001f, */ +/* IDL: BOUNCE_MESSAGE_DENIED=0x00000026, */ +/* IDL: } */ + +int +mapi_dissect_enum_BounceCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_) +{ + guint1632 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 RecipientCount; */ +/* IDL: [size_is(RecipientCount)] RecipientBlock RecipientBlock[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ForwardDelegate_Action_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ForwardDelegate_Action_RecipientCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ForwardDelegate_Action_RecipientBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ForwardDelegate_Action_RecipientBlock_); + + return offset; +} + +static int +mapi_dissect_element_ForwardDelegate_Action_RecipientBlock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipientBlock(tvb,offset,pinfo,tree,di,drep,hf_mapi_ForwardDelegate_Action_RecipientBlock,0); + + return offset; +} + +int +mapi_dissect_struct_ForwardDelegate_Action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_err, 0); + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ForwardDelegate_Action); + } + + offset = mapi_dissect_element_ForwardDelegate_Action_RecipientCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ForwardDelegate_Action_RecipientBlock(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(ActionType_OP_MOVE)] [case(ActionType_OP_MOVE)] MoveCopy_Action MoveAction; */ +/* IDL: [case(ActionType_OP_COPY)] [case(ActionType_OP_COPY)] MoveCopy_Action CopyAction; */ +/* IDL: [case(ActionType_OP_REPLY)] [case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction; */ +/* IDL: [case(ActionType_OP_OOF_REPLY)] [case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction; */ +/* IDL: [case(ActionType_OP_DEFER_ACTION)] [case(ActionType_OP_DEFER_ACTION)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB DeferAction; */ +/* IDL: [case(ActionType_OP_BOUNCE)] [case(ActionType_OP_BOUNCE)] BounceCode BounceCode; */ +/* IDL: [case(ActionType_OP_TAG)] [case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue; */ +/* IDL: [case(ActionType_OP_FORWARD)] [case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction; */ +/* IDL: [case(ActionType_OP_DELEGATE)] [case(ActionType_OP_DELEGATE)] ForwardDelegate_Action DelegateAction; */ +/* IDL: [case(ActionType_OP_DELETE)] [case(ActionType_OP_DELETE)] EMPTY ; */ +/* IDL: [case(ActionType_OP_MARK_AS_READ)] [case(ActionType_OP_MARK_AS_READ)] EMPTY ; */ +/* IDL: } */ + +static int +mapi_dissect_element_ActionData_MoveAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveCopy_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_MoveAction,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_CopyAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveCopy_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_CopyAction,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_ReplyAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReplyOOF_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_ReplyAction,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_ReplyOOFAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReplyOOF_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_ReplyOOFAction,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_DeferAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionData_DeferAction, 1); + + return offset; +} + +static int +mapi_dissect_element_ActionData_BounceCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_BounceCode(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionData_BounceCode, 0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_PropValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_wrap(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_PropValue,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_ForwardAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ForwardDelegate_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_ForwardAction,0); + + return offset; +} + +static int +mapi_dissect_element_ActionData_DelegateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ForwardDelegate_Action(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionData_DelegateAction,0); + + return offset; +} + +static int +mapi_dissect_ActionData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_ActionData, &item, "ActionData"); + } + + switch(level) { + case ActionType_OP_MOVE: + offset = mapi_dissect_element_ActionData_MoveAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_COPY: + offset = mapi_dissect_element_ActionData_CopyAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_REPLY: + offset = mapi_dissect_element_ActionData_ReplyAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_OOF_REPLY: + offset = mapi_dissect_element_ActionData_ReplyOOFAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_DEFER_ACTION: + offset = mapi_dissect_element_ActionData_DeferAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_BOUNCE: + offset = mapi_dissect_element_ActionData_BounceCode(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_TAG: + offset = mapi_dissect_element_ActionData_PropValue(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_FORWARD: + offset = mapi_dissect_element_ActionData_ForwardAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_DELEGATE: + offset = mapi_dissect_element_ActionData_DelegateAction(tvb, offset, pinfo, tree, di, drep); + break; + + case ActionType_OP_DELETE: + break; + + case ActionType_OP_MARK_AS_READ: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: ActionType ActionType; */ +/* IDL: uint32 ActionFlavor; */ +/* IDL: uint32 ActionFlags; */ +/* IDL: [switch_is(ActionType)] ActionData ActionDataBuffer; */ +/* IDL: } */ + +static int +mapi_dissect_element_ActionBlockData_ActionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ActionType) +{ + offset = mapi_dissect_enum_ActionType(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionBlockData_ActionType, ActionType); + + return offset; +} + +static int +mapi_dissect_element_ActionBlockData_ActionFlavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionBlockData_ActionFlavor, 0); + + return offset; +} + +static int +mapi_dissect_element_ActionBlockData_ActionFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionBlockData_ActionFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_ActionBlockData_ActionDataBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ActionType) +{ + offset = mapi_dissect_ActionData(tvb, offset, pinfo, tree, di, drep, hf_mapi_ActionBlockData_ActionDataBuffer, *ActionType); + + return offset; +} + +int +mapi_dissect_struct_ActionBlockData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 ActionType = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ActionBlockData); + } + + offset = mapi_dissect_element_ActionBlockData_ActionType(tvb, offset, pinfo, tree, di, drep, &ActionType); + + offset = mapi_dissect_element_ActionBlockData_ActionFlavor(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ActionBlockData_ActionFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ActionBlockData_ActionDataBuffer(tvb, offset, pinfo, tree, di, drep, &ActionType); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] ActionBlockData ActionBlockData; */ +/* IDL: } */ + +static int +mapi_dissect_element_ActionBlock_ActionBlockData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ActionBlockData(tvb,offset,pinfo,tree,di,drep,hf_mapi_ActionBlock_ActionBlockData,0); + + return offset; +} + +int +mapi_dissect_struct_ActionBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ActionBlock); + } + + offset = mapi_dissect_element_ActionBlock_ActionBlockData(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] ActionBlock ActionBlock[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_RuleAction_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RuleAction_count, 0); + + return offset; +} + +static int +mapi_dissect_element_RuleAction_ActionBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_RuleAction_ActionBlock_); + + return offset; +} + +static int +mapi_dissect_element_RuleAction_ActionBlock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ActionBlock(tvb,offset,pinfo,tree,di,drep,hf_mapi_RuleAction_ActionBlock,0); + + return offset; +} + +int +mapi_dissect_struct_RuleAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RuleAction); + } + + offset = mapi_dissect_element_RuleAction_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RuleAction_ActionBlock(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [range(0,100000)] uint32 cValues; */ +/* IDL: [size_is(cValues)] [unique(1)] uint16 *lpi; */ +/* IDL: } */ + +static int +mapi_dissect_element_ShortArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ShortArray_r_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_ShortArray_r_lpi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ShortArray_r_lpi_, NDR_POINTER_UNIQUE, "Pointer to Lpi (uint16)",hf_mapi_ShortArray_r_lpi); + + return offset; +} + +static int +mapi_dissect_element_ShortArray_r_lpi_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ShortArray_r_lpi__); + + return offset; +} + +static int +mapi_dissect_element_ShortArray_r_lpi__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ShortArray_r_lpi, 0); + + return offset; +} + +int +mapi_dissect_struct_ShortArray_r(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ShortArray_r); + } + + offset = mapi_dissect_element_ShortArray_r_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ShortArray_r_lpi(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [range(0,100000)] uint32 cValues; */ +/* IDL: [size_is(cValues)] [unique(1)] uint32 *lpl; */ +/* IDL: } */ + +static int +mapi_dissect_element_LongArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongArray_r_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_LongArray_r_lpl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_LongArray_r_lpl_, NDR_POINTER_UNIQUE, "Pointer to Lpl (uint32)",hf_mapi_LongArray_r_lpl); + + return offset; +} + +static int +mapi_dissect_element_LongArray_r_lpl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_LongArray_r_lpl__); + + return offset; +} + +static int +mapi_dissect_element_LongArray_r_lpl__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongArray_r_lpl, 0); + + return offset; +} + +int +mapi_dissect_struct_LongArray_r(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LongArray_r); + } + + offset = mapi_dissect_element_LongArray_r_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongArray_r_lpl(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [range(0,100000)] uint32 cValues; */ +/* IDL: [size_is(cValues)] [unique(1)] Binary_r *lpbin; */ +/* IDL: } */ + +static int +mapi_dissect_element_BinaryArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_BinaryArray_r_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_BinaryArray_r_lpbin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_BinaryArray_r_lpbin_, NDR_POINTER_UNIQUE, "Pointer to Lpbin (Binary_r)",hf_mapi_BinaryArray_r_lpbin); + + return offset; +} + +static int +mapi_dissect_element_BinaryArray_r_lpbin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_BinaryArray_r_lpbin__); + + return offset; +} + +static int +mapi_dissect_element_BinaryArray_r_lpbin__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Binary_r(tvb,offset,pinfo,tree,di,drep,hf_mapi_BinaryArray_r_lpbin,0); + + return offset; +} + +int +mapi_dissect_struct_BinaryArray_r(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_BinaryArray_r); + } + + offset = mapi_dissect_element_BinaryArray_r_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_BinaryArray_r_lpbin(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [range(0,100000)] uint32 cValues; */ +/* IDL: [size_is(cValues)] [unique(1)] FILETIME *lpft; */ +/* IDL: } */ + +static int +mapi_dissect_element_DateTimeArray_r_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_DateTimeArray_r_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_DateTimeArray_r_lpft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DateTimeArray_r_lpft_, NDR_POINTER_UNIQUE, "Pointer to Lpft (FILETIME)",hf_mapi_DateTimeArray_r_lpft); + + return offset; +} + +static int +mapi_dissect_element_DateTimeArray_r_lpft_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DateTimeArray_r_lpft__); + + return offset; +} + +static int +mapi_dissect_element_DateTimeArray_r_lpft__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FILETIME(tvb,offset,pinfo,tree,di,drep,hf_mapi_DateTimeArray_r_lpft,0); + + return offset; +} + +int +mapi_dissect_struct_DateTimeArray_r(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DateTimeArray_r); + } + + offset = mapi_dissect_element_DateTimeArray_r_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DateTimeArray_r_lpft(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [range(0,2097152)] uint32 cb; */ +/* IDL: [size_is(cb)] [unique(1)] uint8 *lpb; */ +/* IDL: } */ + +static int +mapi_dissect_element_Binary_r_cb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_Binary_r_cb, 0); + + return offset; +} + +static int +mapi_dissect_element_Binary_r_lpb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_Binary_r_lpb_, NDR_POINTER_UNIQUE, "Pointer to Lpb (uint8)",hf_mapi_Binary_r_lpb); + + return offset; +} + +static int +mapi_dissect_element_Binary_r_lpb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_Binary_r_lpb__); + + return offset; +} + +static int +mapi_dissect_element_Binary_r_lpb__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Binary_r_lpb, 0); + + return offset; +} + +int +mapi_dissect_struct_Binary_r(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Binary_r); + } + + offset = mapi_dissect_element_Binary_r_cb(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Binary_r_lpb(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: [switch_type(uint32)] union { */ +/* IDL: [case(0x2)] [case(0x2)] uint16 i; */ +/* IDL: [case(0x3)] [case(0x3)] uint32 l; */ +/* IDL: [case(0x5)] [case(0x5)] dlong dbl; */ +/* IDL: [case(0xb)] [case(0xb)] uint8 b; */ +/* IDL: [case(0x14)] [case(0x14)] dlong d; */ +/* IDL: [case(0x1e)] [case(0x1e)] [charset(DOS)] [unique(1)] uint8 *lpszA; */ +/* IDL: [case(0x102)] [case(0x102)] Binary_r bin; */ +/* IDL: [case(0xFB)] [case(0xFB)] SBinary_short svreid; */ +/* IDL: [case(0x1f)] [case(0x1f)] [charset(UTF16)] [unique(1)] uint16 *lpszW; */ +/* IDL: [case(0x48)] [case(0x48)] [unique(1)] GUID *lpguid; */ +/* IDL: [case(0xFD)] [case(0xFD)] mapi_SRestriction_wrap Restrictions; */ +/* IDL: [case(0xFE)] [case(0xFE)] RuleAction RuleAction; */ +/* IDL: [case(0x40)] [case(0x40)] FILETIME ft; */ +/* IDL: [case(0xa)] [case(0xa)] MAPISTATUS err; */ +/* IDL: [case(PT_MV_I2)] [case(PT_MV_I2)] ShortArray_r MVi; */ +/* IDL: [case(PT_MV_LONG)] [case(PT_MV_LONG)] LongArray_r MVl; */ +/* IDL: [case(PT_MV_STRING8)] [case(PT_MV_STRING8)] mapi_SLPSTRArray MVszA; */ +/* IDL: [case(PT_MV_BINARY)] [case(PT_MV_BINARY)] mapi_SBinaryArray MVbin; */ +/* IDL: [case(PT_MV_CLSID)] [case(PT_MV_CLSID)] mapi_SGuidArray MVguid; */ +/* IDL: [case(PT_MV_UNICODE)] [case(PT_MV_UNICODE)] mapi_SPLSTRArrayW MVszW; */ +/* IDL: [case(PT_MV_SYSTIME)] [case(PT_MV_SYSTIME)] DateTimeArray_r MVft; */ +/* IDL: [case(0x1)] [case(0x1)] uint32 null; */ +/* IDL: [case(0xd)] [case(0xd)] uint32 object; */ +/* IDL: } */ + +static int +mapi_dissect_element_SPropValue_CTR_i(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_i, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_l(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_l, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_dbl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_dbl, NULL); return offset; } @@ -8311,7 +14188,7 @@ mapi_dissect_element_SPropValue_CTR_err(tvbuff_t *tvb _U_, int offset _U_, packe static int mapi_dissect_element_SPropValue_CTR_b(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_b, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_b, 0); return offset; } @@ -8319,7 +14196,7 @@ mapi_dissect_element_SPropValue_CTR_b(tvbuff_t *tvb _U_, int offset _U_, packet_ static int mapi_dissect_element_SPropValue_CTR_d(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_d, NULL); + offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_d, NULL); return offset; } @@ -8327,7 +14204,34 @@ mapi_dissect_element_SPropValue_CTR_d(tvbuff_t *tvb _U_, int offset _U_, packet_ static int mapi_dissect_element_SPropValue_CTR_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_SPropValue_CTR_lpszA , 0); + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPropValue_CTR_lpszA_, NDR_POINTER_UNIQUE, "Pointer to LpszA (uint8)",hf_mapi_mapi_SPropValue_CTR_lpszA); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_lpszA_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_SPropValue_CTR_lpszA, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Binary_r(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_bin,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_svreid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_svreid,0); return offset; } @@ -8335,15 +14239,18 @@ mapi_dissect_element_SPropValue_CTR_lpszA(tvbuff_t *tvb _U_, int offset _U_, pac static int mapi_dissect_element_SPropValue_CTR_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_SPropValue_CTR_lpszW , 0); + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPropValue_CTR_lpszW_, NDR_POINTER_UNIQUE, "Pointer to LpszW (uint16)",hf_mapi_mapi_SPropValue_CTR_lpszW); return offset; } static int -mapi_dissect_element_SPropValue_CTR_ft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_SPropValue_CTR_lpszW_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_FILETIME(tvb,offset,pinfo,tree,di,drep,hf_mapi_SPropValue_CTR_ft,0); + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_mapi_mapi_SPropValue_CTR_lpszW, FALSE, &data); + proto_item_append_text(tree, ": %s", data); return offset; } @@ -8351,7 +14258,119 @@ mapi_dissect_element_SPropValue_CTR_ft(tvbuff_t *tvb _U_, int offset _U_, packet static int mapi_dissect_element_SPropValue_CTR_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_CTR_lpguid, NULL); + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPropValue_CTR_lpguid_, NDR_POINTER_UNIQUE, "Pointer to Lpguid (GUID)",hf_mapi_mapi_SPropValue_CTR_lpguid); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_lpguid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_lpguid, NULL); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_Restrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_wrap(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_Restrictions,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_RuleAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RuleAction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_RuleAction,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_ft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FILETIME(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_ft,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPISTATUS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_err, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ShortArray_r(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVi,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongArray_r(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVl,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SLPSTRArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVszA,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVbin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinaryArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVbin,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SGuidArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVguid,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPLSTRArrayW(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVszW,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_MVft(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DateTimeArray_r(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_CTR_MVft,0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_null, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_CTR_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_CTR_object, 0); return offset; } @@ -8366,51 +14385,103 @@ mapi_dissect_SPropValue_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf old_offset = offset; if (parent_tree) { - tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_SPropValue_CTR, &item, "SPropValue_CTR"); + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_mapi_SPropValue_CTR, &item, "mapi_SPropValue_CTR"); } offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level); - ALIGN_TO_4_BYTES; + ALIGN_TO_8_BYTES; switch(level) { - case PT_I2: + case 0x2: offset = mapi_dissect_element_SPropValue_CTR_i(tvb, offset, pinfo, tree, di, drep); break; - case PT_LONG: + case 0x3: offset = mapi_dissect_element_SPropValue_CTR_l(tvb, offset, pinfo, tree, di, drep); break; - case PT_DOUBLE: + case 0x5: offset = mapi_dissect_element_SPropValue_CTR_dbl(tvb, offset, pinfo, tree, di, drep); break; - case PT_ERROR: - offset = mapi_dissect_element_SPropValue_CTR_err(tvb, offset, pinfo, tree, di, drep); - break; - - case PT_BOOLEAN: + case 0xb: offset = mapi_dissect_element_SPropValue_CTR_b(tvb, offset, pinfo, tree, di, drep); break; - case PT_I8: + case 0x14: offset = mapi_dissect_element_SPropValue_CTR_d(tvb, offset, pinfo, tree, di, drep); break; - case PT_STRING8: + case 0x1e: offset = mapi_dissect_element_SPropValue_CTR_lpszA(tvb, offset, pinfo, tree, di, drep); break; - case PT_UNICODE: + case 0x102: + offset = mapi_dissect_element_SPropValue_CTR_bin(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xFB: + offset = mapi_dissect_element_SPropValue_CTR_svreid(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1f: offset = mapi_dissect_element_SPropValue_CTR_lpszW(tvb, offset, pinfo, tree, di, drep); break; - case PT_SYSTIME: + case 0x48: + offset = mapi_dissect_element_SPropValue_CTR_lpguid(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xFD: + offset = mapi_dissect_element_SPropValue_CTR_Restrictions(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xFE: + offset = mapi_dissect_element_SPropValue_CTR_RuleAction(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x40: offset = mapi_dissect_element_SPropValue_CTR_ft(tvb, offset, pinfo, tree, di, drep); break; - case PT_CLSID: - offset = mapi_dissect_element_SPropValue_CTR_lpguid(tvb, offset, pinfo, tree, di, drep); + case 0xa: + offset = mapi_dissect_element_SPropValue_CTR_err(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_I2: + offset = mapi_dissect_element_SPropValue_CTR_MVi(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_LONG: + offset = mapi_dissect_element_SPropValue_CTR_MVl(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_STRING8: + offset = mapi_dissect_element_SPropValue_CTR_MVszA(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_BINARY: + offset = mapi_dissect_element_SPropValue_CTR_MVbin(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_CLSID: + offset = mapi_dissect_element_SPropValue_CTR_MVguid(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_UNICODE: + offset = mapi_dissect_element_SPropValue_CTR_MVszW(tvb, offset, pinfo, tree, di, drep); + break; + + case PT_MV_SYSTIME: + offset = mapi_dissect_element_SPropValue_CTR_MVft(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1: + offset = mapi_dissect_element_SPropValue_CTR_null(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xd: + offset = mapi_dissect_element_SPropValue_CTR_object(tvb, offset, pinfo, tree, di, drep); break; } proto_item_set_len(item, offset-old_offset); @@ -8421,13 +14492,13 @@ mapi_dissect_SPropValue_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf /* IDL: struct { */ /* IDL: MAPITAGS ulPropTag; */ -/* IDL: [switch_is(ulPropTag&0xFFFF)] SPropValue_CTR value; */ +/* IDL: [switch_is(ulPropTag&0xFFFF)] mapi_SPropValue_CTR value; */ /* IDL: } */ static int mapi_dissect_element_SPropValue_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_SPropValue_ulPropTag, 0); + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_ulPropTag, 0); return offset; } @@ -8435,7 +14506,7 @@ mapi_dissect_element_SPropValue_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, pac static int mapi_dissect_element_SPropValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_SPropValue_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_property_types, 0); + offset = mapi_dissect_SPropValue_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_value, 0); return offset; } @@ -8454,7 +14525,7 @@ mapi_dissect_struct_SPropValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *p if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_SPropValue); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropValue); } offset = mapi_dissect_element_SPropValue_ulPropTag(tvb, offset, pinfo, tree, di, drep); @@ -8473,15 +14544,123 @@ mapi_dissect_struct_SPropValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *p /* IDL: struct { */ /* IDL: uint16 cValues; */ -/* IDL: [flag(LIBNDR_FLAG_REMAINING)] SPropValue lpProps[cValues]; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [size_is(cValues)] mapi_SPropValue lpProps[*]; */ /* IDL: } */ +static int +mapi_dissect_element_SPropValue_array_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropValue_array_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_array_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPropValue_array_lpProps_); + + return offset; +} + +static int +mapi_dissect_element_SPropValue_array_lpProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropValue_array_lpProps,0); + + return offset; +} + +int +mapi_dissect_struct_SPropValue_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropValue_array); + } + + offset = mapi_dissect_element_SPropValue_array_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SPropValue_array_lpProps(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: struct { */ /* IDL: uint16 cValues; */ -/* IDL: MAPITAGS aulPropTag[cValues]; */ +/* IDL: [size_is(cValues)] MAPITAGS aulPropTag[*]; */ /* IDL: } */ +static int +mapi_dissect_element_SPropTagArray_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropTagArray_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropTagArray_aulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SPropTagArray_aulPropTag_); + + return offset; +} + +static int +mapi_dissect_element_SPropTagArray_aulPropTag_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropTagArray_aulPropTag, 0); + + return offset; +} + +int +mapi_dissect_struct_SPropTagArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropTagArray); + } + + offset = mapi_dissect_element_SPropTagArray_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SPropTagArray_aulPropTag(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: enum { */ /* IDL: ROW_ADD=0x1, */ @@ -8505,19 +14684,28 @@ mapi_dissect_enum_ulRowFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin /* IDL: struct { */ -/* IDL: ulRowFlags ulRowFlags; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ /* IDL: } */ static int -mapi_dissect_element_SRow_ulRowFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_Release_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_Release_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_enum_ulRowFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRow_ulRowFlags, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); return offset; } int -mapi_dissect_struct_SRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_Release_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item = NULL; proto_tree *tree = NULL; @@ -8530,10 +14718,40 @@ mapi_dissect_struct_SRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _ if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_SRow); + tree = proto_item_add_subtree(item, ett_mapi_Release_req); } - offset = mapi_dissect_element_SRow_ulRowFlags(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_Release_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Release_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } proto_item_set_len(item, offset-old_offset); @@ -8545,20 +14763,154 @@ mapi_dissect_struct_SRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _ } +/* IDL: enum { */ +/* IDL: OpenModeFlags_Folder=0x0, */ +/* IDL: OpenModeFlags_SoftDeleted=0x4, */ +/* IDL: } */ + +int +mapi_dissect_enum_OpenFolder_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + /* IDL: struct { */ -/* IDL: uint8 padding; */ -/* IDL: uint16 cEntries; */ -/* IDL: SRow aEntries[cEntries]; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: hyper FolderId; */ +/* IDL: OpenFolder_OpenModeFlags OpenModeFlags; */ /* IDL: } */ +static int +mapi_dissect_element_OpenFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_OpenFolder_OpenModeFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_req_OpenModeFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_OpenFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_req); + } + + offset = mapi_dissect_element_OpenFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_req_OpenModeFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: struct { */ +/* IDL: uint16 ServerCount; */ +/* IDL: uint16 CheapServerCount; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [size_is(ServerCount)] string Servers[*]; */ /* IDL: } */ +static int +mapi_dissect_element_OpenFolder_Replicas_ServerCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_Replicas_ServerCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_Replicas_CheapServerCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_Replicas_CheapServerCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_Replicas_Servers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OpenFolder_Replicas_Servers_); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_Replicas_Servers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_OpenFolder_Replicas_Servers , 0); + + return offset; +} + int -mapi_dissect_struct_Release_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_OpenFolder_Replicas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item = NULL; + proto_tree *tree = NULL; gboolean oldalign = di->no_align; int old_offset; @@ -8568,8 +14920,15 @@ mapi_dissect_struct_Release_req(tvbuff_t *tvb _U_, int offset _U_, packet_info * if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_Replicas); } + offset = mapi_dissect_element_OpenFolder_Replicas_ServerCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_Replicas_CheapServerCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_Replicas_Servers(tvb, offset, pinfo, tree, di, drep); + proto_item_set_len(item, offset-old_offset); @@ -8580,13 +14939,82 @@ mapi_dissect_struct_Release_req(tvbuff_t *tvb _U_, int offset _U_, packet_info * } +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] OpenFolder_Replicas Replicas; */ +/* IDL: } */ + +static int +mapi_dissect_element_IsGhosted_Replicas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenFolder_Replicas(tvb,offset,pinfo,tree,di,drep,hf_mapi_IsGhosted_Replicas,0); + + return offset; +} + +static int +mapi_dissect_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_IsGhosted, &item, "IsGhosted"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_IsGhosted_Replicas(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + /* IDL: struct { */ +/* IDL: uint8 HasRules; */ +/* IDL: uint8 IsGhosted; */ +/* IDL: [switch_is(IsGhosted)] IsGhosted Ghost; */ /* IDL: } */ +static int +mapi_dissect_element_OpenFolder_Success_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_Success_HasRules, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_Success_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_Success_IsGhosted, *IsGhosted); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_Success_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = mapi_dissect_IsGhosted(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_Success_Ghost, *IsGhosted); + + return offset; +} + int -mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_OpenFolder_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { + guint8 IsGhosted = 0; proto_item *item = NULL; + proto_tree *tree = NULL; gboolean oldalign = di->no_align; int old_offset; @@ -8596,8 +15024,15 @@ mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_Success); } + offset = mapi_dissect_element_OpenFolder_Success_HasRules(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_Success_IsGhosted(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + offset = mapi_dissect_element_OpenFolder_Success_Ghost(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + proto_item_set_len(item, offset-old_offset); @@ -8608,62 +15043,340 @@ mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info } +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] OpenFolder_Success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenFolder_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenFolder_Success(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenFolder_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_OpenFolder_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_OpenFolder_repl_status, &item, "OpenFolder_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_OpenFolder_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + /* IDL: struct { */ -/* IDL: uint8 handle_idx; */ -/* IDL: hyper folder_id; */ -/* IDL: uint8 unknown; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] OpenFolder_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenFolder_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_OpenFolder_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_OpenFolder_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_OpenFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_repl); + } + + offset = mapi_dissect_element_OpenFolder_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenFolder_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_OpenFolder_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: StringType_NONE=0x0, */ +/* IDL: StringType_EMPTY=0x1, */ +/* IDL: StringType_STRING8=0x2, */ +/* IDL: StringType_UNICODE_REDUCED=0x3, */ +/* IDL: StringType_UNICODE=0x4, */ /* IDL: } */ +int +mapi_dissect_enum_StringType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] EMPTY ; */ +/* IDL: [case(0x2)] [case(0x2)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x3)] [case(0x3)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszW_reduced; */ +/* IDL: [case(0x4)] [case(0x4)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: } */ + +static int +mapi_dissect_element_String_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_String_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_String_lpszW_reduced(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_String_lpszW_reduced , 0); + + return offset; +} + +static int +mapi_dissect_element_String_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_String_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_String, &item, "String"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + break; + + case 0x2: + offset = mapi_dissect_element_String_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x3: + offset = mapi_dissect_element_String_lpszW_reduced(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x4: + offset = mapi_dissect_element_String_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} /* IDL: struct { */ -/* IDL: uint16 unknown; */ +/* IDL: StringType StringType; */ +/* IDL: [switch_is(StringType)] String String; */ +/* IDL: } */ + +static int +mapi_dissect_element_TypedString_StringType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *StringType) +{ + offset = mapi_dissect_enum_StringType(tvb, offset, pinfo, tree, di, drep, hf_mapi_TypedString_StringType, StringType); + + return offset; +} + +static int +mapi_dissect_element_TypedString_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *StringType) +{ + offset = mapi_dissect_String(tvb, offset, pinfo, tree, di, drep, hf_mapi_TypedString_String, *StringType); + + return offset; +} + +int +mapi_dissect_struct_TypedString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 StringType = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_TypedString); + } + + offset = mapi_dissect_element_TypedString_StringType(tvb, offset, pinfo, tree, di, drep, &StringType); + + offset = mapi_dissect_element_TypedString_String(tvb, offset, pinfo, tree, di, drep, &StringType); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: ReadOnly=0x0, */ +/* IDL: ReadWrite=0x1, */ +/* IDL: Create=0x3, */ +/* IDL: OpenSoftDelete=0x4, */ /* IDL: } */ +int +mapi_dissect_enum_OpenMessage_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + /* IDL: struct { */ -/* IDL: uint8 folder_handle_idx; */ -/* IDL: uint16 max_data; */ -/* IDL: hyper folder_id; */ -/* IDL: uint8 message_permissions; */ -/* IDL: hyper message_id; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint16 CodePageId; */ +/* IDL: hyper FolderId; */ +/* IDL: OpenMessage_OpenModeFlags OpenModeFlags; */ +/* IDL: hyper MessageId; */ /* IDL: } */ static int -mapi_dissect_element_OpenMessage_req_folder_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_OpenMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_folder_handle_idx, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); return offset; } static int -mapi_dissect_element_OpenMessage_req_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_OpenMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_max_data, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_CodePageId, 0); return offset; } static int -mapi_dissect_element_OpenMessage_req_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_OpenMessage_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_mapi_OpenMessage_req_folder_id); + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_FolderId, NULL); return offset; } static int -mapi_dissect_element_OpenMessage_req_message_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_OpenMessage_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_message_permissions, 0); + offset = mapi_dissect_enum_OpenMessage_OpenModeFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_OpenModeFlags, 0); return offset; } static int -mapi_dissect_element_OpenMessage_req_message_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_OpenMessage_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_mapi_OpenMessage_req_message_id); + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_req_MessageId, NULL); return offset; } @@ -8685,15 +15398,19 @@ mapi_dissect_struct_OpenMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_in tree = proto_item_add_subtree(item, ett_mapi_OpenMessage_req); } - offset = mapi_dissect_element_OpenMessage_req_folder_handle_idx(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_OpenMessage_req_max_data(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenMessage_req_CodePageId(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_OpenMessage_req_folder_id(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenMessage_req_FolderId(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_OpenMessage_req_message_permissions(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenMessage_req_OpenModeFlags(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_OpenMessage_req_message_id(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenMessage_req_MessageId(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); @@ -8715,13 +15432,13 @@ mapi_dissect_struct_OpenMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_in /* IDL: } */ int -mapi_dissect_enum_CODEPAGEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_) +mapi_dissect_enum_CODEPAGEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) { - guint32 parameter=0; + guint16 parameter=0; if (param) { parameter = *param; } - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); if (param) { *param = parameter; } @@ -8774,6 +15491,7 @@ mapi_dissect_enum_addr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf /* IDL: struct { */ /* IDL: uint8 organization_length; */ /* IDL: addr_type addr_type; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string username; */ /* IDL: } */ static int @@ -8792,6 +15510,14 @@ mapi_dissect_element_RecipExchange_addr_type(tvbuff_t *tvb _U_, int offset _U_, return offset; } +static int +mapi_dissect_element_RecipExchange_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_RecipExchange_username , 0); + + return offset; +} + int mapi_dissect_struct_RecipExchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { @@ -8813,6 +15539,8 @@ mapi_dissect_struct_RecipExchange(tvbuff_t *tvb _U_, int offset _U_, packet_info offset = mapi_dissect_element_RecipExchange_addr_type(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_RecipExchange_username(tvb, offset, pinfo, tree, di, drep); + proto_item_set_len(item, offset-old_offset); @@ -8851,13 +15579,6389 @@ mapi_dissect_struct_RecipSMTP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi } +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x1)] [case(0x1)] RecipExchange EXCHANGE; */ +/* IDL: [case(0x3)] [case(0x3)] RecipSMTP SMTP; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_recipient_type_EXCHANGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipExchange(tvb,offset,pinfo,tree,di,drep,hf_mapi_recipient_type_EXCHANGE,0); + + return offset; +} + +static int +mapi_dissect_element_recipient_type_SMTP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipSMTP(tvb,offset,pinfo,tree,di,drep,hf_mapi_recipient_type_SMTP,0); + + return offset; +} + +static int +mapi_dissect_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_type, &item, "recipient_type"); + } + + switch(level) { + case 0x1: + offset = mapi_dissect_element_recipient_type_EXCHANGE(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x3: + offset = mapi_dissect_element_recipient_type_SMTP(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x400)] [case(0x400)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x600)] [case(0x600)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_recipient_SimpleDisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_SimpleDisplayName_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_recipient_SimpleDisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_SimpleDisplayName_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_recipient_SimpleDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_SimpleDisplayName, &item, "recipient_SimpleDisplayName"); + } + + switch(level) { + case 0x0: + break; + + case 0x400: + offset = mapi_dissect_element_recipient_SimpleDisplayName_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x600: + offset = mapi_dissect_element_recipient_SimpleDisplayName_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x60)] [case(0x60)] EMPTY ; */ +/* IDL: [case(0x260)] [case(0x260)] EMPTY ; */ +/* IDL: [case(0x20)] [case(0x20)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x220)] [case(0x220)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_recipient_TransmittableDisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_TransmittableDisplayName_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_recipient_TransmittableDisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_TransmittableDisplayName_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_recipient_TransmittableDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_TransmittableDisplayName, &item, "recipient_TransmittableDisplayName"); + } + + switch(level) { + case 0x0: + break; + + case 0x60: + break; + + case 0x260: + break; + + case 0x20: + offset = mapi_dissect_element_recipient_TransmittableDisplayName_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x220: + offset = mapi_dissect_element_recipient_TransmittableDisplayName_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x10)] [case(0x10)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x210)] [case(0x210)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_recipient_DisplayName_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_DisplayName_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_recipient_DisplayName_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_DisplayName_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_recipient_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_DisplayName, &item, "recipient_DisplayName"); + } + + switch(level) { + case 0x0: + break; + + case 0x10: + offset = mapi_dissect_element_recipient_DisplayName_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x210: + offset = mapi_dissect_element_recipient_DisplayName_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x8)] [case(0x8)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x208)] [case(0x208)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_recipient_EmailAddress_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_EmailAddress_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_recipient_EmailAddress_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_EmailAddress_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_recipient_EmailAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_EmailAddress, &item, "recipient_EmailAddress"); + } + + switch(level) { + case 0x0: + break; + + case 0x8: + offset = mapi_dissect_element_recipient_EmailAddress_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x208: + offset = mapi_dissect_element_recipient_EmailAddress_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint16 RecipientFlags; */ +/* IDL: [switch_is(RecipientFlags&0x7)] recipient_type type; */ +/* IDL: [switch_is(RecipientFlags&0x208)] recipient_EmailAddress EmailAddress; */ +/* IDL: [switch_is(RecipientFlags&0x210)] recipient_DisplayName DisplayName; */ +/* IDL: [switch_is(RecipientFlags&0x600)] recipient_SimpleDisplayName SimpleDisplayName; */ +/* IDL: [switch_is(RecipientFlags&0x260)] recipient_TransmittableDisplayName TransmittableDisplayName; */ +/* IDL: uint16 prop_count; */ +/* IDL: uint8 layout; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prop_values; */ +/* IDL: } */ + +static int +mapi_dissect_element_RecipientRow_RecipientFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_RecipientFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_recipient_type(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_type, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_EmailAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_recipient_EmailAddress(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_EmailAddress, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_recipient_DisplayName(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_DisplayName, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_SimpleDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_recipient_SimpleDisplayName(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_SimpleDisplayName, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_TransmittableDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_recipient_TransmittableDisplayName(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_TransmittableDisplayName, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_prop_count, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_layout, 0); + + return offset; +} + +static int +mapi_dissect_element_RecipientRow_prop_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_RecipientRow_prop_values, 1); + + return offset; +} + +int +mapi_dissect_struct_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RecipientRow); + } + + offset = mapi_dissect_element_RecipientRow_RecipientFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_type(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_EmailAddress(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_DisplayName(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_SimpleDisplayName(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_TransmittableDisplayName(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_prop_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_layout(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RecipientRow_prop_values(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ulRecipClass RecipClass; */ +/* IDL: CODEPAGEID codepage; */ +/* IDL: uint16 Reserved; */ +/* IDL: [represent_as(uint16)] RecipientRow RecipientRow; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenMessage_recipients_RecipClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRecipClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_RecipClass, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_recipients_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_CODEPAGEID(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_codepage, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_recipients_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_recipients_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_recipients_RecipientRow,0); + + return offset; +} + +int +mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenMessage_recipients); + } + + offset = mapi_dissect_element_OpenMessage_recipients_RecipClass(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_recipients_codepage(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_recipients_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_recipients_RecipientRow(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasNamedProperties; */ +/* IDL: TypedString SubjectPrefix; */ +/* IDL: TypedString NormalizedSubject; */ +/* IDL: uint16 RecipientCount; */ +/* IDL: uint16 ColumnCount; */ +/* IDL: mapi_SPropTagArray RecipientColumns; */ +/* IDL: uint8 RowCount; */ +/* IDL: [size_is(RowCount)] OpenMessage_recipients recipients[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenMessage_Success_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_Success_HasNamedProperties, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_Success_SubjectPrefix,0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_Success_NormalizedSubject,0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_Success_RecipientCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_ColumnCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_Success_ColumnCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_Success_RecipientColumns,0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_Success_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_recipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OpenMessage_Success_recipients_); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_Success_recipients_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenMessage_recipients(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_Success_recipients,0); + + return offset; +} + +int +mapi_dissect_struct_OpenMessage_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenMessage_Success); + } + + offset = mapi_dissect_element_OpenMessage_Success_HasNamedProperties(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_SubjectPrefix(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_NormalizedSubject(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_RecipientCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_ColumnCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_RecipientColumns(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_Success_recipients(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] OpenMessage_Success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenMessage_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenMessage_Success(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_OpenMessage_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_OpenMessage_repl_status, &item, "OpenMessage_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_OpenMessage_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] OpenMessage_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenMessage_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_OpenMessage_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_OpenMessage_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_OpenMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenMessage_repl); + } + + offset = mapi_dissect_element_OpenMessage_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenMessage_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_OpenMessage_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: TableFlags_Depth = 0x4 , */ +/* IDL: TableFlags_DeferredErrors = 0x8 , */ +/* IDL: TableFlags_NoNotifications = 0x10 , */ +/* IDL: TableFlags_SoftDeletes = 0x20 , */ +/* IDL: TableFlags_UseUnicode = 0x40 , */ +/* IDL: TableFlags_SuppressNotifications = 0x80 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_TableFlags_fields[] = { + &hf_mapi_TableFlags_TableFlags_Depth, + &hf_mapi_TableFlags_TableFlags_DeferredErrors, + &hf_mapi_TableFlags_TableFlags_NoNotifications, + &hf_mapi_TableFlags_TableFlags_SoftDeletes, + &hf_mapi_TableFlags_TableFlags_UseUnicode, + &hf_mapi_TableFlags_TableFlags_SuppressNotifications, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_TableFlags, mapi_TableFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x000000fc)) { + flags &= (~0x000000fc); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: TableFlags TableFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetHierarchyTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetHierarchyTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetHierarchyTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetHierarchyTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_TableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetHierarchyTable_req_TableFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetHierarchyTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetHierarchyTable_req); + } + + offset = mapi_dissect_element_GetHierarchyTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetHierarchyTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetHierarchyTable_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetHierarchyTable_req_TableFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 RowCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetHierarchyTable_repl_success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetHierarchyTable_repl_success_RowCount, 0); + + return offset; +} + +int +mapi_dissect_struct_GetHierarchyTable_repl_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetHierarchyTable_repl_success); + } + + offset = mapi_dissect_element_GetHierarchyTable_repl_success_RowCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] GetHierarchyTable_repl_success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetHierarchyTable_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetHierarchyTable_repl_success(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetHierarchyTable_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_GetHierarchyTable_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_GetHierarchyTable_repl_status, &item, "GetHierarchyTable_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_GetHierarchyTable_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] GetHierarchyTable_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetHierarchyTable_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetHierarchyTable_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetHierarchyTable_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetHierarchyTable_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_GetHierarchyTable_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_GetHierarchyTable_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetHierarchyTable_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_GetHierarchyTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetHierarchyTable_repl); + } + + offset = mapi_dissect_element_GetHierarchyTable_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetHierarchyTable_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_GetHierarchyTable_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: TableFlags TableFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetContentsTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetContentsTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetContentsTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetContentsTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_TableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetContentsTable_req_TableFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetContentsTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetContentsTable_req); + } + + offset = mapi_dissect_element_GetContentsTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetContentsTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetContentsTable_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetContentsTable_req_TableFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 RowCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetContentsTable_repl_success_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetContentsTable_repl_success_RowCount, 0); + + return offset; +} + +int +mapi_dissect_struct_GetContentsTable_repl_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetContentsTable_repl_success); + } + + offset = mapi_dissect_element_GetContentsTable_repl_success_RowCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] GetContentsTable_repl_success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetContentsTable_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetContentsTable_repl_success(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetContentsTable_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_GetContentsTable_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_GetContentsTable_repl_status, &item, "GetContentsTable_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_GetContentsTable_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] GetContentsTable_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetContentsTable_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetContentsTable_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetContentsTable_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetContentsTable_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_GetContentsTable_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_GetContentsTable_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetContentsTable_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_GetContentsTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetContentsTable_repl); + } + + offset = mapi_dissect_element_GetContentsTable_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetContentsTable_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_GetContentsTable_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint16 CodePageId; */ +/* IDL: hyper FolderId; */ +/* IDL: uint8 AssociatedFlag; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_req_CodePageId, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_req_AssociatedFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_req_AssociatedFlag, 0); + + return offset; +} + +int +mapi_dissect_struct_CreateMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateMessage_req); + } + + offset = mapi_dissect_element_CreateMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_req_CodePageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_req_AssociatedFlag(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] hyper MessageId; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateMessage_MessageId_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_MessageId_MessageId, NULL); + + return offset; +} + +static int +mapi_dissect_CreateMessage_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_CreateMessage_MessageId, &item, "CreateMessage_MessageId"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_CreateMessage_MessageId_MessageId(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 HasMessageId; */ +/* IDL: [switch_is(HasMessageId)] CreateMessage_MessageId MessageId; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateMessage_repl_success_HasMessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasMessageId) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_repl_success_HasMessageId, *HasMessageId); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_repl_success_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasMessageId) +{ + offset = mapi_dissect_CreateMessage_MessageId(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_repl_success_MessageId, *HasMessageId); + + return offset; +} + +int +mapi_dissect_struct_CreateMessage_repl_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 HasMessageId = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateMessage_repl_success); + } + + offset = mapi_dissect_element_CreateMessage_repl_success_HasMessageId(tvb, offset, pinfo, tree, di, drep, &HasMessageId); + + offset = mapi_dissect_element_CreateMessage_repl_success_MessageId(tvb, offset, pinfo, tree, di, drep, &HasMessageId); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] CreateMessage_repl_success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateMessage_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateMessage_repl_success(tvb,offset,pinfo,tree,di,drep,hf_mapi_CreateMessage_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_CreateMessage_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_CreateMessage_repl_status, &item, "CreateMessage_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_CreateMessage_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] CreateMessage_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateMessage_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_CreateMessage_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_CreateMessage_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateMessage_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_CreateMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateMessage_repl); + } + + offset = mapi_dissect_element_CreateMessage_repl_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateMessage_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_CreateMessage_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 PropertySizeLimit; */ +/* IDL: uint16 WantUnicode; */ +/* IDL: uint16 prop_count; */ +/* IDL: [size_is(prop_count)] MAPITAGS properties[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_PropertySizeLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_PropertySizeLimit, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_WantUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_WantUnicode, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_prop_count, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetProps_req_properties_); + + return offset; +} + +static int +mapi_dissect_element_GetProps_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_properties, 0); + + return offset; +} + +int +mapi_dissect_struct_GetProps_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetProps_req); + } + + offset = mapi_dissect_element_GetProps_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_req_PropertySizeLimit(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_req_WantUnicode(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_req_prop_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_req_properties(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 layout; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prop_data; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetProps_repl_success_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_success_layout, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_repl_success_prop_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_success_prop_data, 1); + + return offset; +} + +int +mapi_dissect_struct_GetProps_repl_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl_success); + } + + offset = mapi_dissect_element_GetProps_repl_success_layout(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_repl_success_prop_data(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] GetProps_repl_success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetProps_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetProps_repl_success(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetProps_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_GetProps_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_GetProps_repl_status, &item, "GetProps_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_GetProps_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] GetProps_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetProps_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetProps_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_GetProps_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_GetProps_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_GetProps_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl); + } + + offset = mapi_dissect_element_GetProps_repl_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetProps_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_GetProps_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 PropertySizeLimit; */ +/* IDL: uint16 WantUnicode; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropsAll_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropsAll_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropsAll_req_PropertySizeLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropsAll_req_PropertySizeLimit, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropsAll_req_WantUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropsAll_req_WantUnicode, 0); + + return offset; +} + +int +mapi_dissect_struct_GetPropsAll_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPropsAll_req); + } + + offset = mapi_dissect_element_GetPropsAll_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropsAll_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropsAll_req_PropertySizeLimit(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropsAll_req_WantUnicode(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: mapi_SPropValue_array properties; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropsAll_repl_success_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetPropsAll_repl_success_properties,0); + + return offset; +} + +int +mapi_dissect_struct_GetPropsAll_repl_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPropsAll_repl_success); + } + + offset = mapi_dissect_element_GetPropsAll_repl_success_properties(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] GetPropsAll_repl_success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropsAll_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPropsAll_repl_success(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetPropsAll_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_GetPropsAll_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_GetPropsAll_repl_status, &item, "GetPropsAll_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_GetPropsAll_repl_status_Success(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] GetPropsAll_repl_status repl; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropsAll_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropsAll_repl_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropsAll_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropsAll_repl_ReturnValue, *ReturnValue); + + return offset; +} + +static int +mapi_dissect_element_GetPropsAll_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) +{ + offset = mapi_dissect_GetPropsAll_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropsAll_repl_repl, *ReturnValue); + + return offset; +} + +int +mapi_dissect_struct_GetPropsAll_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPropsAll_repl); + } + + offset = mapi_dissect_element_GetPropsAll_repl_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropsAll_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_GetPropsAll_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropList_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropList_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetPropList_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPropList_req); + } + + offset = mapi_dissect_element_GetPropList_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropList_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] MAPITAGS tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPropList_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropList_repl_count, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPropList_repl_tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetPropList_repl_tags_); + + return offset; +} + +static int +mapi_dissect_element_GetPropList_repl_tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPropList_repl_tags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetPropList_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPropList_repl); + } + + offset = mapi_dissect_element_GetPropList_repl_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPropList_repl_tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 index; */ +/* IDL: MAPITAGS property_tag; */ +/* IDL: MAPISTATUS error_code; */ +/* IDL: } */ + +static int +mapi_dissect_element_PropertyProblem_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_PropertyProblem_index, 0); + + return offset; +} + +static int +mapi_dissect_element_PropertyProblem_property_tag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_PropertyProblem_property_tag, 0); + + return offset; +} + +static int +mapi_dissect_element_PropertyProblem_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPISTATUS(tvb, offset, pinfo, tree, di, drep, hf_mapi_PropertyProblem_error_code, 0); + + return offset; +} + +int +mapi_dissect_struct_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_PropertyProblem); + } + + offset = mapi_dissect_element_PropertyProblem_index(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PropertyProblem_property_tag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PropertyProblem_error_code(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [represent_as(uint16)] mapi_SPropValue_array values; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetProps_req_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetProps_req_values,0); + + return offset; +} + +int +mapi_dissect_struct_SetProps_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetProps_req); + } + + offset = mapi_dissect_element_SetProps_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetProps_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetProps_req_values(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetProps_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetProps_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SetProps_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SetProps_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_SetProps_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetProps_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_SetProps_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetProps_repl); + } + + offset = mapi_dissect_element_SetProps_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetProps_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 PropertyTagCount; */ +/* IDL: [size_is(PropertyTagCount)] MAPITAGS tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteProps_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_req_PropertyTagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteProps_req_PropertyTagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_req_tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DeleteProps_req_tags_); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_req_tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteProps_req_tags, 0); + + return offset; +} + +int +mapi_dissect_struct_DeleteProps_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteProps_req); + } + + offset = mapi_dissect_element_DeleteProps_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteProps_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteProps_req_PropertyTagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteProps_req_tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteProps_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteProps_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DeleteProps_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_DeleteProps_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_DeleteProps_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_DeleteProps_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteProps_repl); + } + + offset = mapi_dissect_element_DeleteProps_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteProps_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: KeepOpenReadOnly=0x9, */ +/* IDL: KeepOpenReadWrite=0xA, */ +/* IDL: ForceSave=0xC, */ +/* IDL: } */ + +int +mapi_dissect_enum_SaveFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 ResponseHandleIndex; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 SaveFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_SaveChangesMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesMessage_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ResponseHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesMessage_req_SaveFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SaveChangesMessage_req_SaveFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_SaveChangesMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SaveChangesMessage_req); + } + + offset = mapi_dissect_element_SaveChangesMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesMessage_req_ResponseHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesMessage_req_SaveFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 handle_idx; */ +/* IDL: hyper MessageId; */ +/* IDL: } */ + +static int +mapi_dissect_element_SaveChangesMessage_repl_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SaveChangesMessage_repl_handle_idx, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesMessage_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SaveChangesMessage_repl_MessageId, NULL); + + return offset; +} + +int +mapi_dissect_struct_SaveChangesMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SaveChangesMessage_repl); + } + + offset = mapi_dissect_element_SaveChangesMessage_repl_handle_idx(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesMessage_repl_MessageId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 ulReserved; */ +/* IDL: } */ + +static int +mapi_dissect_element_RemoveAllRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_RemoveAllRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_RemoveAllRecipients_req_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_RemoveAllRecipients_req_ulReserved, 0); + + return offset; +} + +int +mapi_dissect_struct_RemoveAllRecipients_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RemoveAllRecipients_req); + } + + offset = mapi_dissect_element_RemoveAllRecipients_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RemoveAllRecipients_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RemoveAllRecipients_req_ulReserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_RemoveAllRecipients_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: MODRECIP_NULL=0x0, */ +/* IDL: MODRECIP_INVALID=0x1, */ +/* IDL: MODRECIP_ADD=0x2, */ +/* IDL: MODRECIP_MODIFY=0x4, */ +/* IDL: MODRECIP_REMOVE=0x8, */ +/* IDL: } */ + +int +mapi_dissect_enum_modrecip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 idx; */ +/* IDL: ulRecipClass RecipClass; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] RecipientRow RecipientRow; */ +/* IDL: } */ + +static int +mapi_dissect_element_ModifyRecipientRow_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRecipientRow_idx, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipientRow_RecipClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRecipClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRecipientRow_RecipClass, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_ModifyRecipientRow_RecipientRow,0); + + return offset; +} + +int +mapi_dissect_struct_ModifyRecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ModifyRecipientRow); + } + + offset = mapi_dissect_element_ModifyRecipientRow_idx(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipientRow_RecipClass(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipientRow_RecipientRow(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 prop_count; */ +/* IDL: [size_is(prop_count)] MAPITAGS properties[*]; */ +/* IDL: uint16 cValues; */ +/* IDL: [size_is(cValues)] ModifyRecipientRow RecipientRow[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ModifyRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRecipients_req_prop_count, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ModifyRecipients_req_properties_); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRecipients_req_properties, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRecipients_req_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ModifyRecipients_req_RecipientRow_); + + return offset; +} + +static int +mapi_dissect_element_ModifyRecipients_req_RecipientRow_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyRecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_ModifyRecipients_req_RecipientRow,0); + + return offset; +} + +int +mapi_dissect_struct_ModifyRecipients_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ModifyRecipients_req); + } + + offset = mapi_dissect_element_ModifyRecipients_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipients_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipients_req_prop_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipients_req_properties(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipients_req_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRecipients_req_RecipientRow(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_ModifyRecipients_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 RowId; */ +/* IDL: uint16 ulReserved; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadRecipients_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipients_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipients_req_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipients_req_RowId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipients_req_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipients_req_ulReserved, 0); + + return offset; +} + +int +mapi_dissect_struct_ReadRecipients_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadRecipients_req); + } + + offset = mapi_dissect_element_ReadRecipients_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipients_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipients_req_RowId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipients_req_ulReserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 RowId; */ +/* IDL: ulRecipClass RecipientType; */ +/* IDL: uint16 CodePageId; */ +/* IDL: uint16 ulReserved; */ +/* IDL: [represent_as(uint16)] RecipientRow RecipientRow; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadRecipientRow_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipientRow_RowId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipientRow_RecipientType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRecipClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipientRow_RecipientType, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipientRow_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipientRow_CodePageId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipientRow_ulReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipientRow_ulReserved, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReadRecipientRow_RecipientRow,0); + + return offset; +} + +int +mapi_dissect_struct_ReadRecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadRecipientRow); + } + + offset = mapi_dissect_element_ReadRecipientRow_RowId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipientRow_RecipientType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipientRow_CodePageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipientRow_ulReserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipientRow_RecipientRow(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 RowCount; */ +/* IDL: [size_is(RowCount)] ReadRecipientRow RecipientRows[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadRecipients_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadRecipients_repl_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipients_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ReadRecipients_repl_RecipientRows_); + + return offset; +} + +static int +mapi_dissect_element_ReadRecipients_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadRecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReadRecipients_repl_RecipientRows,0); + + return offset; +} + +int +mapi_dissect_struct_ReadRecipients_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadRecipients_repl); + } + + offset = mapi_dissect_element_ReadRecipients_repl_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadRecipients_repl_RecipientRows(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: ulRecipClass RecipientType; */ +/* IDL: uint16 CodePageId; */ +/* IDL: uint16 Reserved; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] RecipientRow RecipientRow; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenRecipientRow_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenRecipientRow_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenRecipientRow_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenRecipientRow_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenRecipientRow_RecipientType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRecipClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenRecipientRow_RecipientType, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenRecipientRow_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenRecipientRow_CodePageId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenRecipientRow_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenRecipientRow_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenRecipientRow_RecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenRecipientRow_RecipientRow,0); + + return offset; +} + +int +mapi_dissect_struct_OpenRecipientRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenRecipientRow); + } + + offset = mapi_dissect_element_OpenRecipientRow_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenRecipientRow_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenRecipientRow_RecipientType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenRecipientRow_CodePageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenRecipientRow_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenRecipientRow_RecipientRow(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 Reserved; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReloadCachedInformation_req_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReloadCachedInformation_req_Reserved, 0); + + return offset; +} + +int +mapi_dissect_struct_ReloadCachedInformation_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReloadCachedInformation_req); + } + + offset = mapi_dissect_element_ReloadCachedInformation_req_Reserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasNamedProperties; */ +/* IDL: TypedString SubjectPrefix; */ +/* IDL: TypedString NormalizedSubject; */ +/* IDL: uint16 RecipientCount; */ +/* IDL: mapi_SPropTagArray RecipientColumns; */ +/* IDL: uint8 RowCount; */ +/* IDL: [size_is(RowCount)] OpenRecipientRow RecipientRows[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReloadCachedInformation_repl_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReloadCachedInformation_repl_HasNamedProperties, 0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReloadCachedInformation_repl_SubjectPrefix,0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReloadCachedInformation_repl_NormalizedSubject,0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReloadCachedInformation_repl_RecipientCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReloadCachedInformation_repl_RecipientColumns,0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReloadCachedInformation_repl_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows_); + + return offset; +} + +static int +mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenRecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReloadCachedInformation_repl_RecipientRows,0); + + return offset; +} + +int +mapi_dissect_struct_ReloadCachedInformation_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReloadCachedInformation_repl); + } + + offset = mapi_dissect_element_ReloadCachedInformation_repl_HasNamedProperties(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_SubjectPrefix(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_NormalizedSubject(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_RecipientCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_RecipientColumns(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReloadCachedInformation_repl_RecipientRows(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: SUPPRESS_RECEIPT = 0x01 , */ +/* IDL: CLEAR_READ_FLAG = 0x04 , */ +/* IDL: MAPI_DEFERRED_ERRORS = 0x08 , */ +/* IDL: GENERATE_RECEIPT_ONLY = 0x10 , */ +/* IDL: CLEAR_RN_PENDING = 0x20 , */ +/* IDL: CLEAR_NRN_PENDING = 0x40 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_MSGFLAG_READ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_MSGFLAG_READ_fields[] = { + &hf_mapi_MSGFLAG_READ_SUPPRESS_RECEIPT, + &hf_mapi_MSGFLAG_READ_CLEAR_READ_FLAG, + &hf_mapi_MSGFLAG_READ_MAPI_DEFERRED_ERRORS, + &hf_mapi_MSGFLAG_READ_GENERATE_RECEIPT_ONLY, + &hf_mapi_MSGFLAG_READ_CLEAR_RN_PENDING, + &hf_mapi_MSGFLAG_READ_CLEAR_NRN_PENDING, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_MSGFLAG_READ, mapi_MSGFLAG_READ_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x0000007d)) { + flags &= (~0x0000007d); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 ResponseHandleIndex; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: MSGFLAG_READ ReadFlags; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB clientdata; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageReadFlag_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ResponseHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_req_ReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_MSGFLAG_READ(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_req_ReadFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_req_clientdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_req_clientdata, 1); + + return offset; +} + +int +mapi_dissect_struct_SetMessageReadFlag_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetMessageReadFlag_req); + } + + offset = mapi_dissect_element_SetMessageReadFlag_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageReadFlag_req_ResponseHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageReadFlag_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageReadFlag_req_ReadFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageReadFlag_req_clientdata(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] uint8 LogonId; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageReadFlag_LogonId_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_LogonId_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_SetMessageReadFlag_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_SetMessageReadFlag_LogonId, &item, "SetMessageReadFlag_LogonId"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_SetMessageReadFlag_LogonId_LogonId(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] uint8 ClientData[24]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 24; i++) + offset = mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_ClientData_ClientData, 0); + + return offset; +} + +static int +mapi_dissect_SetMessageReadFlag_ClientData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_SetMessageReadFlag_ClientData, &item, "SetMessageReadFlag_ClientData"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_SetMessageReadFlag_ClientData_ClientData(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 ReadStatusChanged; */ +/* IDL: [switch_is(ReadStatusChanged)] SetMessageReadFlag_LogonId LogonId; */ +/* IDL: [switch_is(ReadStatusChanged)] SetMessageReadFlag_ClientData ClientData; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageReadFlag_repl_ReadStatusChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_repl_ReadStatusChanged, *ReadStatusChanged); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_repl_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged) +{ + offset = mapi_dissect_SetMessageReadFlag_LogonId(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_repl_LogonId, *ReadStatusChanged); + + return offset; +} + +static int +mapi_dissect_element_SetMessageReadFlag_repl_ClientData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ReadStatusChanged) +{ + offset = mapi_dissect_SetMessageReadFlag_ClientData(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageReadFlag_repl_ClientData, *ReadStatusChanged); + + return offset; +} + +int +mapi_dissect_struct_SetMessageReadFlag_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 ReadStatusChanged = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetMessageReadFlag_repl); + } + + offset = mapi_dissect_element_SetMessageReadFlag_repl_ReadStatusChanged(tvb, offset, pinfo, tree, di, drep, &ReadStatusChanged); + + offset = mapi_dissect_element_SetMessageReadFlag_repl_LogonId(tvb, offset, pinfo, tree, di, drep, &ReadStatusChanged); + + offset = mapi_dissect_element_SetMessageReadFlag_repl_ClientData(tvb, offset, pinfo, tree, di, drep, &ReadStatusChanged); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: SetColumns_TBL_SYNC=0x0, */ +/* IDL: SetColumns_TBL_ASYNC=0x1, */ +/* IDL: } */ + +int +mapi_dissect_enum_SetColumnsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: enum { */ +/* IDL: TBLSTAT_COMPLETE=0x0, */ +/* IDL: TBLSTAT_SORTING=0x9, */ +/* IDL: TBLSTAT_SORT_ERROR=0xA, */ +/* IDL: TBLSTAT_SETTING_COLS=0xB, */ +/* IDL: TBLSTAT_SETCOL_ERROR=0xD, */ +/* IDL: TBLSTAT_RESTRICTING=0xE, */ +/* IDL: TBLSTAT_RESTRICT_ERROR=0xF, */ +/* IDL: } */ + +int +mapi_dissect_enum_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SetColumnsFlags SetColumnsFlags; */ +/* IDL: uint16 prop_count; */ +/* IDL: [size_is(prop_count)] MAPITAGS properties[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetColumns_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetColumns_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetColumns_req_SetColumnsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_SetColumnsFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetColumns_req_SetColumnsFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_SetColumns_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetColumns_req_prop_count, 0); + + return offset; +} + +static int +mapi_dissect_element_SetColumns_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SetColumns_req_properties_); + + return offset; +} + +static int +mapi_dissect_element_SetColumns_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetColumns_req_properties, 0); + + return offset; +} + +int +mapi_dissect_struct_SetColumns_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetColumns_req); + } + + offset = mapi_dissect_element_SetColumns_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetColumns_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetColumns_req_SetColumnsFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetColumns_req_prop_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetColumns_req_properties(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: TableStatus TableStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetColumns_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TableStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetColumns_repl_TableStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_SetColumns_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetColumns_repl); + } + + offset = mapi_dissect_element_SetColumns_repl_TableStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: TBL_ASYNC=0x1, */ +/* IDL: TBL_BATCH=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_TBL_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: enum { */ +/* IDL: TABLE_SORT_ASCEND=0x0, */ +/* IDL: TABLE_SORT_COMBINE=0x1, */ +/* IDL: TABLE_SORT_DESCEND=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_TABLE_SORT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct _SSortOrder { */ +/* IDL: MAPITAGS ulPropTag; */ +/* IDL: TABLE_SORT ulOrder; */ +/* IDL: } */ + +static int +mapi_dissect_element_SSortOrder_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_SSortOrder_ulPropTag, 0); + + return offset; +} + +static int +mapi_dissect_element_SSortOrder_ulOrder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TABLE_SORT(tvb, offset, pinfo, tree, di, drep, hf_mapi_SSortOrder_ulOrder, 0); + + return offset; +} + +int +mapi_dissect_struct_SSortOrder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SSortOrder); + } + + offset = mapi_dissect_element_SSortOrder_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSortOrder_ulOrder(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct _SSortOrderSet { */ +/* IDL: uint16 cSorts; */ +/* IDL: uint16 cCategories; */ +/* IDL: uint16 cExpanded; */ +/* IDL: [size_is(cSorts)] SSortOrder aSort[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SSortOrderSet_cSorts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SSortOrderSet_cSorts, 0); + + return offset; +} + +static int +mapi_dissect_element_SSortOrderSet_cCategories(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SSortOrderSet_cCategories, 0); + + return offset; +} + +static int +mapi_dissect_element_SSortOrderSet_cExpanded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SSortOrderSet_cExpanded, 0); + + return offset; +} + +static int +mapi_dissect_element_SSortOrderSet_aSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SSortOrderSet_aSort_); + + return offset; +} + +static int +mapi_dissect_element_SSortOrderSet_aSort_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SSortOrder(tvb,offset,pinfo,tree,di,drep,hf_mapi_SSortOrderSet_aSort,0); + + return offset; +} + +int +mapi_dissect_struct_SSortOrderSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SSortOrderSet); + } + + offset = mapi_dissect_element_SSortOrderSet_cSorts(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSortOrderSet_cCategories(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSortOrderSet_cExpanded(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSortOrderSet_aSort(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 SortTableFlags; */ +/* IDL: SSortOrderSet lpSortCriteria; */ +/* IDL: } */ + +static int +mapi_dissect_element_SortTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SortTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SortTable_req_SortTableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SortTable_req_SortTableFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_SortTable_req_lpSortCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SSortOrderSet(tvb,offset,pinfo,tree,di,drep,hf_mapi_SortTable_req_lpSortCriteria,0); + + return offset; +} + +int +mapi_dissect_struct_SortTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SortTable_req); + } + + offset = mapi_dissect_element_SortTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SortTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SortTable_req_SortTableFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SortTable_req_lpSortCriteria(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: TableStatus TableStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_SortTable_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TableStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_SortTable_repl_TableStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_SortTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SortTable_repl); + } + + offset = mapi_dissect_element_SortTable_repl_TableStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 cRes; */ +/* IDL: [size_is(cRes)] SRestriction_and res[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SAndRestriction_cRes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SAndRestriction_cRes, 0); + + return offset; +} + +static int +mapi_dissect_element_SAndRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SAndRestriction_res_); + + return offset; +} + +static int +mapi_dissect_element_SAndRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_and(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SAndRestriction_res,0); + + return offset; +} + +int +mapi_dissect_struct_SAndRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SAndRestriction); + } + + offset = mapi_dissect_element_SAndRestriction_cRes(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SAndRestriction_res(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 cRes; */ +/* IDL: [size_is(cRes)] SRestriction_or res[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SOrRestriction_cRes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SOrRestriction_cRes, 0); + + return offset; +} + +static int +mapi_dissect_element_SOrRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SOrRestriction_res_); + + return offset; +} + +static int +mapi_dissect_element_SOrRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_or(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SOrRestriction_res,0); + + return offset; +} + +int +mapi_dissect_struct_SOrRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SOrRestriction); + } + + offset = mapi_dissect_element_SOrRestriction_cRes(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SOrRestriction_res(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: mapi_SRestriction_wrap res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SNotRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_wrap(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SNotRestriction_res,0); + + return offset; +} + +int +mapi_dissect_struct_SNotRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SNotRestriction); + } + + offset = mapi_dissect_element_SNotRestriction_res(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: FL_FULLSTRING = 0x00000 , */ +/* IDL: FL_SUBSTRING = 0x00001 , */ +/* IDL: FL_PREFIX = 0x00002 , */ +/* IDL: FL_IGNORECASE = 0x10000 , */ +/* IDL: FL_IGNORENONSPACE = 0x20000 , */ +/* IDL: FL_LOOSE = 0x40000 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_fuzzyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_fuzzyLevel_fields[] = { + &hf_mapi_fuzzyLevel_FL_SUBSTRING, + &hf_mapi_fuzzyLevel_FL_PREFIX, + &hf_mapi_fuzzyLevel_FL_IGNORECASE, + &hf_mapi_fuzzyLevel_FL_IGNORENONSPACE, + &hf_mapi_fuzzyLevel_FL_LOOSE, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_fuzzyLevel, mapi_fuzzyLevel_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00070003)) { + flags &= (~0x00070003); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: fuzzyLevel fuzzy; */ +/* IDL: MAPITAGS ulPropTag; */ +/* IDL: mapi_SPropValue lpProp; */ +/* IDL: } */ + +static int +mapi_dissect_element_SContentRestriction_fuzzy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_fuzzyLevel(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SContentRestriction_fuzzy, 0); + + return offset; +} + +static int +mapi_dissect_element_SContentRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SContentRestriction_ulPropTag, 0); + + return offset; +} + +static int +mapi_dissect_element_SContentRestriction_lpProp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SContentRestriction_lpProp,0); + + return offset; +} + +int +mapi_dissect_struct_SContentRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SContentRestriction); + } + + offset = mapi_dissect_element_SContentRestriction_fuzzy(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SContentRestriction_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SContentRestriction_lpProp(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: BMR_EQZ=0x0, */ +/* IDL: BMR_NEZ=0x1, */ +/* IDL: } */ + +int +mapi_dissect_enum_relMBR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: relMBR relMBR; */ +/* IDL: MAPITAGS ulPropTag; */ +/* IDL: uint32 ulMask; */ +/* IDL: } */ + +static int +mapi_dissect_element_SBitmaskRestriction_relMBR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_relMBR(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SBitmaskRestriction_relMBR, 0); + + return offset; +} + +static int +mapi_dissect_element_SBitmaskRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SBitmaskRestriction_ulPropTag, 0); + + return offset; +} + +static int +mapi_dissect_element_SBitmaskRestriction_ulMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SBitmaskRestriction_ulMask, 0); + + return offset; +} + +int +mapi_dissect_struct_SBitmaskRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SBitmaskRestriction); + } + + offset = mapi_dissect_element_SBitmaskRestriction_relMBR(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SBitmaskRestriction_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SBitmaskRestriction_ulMask(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + /* IDL: enum { */ -/* IDL: EXCHANGE=0x0, */ -/* IDL: SMTP=0x1, */ +/* IDL: RELOP_LT=0x0, */ +/* IDL: RELOP_LE=0x1, */ +/* IDL: RELOP_GT=0x2, */ +/* IDL: RELOP_GE=0x3, */ +/* IDL: RELOP_EQ=0x4, */ +/* IDL: RELOP_NE=0x5, */ +/* IDL: RELOP_RE=0x6, */ +/* IDL: } */ + +int +mapi_dissect_enum_CompareRelop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: CompareRelop relop; */ +/* IDL: MAPITAGS ulPropTag; */ +/* IDL: uint32 size; */ +/* IDL: } */ + +static int +mapi_dissect_element_SSizeRestriction_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_CompareRelop(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SSizeRestriction_relop, 0); + + return offset; +} + +static int +mapi_dissect_element_SSizeRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SSizeRestriction_ulPropTag, 0); + + return offset; +} + +static int +mapi_dissect_element_SSizeRestriction_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SSizeRestriction_size, 0); + + return offset; +} + +int +mapi_dissect_struct_SSizeRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SSizeRestriction); + } + + offset = mapi_dissect_element_SSizeRestriction_relop(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSizeRestriction_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSizeRestriction_size(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 relop; */ +/* IDL: MAPITAGS ulPropTag; */ +/* IDL: mapi_SPropValue lpProp; */ +/* IDL: } */ + +static int +mapi_dissect_element_SPropertyRestriction_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropertyRestriction_relop, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropertyRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SPropertyRestriction_ulPropTag, 0); + + return offset; +} + +static int +mapi_dissect_element_SPropertyRestriction_lpProp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SPropertyRestriction_lpProp,0); + + return offset; +} + +int +mapi_dissect_struct_SPropertyRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SPropertyRestriction); + } + + offset = mapi_dissect_element_SPropertyRestriction_relop(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SPropertyRestriction_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SPropertyRestriction_lpProp(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: CompareRelop relop; */ +/* IDL: MAPITAGS ulPropTag1; */ +/* IDL: MAPITAGS ulPropTag2; */ +/* IDL: } */ + +static int +mapi_dissect_element_SCompareProps_relop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_CompareRelop(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCompareProps_relop, 0); + + return offset; +} + +static int +mapi_dissect_element_SCompareProps_ulPropTag1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCompareProps_ulPropTag1, 0); + + return offset; +} + +static int +mapi_dissect_element_SCompareProps_ulPropTag2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCompareProps_ulPropTag2, 0); + + return offset; +} + +int +mapi_dissect_struct_SCompareProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SCompareProps); + } + + offset = mapi_dissect_element_SCompareProps_relop(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SCompareProps_ulPropTag1(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SCompareProps_ulPropTag2(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: MAPITAGS ulPropTag; */ /* IDL: } */ +static int +mapi_dissect_element_SExistRestriction_ulPropTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SExistRestriction_ulPropTag, 0); + + return offset; +} + int -mapi_dissect_enum_OM_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +mapi_dissect_struct_SExistRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SExistRestriction); + } + + offset = mapi_dissect_element_SExistRestriction_ulPropTag(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: MAPITAGS ulSubObject; */ +/* IDL: [size_is(ulSubObject-ulSubObject+1)] SRestriction_sub res[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SSubRestriction_ulSubObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SSubRestriction_ulSubObject, 0); + + return offset; +} + +static int +mapi_dissect_element_SSubRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SSubRestriction_res_); + + return offset; +} + +static int +mapi_dissect_element_SSubRestriction_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_sub(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SSubRestriction_res,0); + + return offset; +} + +int +mapi_dissect_struct_SSubRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SSubRestriction); + } + + offset = mapi_dissect_element_SSubRestriction_ulSubObject(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SSubRestriction_res(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] [noprint(1)] [nopull(1)] [nopush(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] [unique(1)] SRestriction_comment *res; */ +/* IDL: } */ + +static int +mapi_dissect_element_RestrictionVariable_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_RestrictionVariable_res_, NDR_POINTER_UNIQUE, "Pointer to Res (SRestriction_comment)",hf_mapi_RestrictionVariable_res); + + return offset; +} + +static int +mapi_dissect_element_RestrictionVariable_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction_comment(tvb,offset,pinfo,tree,di,drep,hf_mapi_RestrictionVariable_res,0); + + return offset; +} + +static int +mapi_dissect_RestrictionVariable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_RestrictionVariable, &item, "RestrictionVariable"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_RestrictionVariable_res(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 TaggedValuesCount; */ +/* IDL: [size_is(TaggedValuesCount)] mapi_SPropValue TaggedValues[*]; */ +/* IDL: uint8 RestrictionPresent; */ +/* IDL: [switch_is(RestrictionPresent)] RestrictionVariable Restriction; */ +/* IDL: } */ + +static int +mapi_dissect_element_SCommentRestriction_TaggedValuesCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCommentRestriction_TaggedValuesCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SCommentRestriction_TaggedValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SCommentRestriction_TaggedValues_); + + return offset; +} + +static int +mapi_dissect_element_SCommentRestriction_TaggedValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SCommentRestriction_TaggedValues,0); + + return offset; +} + +static int +mapi_dissect_element_SCommentRestriction_RestrictionPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RestrictionPresent) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCommentRestriction_RestrictionPresent, *RestrictionPresent); + + return offset; +} + +static int +mapi_dissect_element_SCommentRestriction_Restriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RestrictionPresent) +{ + offset = mapi_dissect_RestrictionVariable(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SCommentRestriction_Restriction, *RestrictionPresent); + + return offset; +} + +int +mapi_dissect_struct_SCommentRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 RestrictionPresent = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SCommentRestriction); + } + + offset = mapi_dissect_element_SCommentRestriction_TaggedValuesCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SCommentRestriction_TaggedValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SCommentRestriction_RestrictionPresent(tvb, offset, pinfo, tree, di, drep, &RestrictionPresent); + + offset = mapi_dissect_element_SCommentRestriction_Restriction(tvb, offset, pinfo, tree, di, drep, &RestrictionPresent); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] [public(1)] union { */ +/* IDL: [case(RES_AND)] [case(RES_AND)] mapi_SAndRestriction resAnd; */ +/* IDL: [case(RES_OR)] [case(RES_OR)] mapi_SOrRestriction resOr; */ +/* IDL: [case(RES_NOT)] [case(RES_NOT)] mapi_SNotRestriction resNot; */ +/* IDL: [case(RES_CONTENT)] [case(RES_CONTENT)] mapi_SContentRestriction resContent; */ +/* IDL: [case(RES_PROPERTY)] [case(RES_PROPERTY)] mapi_SPropertyRestriction resProperty; */ +/* IDL: [case(RES_COMPAREPROPS)] [case(RES_COMPAREPROPS)] mapi_SCompareProps resCompareProps; */ +/* IDL: [case(RES_BITMASK)] [case(RES_BITMASK)] mapi_SBitmaskRestriction resBitmask; */ +/* IDL: [case(RES_SIZE)] [case(RES_SIZE)] mapi_SSizeRestriction resSize; */ +/* IDL: [case(RES_EXIST)] [case(RES_EXIST)] mapi_SExistRestriction resExist; */ +/* IDL: [case(RES_SUBRESTRICTION)] [case(RES_SUBRESTRICTION)] mapi_SSubRestriction resSub; */ +/* IDL: [case(RES_COMMENT)] [case(RES_COMMENT)] mapi_SCommentRestriction resComment; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_CTR_resAnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SAndRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resAnd,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resOr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SOrRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resOr,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resNot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SNotRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resNot,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resContent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SContentRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resContent,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropertyRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resProperty,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resCompareProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SCompareProps(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resCompareProps,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resBitmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBitmaskRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resBitmask,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SSizeRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resSize,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resExist(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SExistRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resExist,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resSub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SSubRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resSub,0); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_CTR_resComment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SCommentRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_SRestriction_CTR_resComment,0); + + return offset; +} + +static int +mapi_dissect_SRestriction_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_mapi_SRestriction_CTR, &item, "mapi_SRestriction_CTR"); + } + + switch(level) { + case RES_AND: + offset = mapi_dissect_element_SRestriction_CTR_resAnd(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_OR: + offset = mapi_dissect_element_SRestriction_CTR_resOr(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_NOT: + offset = mapi_dissect_element_SRestriction_CTR_resNot(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_CONTENT: + offset = mapi_dissect_element_SRestriction_CTR_resContent(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_PROPERTY: + offset = mapi_dissect_element_SRestriction_CTR_resProperty(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_COMPAREPROPS: + offset = mapi_dissect_element_SRestriction_CTR_resCompareProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_BITMASK: + offset = mapi_dissect_element_SRestriction_CTR_resBitmask(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_SIZE: + offset = mapi_dissect_element_SRestriction_CTR_resSize(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_EXIST: + offset = mapi_dissect_element_SRestriction_CTR_resExist(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_SUBRESTRICTION: + offset = mapi_dissect_element_SRestriction_CTR_resSub(tvb, offset, pinfo, tree, di, drep); + break; + + case RES_COMMENT: + offset = mapi_dissect_element_SRestriction_CTR_resComment(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 rt; */ +/* IDL: [switch_is(rt)] mapi_SRestriction_CTR res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SRestriction_rt, *rt); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = mapi_dissect_SRestriction_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_SRestriction_res, *rt); + + return offset; +} + +int +mapi_dissect_struct_SRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 rt = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_SRestriction); + } + + offset = mapi_dissect_element_SRestriction_rt(tvb, offset, pinfo, tree, di, drep, &rt); + + offset = mapi_dissect_element_SRestriction_res(tvb, offset, pinfo, tree, di, drep, &rt); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct _mapi_SRestriction_and { */ +/* IDL: uint8 rt; */ +/* IDL: [switch_is(rt)] mapi_SRestriction_CTR res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_and_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_and_rt, *rt); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_and_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = mapi_dissect_SRestriction_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_and_res, *rt); + + return offset; +} + +int +mapi_dissect_struct_SRestriction_and(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 rt = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SRestriction_and); + } + + offset = mapi_dissect_element_SRestriction_and_rt(tvb, offset, pinfo, tree, di, drep, &rt); + + offset = mapi_dissect_element_SRestriction_and_res(tvb, offset, pinfo, tree, di, drep, &rt); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct _mapi_SRestriction_or { */ +/* IDL: uint8 rt; */ +/* IDL: [switch_is(rt)] mapi_SRestriction_CTR res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_or_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_or_rt, *rt); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_or_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = mapi_dissect_SRestriction_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_or_res, *rt); + + return offset; +} + +int +mapi_dissect_struct_SRestriction_or(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 rt = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SRestriction_or); + } + + offset = mapi_dissect_element_SRestriction_or_rt(tvb, offset, pinfo, tree, di, drep, &rt); + + offset = mapi_dissect_element_SRestriction_or_res(tvb, offset, pinfo, tree, di, drep, &rt); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct _mapi_SRestriction_sub { */ +/* IDL: uint8 rt; */ +/* IDL: [switch_is(rt)] mapi_SRestriction_CTR res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_sub_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_sub_rt, *rt); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_sub_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = mapi_dissect_SRestriction_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_sub_res, *rt); + + return offset; +} + +int +mapi_dissect_struct_SRestriction_sub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 rt = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SRestriction_sub); + } + + offset = mapi_dissect_element_SRestriction_sub_rt(tvb, offset, pinfo, tree, di, drep, &rt); + + offset = mapi_dissect_element_SRestriction_sub_res(tvb, offset, pinfo, tree, di, drep, &rt); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct _mapi_SRestriction_comment { */ +/* IDL: uint8 rt; */ +/* IDL: [switch_is(rt)] mapi_SRestriction_CTR res; */ +/* IDL: } */ + +static int +mapi_dissect_element_SRestriction_comment_rt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_comment_rt, *rt); + + return offset; +} + +static int +mapi_dissect_element_SRestriction_comment_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *rt) +{ + offset = mapi_dissect_SRestriction_CTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_SRestriction_comment_res, *rt); + + return offset; +} + +int +mapi_dissect_struct_SRestriction_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 rt = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SRestriction_comment); + } + + offset = mapi_dissect_element_SRestriction_comment_rt(tvb, offset, pinfo, tree, di, drep, &rt); + + offset = mapi_dissect_element_SRestriction_comment_res(tvb, offset, pinfo, tree, di, drep, &rt); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 handle_idx; */ +/* IDL: [represent_as(uint16)] mapi_SRestriction restrictions; */ +/* IDL: } */ + +static int +mapi_dissect_element_Restrict_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Restrict_req_handle_idx, 0); + + return offset; +} + +static int +mapi_dissect_element_Restrict_req_restrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_Restrict_req_restrictions,0); + + return offset; +} + +int +mapi_dissect_struct_Restrict_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Restrict_req); + } + + offset = mapi_dissect_element_Restrict_req_handle_idx(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Restrict_req_restrictions(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: TableStatus TableStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_Restrict_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TableStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_Restrict_repl_TableStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_Restrict_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Restrict_repl); + } + + offset = mapi_dissect_element_Restrict_repl_TableStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: TBL_ADVANCE=0x0, */ +/* IDL: TBL_NOADVANCE=0x1, */ +/* IDL: TBL_ENABLEPACKEDBUFFERS=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_QueryRowsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: QueryRowsFlags QueryRowsFlags; */ +/* IDL: uint8 ForwardRead; */ +/* IDL: uint16 RowCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryRows_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_req_QueryRowsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_QueryRowsFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_req_QueryRowsFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_req_ForwardRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_req_ForwardRead, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_req_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_req_RowCount, 0); + + return offset; +} + +int +mapi_dissect_struct_QueryRows_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryRows_req); + } + + offset = mapi_dissect_element_QueryRows_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_req_QueryRowsFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_req_ForwardRead(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_req_RowCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 Origin; */ +/* IDL: uint16 RowCount; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB RowData; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryRows_repl_Origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_repl_Origin, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_repl_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryRows_repl_RowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryRows_repl_RowData, 1); + + return offset; +} + +int +mapi_dissect_struct_QueryRows_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryRows_repl); + } + + offset = mapi_dissect_element_QueryRows_repl_Origin(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_repl_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryRows_repl_RowData(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStatus_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStatus_req); + } + + offset = mapi_dissect_element_GetStatus_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetStatus_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: TableStatus TableStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStatus_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TableStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetStatus_repl_TableStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStatus_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStatus_repl); + } + + offset = mapi_dissect_element_GetStatus_repl_TableStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryPosition_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryPosition_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_QueryPosition_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryPosition_req); + } + + offset = mapi_dissect_element_QueryPosition_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryPosition_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 Numerator; */ +/* IDL: uint32 Denominator; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryPosition_repl_Numerator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryPosition_repl_Numerator, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryPosition_repl_Denominator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryPosition_repl_Denominator, 0); + + return offset; +} + +int +mapi_dissect_struct_QueryPosition_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryPosition_repl); + } + + offset = mapi_dissect_element_QueryPosition_repl_Numerator(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryPosition_repl_Denominator(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: BOOKMARK_BEGINNING=0x0, */ +/* IDL: BOOKMARK_CURRENT=0x1, */ +/* IDL: BOOKMARK_END=0x2, */ +/* IDL: BOOKMARK_USER=0x3, */ +/* IDL: } */ + +int +mapi_dissect_enum_BOOKMARK(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: BOOKMARK origin; */ +/* IDL: int32 offset; */ +/* IDL: uint8 WantRowMovedCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRow_req_origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_BOOKMARK(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRow_req_origin, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRow_req_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRow_req_offset, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRow_req_WantRowMovedCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRow_req_WantRowMovedCount, 0); + + return offset; +} + +int +mapi_dissect_struct_SeekRow_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekRow_req); + } + + offset = mapi_dissect_element_SeekRow_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRow_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRow_req_origin(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRow_req_offset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRow_req_WantRowMovedCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasSoughtLess; */ +/* IDL: uint32 RowsSought; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekRow_repl_HasSoughtLess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRow_repl_HasSoughtLess, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRow_repl_RowsSought(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRow_repl_RowsSought, 0); + + return offset; +} + +int +mapi_dissect_struct_SeekRow_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekRow_repl); + } + + offset = mapi_dissect_element_SeekRow_repl_HasSoughtLess(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRow_repl_RowsSought(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SBinary_short Bookmark; */ +/* IDL: uint32 RowCount; */ +/* IDL: uint8 WantRowMovedCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekRowBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_req_Bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_SeekRowBookmark_req_Bookmark,0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_req_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowBookmark_req_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_req_WantRowMovedCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowBookmark_req_WantRowMovedCount, 0); + + return offset; +} + +int +mapi_dissect_struct_SeekRowBookmark_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekRowBookmark_req); + } + + offset = mapi_dissect_element_SeekRowBookmark_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_req_Bookmark(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_req_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_req_WantRowMovedCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 RowNoLongerVisible; */ +/* IDL: uint8 HasSoughtLess; */ +/* IDL: uint32 RowsSought; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekRowBookmark_repl_RowNoLongerVisible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowBookmark_repl_RowNoLongerVisible, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_repl_HasSoughtLess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowBookmark_repl_HasSoughtLess, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowBookmark_repl_RowsSought(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowBookmark_repl_RowsSought, 0); + + return offset; +} + +int +mapi_dissect_struct_SeekRowBookmark_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekRowBookmark_repl); + } + + offset = mapi_dissect_element_SeekRowBookmark_repl_RowNoLongerVisible(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_repl_HasSoughtLess(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowBookmark_repl_RowsSought(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 ulNumerator; */ +/* IDL: uint32 ulDenominator; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekRowApprox_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowApprox_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowApprox_req_ulNumerator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowApprox_req_ulNumerator, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekRowApprox_req_ulDenominator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekRowApprox_req_ulDenominator, 0); + + return offset; +} + +int +mapi_dissect_struct_SeekRowApprox_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekRowApprox_req); + } + + offset = mapi_dissect_element_SeekRowApprox_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowApprox_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowApprox_req_ulNumerator(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekRowApprox_req_ulDenominator(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SeekRowApprox_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_CreateBookmark_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateBookmark_req); + } + + offset = mapi_dissect_element_CreateBookmark_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateBookmark_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: SBinary_short bookmark; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateBookmark_repl_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_CreateBookmark_repl_bookmark,0); + + return offset; +} + +int +mapi_dissect_struct_CreateBookmark_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateBookmark_repl); + } + + offset = mapi_dissect_element_CreateBookmark_repl_bookmark(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: FOLDER_GENERIC=0x1, */ +/* IDL: FOLDER_SEARCH=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_FOLDER_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: enum { */ +/* IDL: MAPI_FOLDER_ANSI=0x0, */ +/* IDL: MAPI_FOLDER_UNICODE=0x1, */ +/* IDL: } */ + +int +mapi_dissect_enum_FOLDER_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(MAPI_FOLDER_ANSI)] [case(MAPI_FOLDER_ANSI)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(MAPI_FOLDER_UNICODE)] [case(MAPI_FOLDER_UNICODE)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: } */ + +static int +mapi_dissect_element_LPTSTR_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_LPTSTR_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_LPTSTR_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_LPTSTR_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_LPTSTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_LPTSTR, &item, "LPTSTR"); + } + + switch(level) { + case MAPI_FOLDER_ANSI: + offset = mapi_dissect_element_LPTSTR_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case MAPI_FOLDER_UNICODE: + offset = mapi_dissect_element_LPTSTR_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: enum { */ +/* IDL: NONE=0x0000, */ +/* IDL: OPEN_IF_EXISTS=0x0001, */ +/* IDL: } */ + +int +mapi_dissect_enum_FOLDER_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) { guint16 parameter=0; if (param) { @@ -8871,52 +21975,1634 @@ mapi_dissect_enum_OM_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_in } -/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(OM_recipient_type)] union { */ -/* IDL: [case(0x0)] [case(0x0)] RecipExchange EXCHANGE; */ -/* IDL: [case(0xA)] [case(0xA)] RecipSMTP SMTP; */ -/* IDL: [default] ; */ +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: FOLDER_TYPE ulFolderType; */ +/* IDL: FOLDER_STRING ulType; */ +/* IDL: FOLDER_FLAGS ulFlags; */ +/* IDL: [switch_is(ulType)] LPTSTR FolderName; */ +/* IDL: [switch_is(ulType)] LPTSTR FolderComment; */ /* IDL: } */ static int -mapi_dissect_element_recipient_type_EXCHANGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_CreateFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_RecipExchange(tvb,offset,pinfo,tree,di,drep,hf_mapi_recipient_type_EXCHANGE,0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); return offset; } static int -mapi_dissect_element_recipient_type_SMTP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_CreateFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_RecipSMTP(tvb,offset,pinfo,tree,di,drep,hf_mapi_recipient_type_SMTP,0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); return offset; } static int -mapi_dissect_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_element_CreateFolder_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_req_ulFolderType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_FOLDER_TYPE(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_req_ulFolderType, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_req_ulType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType) +{ + offset = mapi_dissect_enum_FOLDER_STRING(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_req_ulType, ulType); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + offset = mapi_dissect_enum_FOLDER_FLAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_req_ulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_req_FolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType) +{ + offset = mapi_dissect_LPTSTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_req_FolderName, *ulType); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_req_FolderComment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulType) +{ + offset = mapi_dissect_LPTSTR(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_req_FolderComment, *ulType); + + return offset; +} + +int +mapi_dissect_struct_CreateFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 ulType = 0; proto_item *item = NULL; proto_tree *tree = NULL; + gboolean oldalign = di->no_align; int old_offset; - guint16 level; + + di->no_align = TRUE; old_offset = offset; + if (parent_tree) { - tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_type, &item, "recipient_type"); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateFolder_req); + } + + offset = mapi_dissect_element_CreateFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_req_ulFolderType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_req_ulType(tvb, offset, pinfo, tree, di, drep, &ulType); + + offset = mapi_dissect_element_CreateFolder_req_ulFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_req_FolderName(tvb, offset, pinfo, tree, di, drep, &ulType); + + offset = mapi_dissect_element_CreateFolder_req_FolderComment(tvb, offset, pinfo, tree, di, drep, &ulType); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasRules; */ +/* IDL: uint8 IsGhosted; */ +/* IDL: [switch_is(IsGhosted)] IsGhosted Ghost; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateFolder_GhostInfo_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_GhostInfo_HasRules, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_GhostInfo_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_GhostInfo_IsGhosted, *IsGhosted); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_GhostInfo_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = mapi_dissect_IsGhosted(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_GhostInfo_Ghost, *IsGhosted); + + return offset; +} + +int +mapi_dissect_struct_CreateFolder_GhostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 IsGhosted = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateFolder_GhostInfo); + } + + offset = mapi_dissect_element_CreateFolder_GhostInfo_HasRules(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_GhostInfo_IsGhosted(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + offset = mapi_dissect_element_CreateFolder_GhostInfo_Ghost(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] CreateFolder_GhostInfo GhostInfo; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateFolder_GhostUnion_GhostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateFolder_GhostInfo(tvb,offset,pinfo,tree,di,drep,hf_mapi_CreateFolder_GhostUnion_GhostInfo,0); + + return offset; +} + +static int +mapi_dissect_CreateFolder_GhostUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_CreateFolder_GhostUnion, &item, "CreateFolder_GhostUnion"); } - offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level); switch(level) { case 0x0: - offset = mapi_dissect_element_recipient_type_EXCHANGE(tvb, offset, pinfo, tree, di, drep); break; - case 0xA: - offset = mapi_dissect_element_recipient_type_SMTP(tvb, offset, pinfo, tree, di, drep); + case 0x1: + offset = mapi_dissect_element_CreateFolder_GhostUnion_GhostInfo(tvb, offset, pinfo, tree, di, drep); break; + } + proto_item_set_len(item, offset-old_offset); - default: + + return offset; +} + +/* IDL: struct { */ +/* IDL: hyper folder_id; */ +/* IDL: uint8 IsExistingFolder; */ +/* IDL: [switch_is(IsExistingFolder)] CreateFolder_GhostUnion GhostUnion; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateFolder_repl_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_repl_folder_id, NULL); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_repl_IsExistingFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsExistingFolder) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_repl_IsExistingFolder, *IsExistingFolder); + + return offset; +} + +static int +mapi_dissect_element_CreateFolder_repl_GhostUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsExistingFolder) +{ + offset = mapi_dissect_CreateFolder_GhostUnion(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateFolder_repl_GhostUnion, *IsExistingFolder); + + return offset; +} + +int +mapi_dissect_struct_CreateFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 IsExistingFolder = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateFolder_repl); + } + + offset = mapi_dissect_element_CreateFolder_repl_folder_id(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateFolder_repl_IsExistingFolder(tvb, offset, pinfo, tree, di, drep, &IsExistingFolder); + + offset = mapi_dissect_element_CreateFolder_repl_GhostUnion(tvb, offset, pinfo, tree, di, drep, &IsExistingFolder); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: DEL_MESSAGES = 0x1 , */ +/* IDL: DEL_FOLDERS = 0x4 , */ +/* IDL: DELETE_HARD_DELETE = 0x10 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_DeleteFolderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_DeleteFolderFlags_fields[] = { + &hf_mapi_DeleteFolderFlags_DEL_MESSAGES, + &hf_mapi_DeleteFolderFlags_DEL_FOLDERS, + &hf_mapi_DeleteFolderFlags_DELETE_HARD_DELETE, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_DeleteFolderFlags, mapi_DeleteFolderFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000015)) { + flags &= (~0x00000015); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: DeleteFolderFlags DeleteFolderFlags; */ +/* IDL: hyper FolderId; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteFolder_req_DeleteFolderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_DeleteFolderFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteFolder_req_DeleteFolderFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteFolder_req_FolderId, NULL); + + return offset; +} + +int +mapi_dissect_struct_DeleteFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteFolder_req); + } + + offset = mapi_dissect_element_DeleteFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteFolder_req_DeleteFolderFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteFolder_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteFolder_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_DeleteFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteFolder_repl); + } + + offset = mapi_dissect_element_DeleteFolder_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 NotifyNonRead; */ +/* IDL: uint16 cn_ids; */ +/* IDL: [size_is(cn_ids)] hyper message_ids[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteMessages_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_NotifyNonRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteMessages_req_NotifyNonRead, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_cn_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteMessages_req_cn_ids, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_message_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DeleteMessages_req_message_ids_); + + return offset; +} + +static int +mapi_dissect_element_DeleteMessages_req_message_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteMessages_req_message_ids, NULL); + + return offset; +} + +int +mapi_dissect_struct_DeleteMessages_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteMessages_req); + } + + offset = mapi_dissect_element_DeleteMessages_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteMessages_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteMessages_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteMessages_req_NotifyNonRead(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteMessages_req_cn_ids(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteMessages_req_message_ids(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteMessages_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_DeleteMessages_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteMessages_repl); + } + + offset = mapi_dissect_element_DeleteMessages_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper msgid; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetMessageStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetMessageStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetMessageStatus_req_msgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetMessageStatus_req_msgid, NULL); + + return offset; +} + +int +mapi_dissect_struct_GetMessageStatus_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetMessageStatus_req); + } + + offset = mapi_dissect_element_GetMessageStatus_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetMessageStatus_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetMessageStatus_req_msgid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: MSGSTATUS_HIGHLIGHTED = 0x1 , */ +/* IDL: MSGSTATUS_TAGGED = 0x2 , */ +/* IDL: MSGSTATUS_HIDDEN = 0x4 , */ +/* IDL: MSGSTATUS_DELMARKED = 0x8 , */ +/* IDL: MSGSTATUS_REMOTE_DOWNLOAD = 0x1000 , */ +/* IDL: MSGSTATUS_REMOTE_DELETE = 0x2000 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_ulMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_ulMessageStatus_fields[] = { + &hf_mapi_ulMessageStatus_MSGSTATUS_HIGHLIGHTED, + &hf_mapi_ulMessageStatus_MSGSTATUS_TAGGED, + &hf_mapi_ulMessageStatus_MSGSTATUS_HIDDEN, + &hf_mapi_ulMessageStatus_MSGSTATUS_DELMARKED, + &hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD, + &hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DELETE, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_ulMessageStatus, mapi_ulMessageStatus_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x0000300f)) { + flags &= (~0x0000300f); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper msgid; */ +/* IDL: uint32 ulNewStatus; */ +/* IDL: ulMessageStatus ulNewStatusMask; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageStatus_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageStatus_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageStatus_req_msgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageStatus_req_msgid, NULL); + + return offset; +} + +static int +mapi_dissect_element_SetMessageStatus_req_ulNewStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageStatus_req_ulNewStatus, 0); + + return offset; +} + +static int +mapi_dissect_element_SetMessageStatus_req_ulNewStatusMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_ulMessageStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageStatus_req_ulNewStatusMask, 0); + + return offset; +} + +int +mapi_dissect_struct_SetMessageStatus_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetMessageStatus_req); + } + + offset = mapi_dissect_element_SetMessageStatus_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageStatus_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageStatus_req_msgid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageStatus_req_ulNewStatus(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetMessageStatus_req_ulNewStatusMask(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ulMessageStatus ulOldStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetMessageStatus_repl_ulOldStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_ulMessageStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetMessageStatus_repl_ulOldStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_SetMessageStatus_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetMessageStatus_repl); + } + + offset = mapi_dissect_element_SetMessageStatus_repl_ulOldStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: TableFlags TableFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetAttachmentTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetAttachmentTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetAttachmentTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetAttachmentTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_TableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetAttachmentTable_req_TableFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetAttachmentTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetAttachmentTable_req); + } + + offset = mapi_dissect_element_GetAttachmentTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetAttachmentTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetAttachmentTable_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetAttachmentTable_req_TableFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_GetAttachmentTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: OpenAttachmentFlags_ReadOnly=0x0, */ +/* IDL: OpenAttachmentFlags_ReadWrite=0x1, */ +/* IDL: OpenAttachmentFlags_BestAccess=0x3, */ +/* IDL: } */ + +int +mapi_dissect_enum_OpenAttachmentFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: OpenAttachmentFlags OpenAttachmentFlags; */ +/* IDL: uint32 AttachmentID; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenAttach_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenAttach_req_OpenAttachmentFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_OpenAttachmentFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenAttach_req_OpenAttachmentFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenAttach_req_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenAttach_req_AttachmentID, 0); + + return offset; +} + +int +mapi_dissect_struct_OpenAttach_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenAttach_req); + } + + offset = mapi_dissect_element_OpenAttach_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenAttach_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenAttach_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenAttach_req_OpenAttachmentFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenAttach_req_AttachmentID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_OpenAttach_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CreateAttach_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_CreateAttach_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateAttach_req); + } + + offset = mapi_dissect_element_CreateAttach_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateAttach_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CreateAttach_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 AttachmentID; */ +/* IDL: } */ + +static int +mapi_dissect_element_CreateAttach_repl_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_CreateAttach_repl_AttachmentID, 0); + + return offset; +} + +int +mapi_dissect_struct_CreateAttach_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CreateAttach_repl); + } + + offset = mapi_dissect_element_CreateAttach_repl_AttachmentID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 AttachmentID; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeleteAttach_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteAttach_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_DeleteAttach_req_AttachmentID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeleteAttach_req_AttachmentID, 0); + + return offset; +} + +int +mapi_dissect_struct_DeleteAttach_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeleteAttach_req); + } + + offset = mapi_dissect_element_DeleteAttach_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteAttach_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeleteAttach_req_AttachmentID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_DeleteAttach_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 ResponseHandleIndex; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SaveFlags SaveFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_SaveChangesAttachment_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesAttachment_req_ResponseHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ResponseHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesAttachment_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SaveChangesAttachment_req_SaveFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_SaveFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SaveChangesAttachment_req_SaveFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_SaveChangesAttachment_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SaveChangesAttachment_req); + } + + offset = mapi_dissect_element_SaveChangesAttachment_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesAttachment_req_ResponseHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesAttachment_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SaveChangesAttachment_req_SaveFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SaveChangesAttachment_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper fid; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszMessageClass; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetReceiveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReceiveFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReceiveFolder_req_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReceiveFolder_req_fid, NULL); + + return offset; +} + +static int +mapi_dissect_element_SetReceiveFolder_req_lpszMessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_SetReceiveFolder_req_lpszMessageClass , 0); + + return offset; +} + +int +mapi_dissect_struct_SetReceiveFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetReceiveFolder_req); + } + + offset = mapi_dissect_element_SetReceiveFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReceiveFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReceiveFolder_req_fid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReceiveFolder_req_lpszMessageClass(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SetReceiveFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string MessageClass; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetReceiveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolder_req_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_GetReceiveFolder_req_MessageClass , 0); + + return offset; +} + +int +mapi_dissect_struct_GetReceiveFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetReceiveFolder_req); + } + + offset = mapi_dissect_element_GetReceiveFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetReceiveFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetReceiveFolder_req_MessageClass(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper folder_id; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string MessageClass; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetReceiveFolder_repl_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetReceiveFolder_repl_folder_id, NULL); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolder_repl_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_GetReceiveFolder_repl_MessageClass , 0); + + return offset; +} + +int +mapi_dissect_struct_GetReceiveFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetReceiveFolder_repl); + } + + offset = mapi_dissect_element_GetReceiveFolder_repl_folder_id(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetReceiveFolder_repl_MessageClass(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: fnevCriticalError=0x0001, */ +/* IDL: fnevNewMail=0x0002, */ +/* IDL: fnevObjectCreated=0x0004, */ +/* IDL: fnevObjectDeleted=0x0008, */ +/* IDL: fnevObjectModified=0x0010, */ +/* IDL: fnevObjectMoved=0x0020, */ +/* IDL: fnevObjectCopied=0x0040, */ +/* IDL: fnevSearchComplete=0x0080, */ +/* IDL: fnevTableModified=0x0100, */ +/* IDL: fnevStatusObjectModified=0x0200, */ +/* IDL: fnevReserved=0x0400, */ +/* IDL: fnevTbit=0x1000, */ +/* IDL: fnevUbit=0x2000, */ +/* IDL: fnevSbit=0x4000, */ +/* IDL: fnevMbit=0x8000, */ +/* IDL: } */ + +int +mapi_dissect_enum_NotificationFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +{ + guint16 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] hyper ID; */ +/* IDL: [case(0x1)] [case(0x1)] EMPTY ; */ +/* IDL: } */ + +static int +mapi_dissect_element_hyperbool_ID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_hyperbool_ID, NULL); + + return offset; +} + +static int +mapi_dissect_hyperbool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_hyperbool, &item, "hyperbool"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_hyperbool_ID(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1: break; } proto_item_set_len(item, offset-old_offset); @@ -8925,12 +23611,302 @@ mapi_dissect_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf return offset; } +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: NotificationFlags notificationFlags; */ +/* IDL: uint8 layout; */ +/* IDL: [switch_is(layout)] hyperbool u; */ +/* IDL: } */ + +static int +mapi_dissect_element_RegisterNotification_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_RegisterNotification_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_RegisterNotification_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_RegisterNotification_req_notificationFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_NotificationFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_RegisterNotification_req_notificationFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_RegisterNotification_req_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *layout) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_RegisterNotification_req_layout, *layout); + + return offset; +} + +static int +mapi_dissect_element_RegisterNotification_req_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *layout) +{ + offset = mapi_dissect_hyperbool(tvb, offset, pinfo, tree, di, drep, hf_mapi_RegisterNotification_req_u, *layout); + + return offset; +} + +int +mapi_dissect_struct_RegisterNotification_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 layout = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RegisterNotification_req); + } + + offset = mapi_dissect_element_RegisterNotification_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RegisterNotification_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RegisterNotification_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RegisterNotification_req_notificationFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RegisterNotification_req_layout(tvb, offset, pinfo, tree, di, drep, &layout); + + offset = mapi_dissect_element_RegisterNotification_req_u(tvb, offset, pinfo, tree, di, drep, &layout); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_RegisterNotification_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: MSGFLAG_READ = 0x1 , */ +/* IDL: MSGFLAG_UNMODIFIED = 0x2 , */ +/* IDL: MSGFLAG_SUBMIT = 0x4 , */ +/* IDL: MSGFLAG_UNSENT = 0x8 , */ +/* IDL: MSGFLAG_HASATTACH = 0x10 , */ +/* IDL: MSGFLAG_FROMME = 0x20 , */ +/* IDL: MSGFLAG_ASSOCIATED = 0x40 , */ +/* IDL: MSGFLAG_RESEND = 0x80 , */ +/* IDL: MSGFLAG_RN_PENDING = 0x100 , */ +/* IDL: MSGFLAG_NRN_PENDING = 0x200 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_MsgFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_MsgFlags_fields[] = { + &hf_mapi_MsgFlags_MSGFLAG_READ, + &hf_mapi_MsgFlags_MSGFLAG_UNMODIFIED, + &hf_mapi_MsgFlags_MSGFLAG_SUBMIT, + &hf_mapi_MsgFlags_MSGFLAG_UNSENT, + &hf_mapi_MsgFlags_MSGFLAG_HASATTACH, + &hf_mapi_MsgFlags_MSGFLAG_FROMME, + &hf_mapi_MsgFlags_MSGFLAG_ASSOCIATED, + &hf_mapi_MsgFlags_MSGFLAG_RESEND, + &hf_mapi_MsgFlags_MSGFLAG_RN_PENDING, + &hf_mapi_MsgFlags_MSGFLAG_NRN_PENDING, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_MsgFlags, mapi_MsgFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x000003ff)) { + flags &= (~0x000003ff); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x1)] [case(0x1)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: } */ + +static int +mapi_dissect_element_MessageClass_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_MessageClass_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_MessageClass_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_MessageClass_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_MessageClass, &item, "MessageClass"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_MessageClass_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1: + offset = mapi_dissect_element_MessageClass_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: GUID DatabaseGUID; */ +/* IDL: uint8 GlobalCounter[6]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GID_DatabaseGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_GID_DatabaseGUID, NULL); + + return offset; +} + +static int +mapi_dissect_element_GID_GlobalCounter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 6; i++) + offset = mapi_dissect_element_GID_GlobalCounter_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_GID_GlobalCounter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GID_GlobalCounter, 0); + + return offset; +} + +int +mapi_dissect_struct_GID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GID); + } + + offset = mapi_dissect_element_GID_DatabaseGUID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GID_GlobalCounter(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + /* IDL: enum { */ -/* IDL: DISPLAYNAME=0x400, */ +/* IDL: TABLE_CHANGED=0x1, */ +/* IDL: TABLE_ROW_ADDED=0x3, */ +/* IDL: TABLE_ROW_DELETED=0x4, */ +/* IDL: TABLE_ROW_MODIFIED=0x5, */ +/* IDL: TABLE_RESTRICT_DONE=0x7, */ /* IDL: } */ int -mapi_dissect_enum_OM_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +mapi_dissect_enum_RichTableNotificationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) { guint16 parameter=0; if (param) { @@ -8944,38 +23920,5617 @@ mapi_dissect_enum_OM_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U } -/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(OM_recipient_displayname_7bit)] union { */ -/* IDL: [case(0x400)] [case(0x400)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: MsgFlags MessageFlags; */ +/* IDL: uint8 UnicodeFlag; */ +/* IDL: [switch_is(UnicodeFlag)] MessageClass MessageClass; */ +/* IDL: } */ + +static int +mapi_dissect_element_NewMailNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_NewMailNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_NewMailNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_NewMailNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_NewMailNotification_MessageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_MsgFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_NewMailNotification_MessageFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_NewMailNotification_UnicodeFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UnicodeFlag) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_NewMailNotification_UnicodeFlag, *UnicodeFlag); + + return offset; +} + +static int +mapi_dissect_element_NewMailNotification_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UnicodeFlag) +{ + offset = mapi_dissect_MessageClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_NewMailNotification_MessageClass, *UnicodeFlag); + + return offset; +} + +int +mapi_dissect_struct_NewMailNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 UnicodeFlag = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_NewMailNotification); + } + + offset = mapi_dissect_element_NewMailNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_NewMailNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_NewMailNotification_MessageFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_NewMailNotification_UnicodeFlag(tvb, offset, pinfo, tree, di, drep, &UnicodeFlag); + + offset = mapi_dissect_element_NewMailNotification_MessageClass(tvb, offset, pinfo, tree, di, drep, &UnicodeFlag); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper ParentFID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderCreatedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderCreatedNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderCreatedNotification_ParentFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderCreatedNotification_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_FolderCreatedNotification_Tags_); + + return offset; +} + +static int +mapi_dissect_element_FolderCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderCreatedNotification_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_FolderCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderCreatedNotification); + } + + offset = mapi_dissect_element_FolderCreatedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderCreatedNotification_ParentFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderCreatedNotification_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderCreatedNotification_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper ParentFID; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderDeletedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderDeletedNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderDeletedNotification_ParentFID, NULL); + + return offset; +} + +int +mapi_dissect_struct_FolderDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderDeletedNotification); + } + + offset = mapi_dissect_element_FolderDeletedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderDeletedNotification_ParentFID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderModifiedNotification_10_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_10_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_10_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_10_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_10_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_FolderModifiedNotification_10_Tags_); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_10_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_10_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_FolderModifiedNotification_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderModifiedNotification_10); + } + + offset = mapi_dissect_element_FolderModifiedNotification_10_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_10_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_10_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper ParentFID; */ +/* IDL: hyper OldFID; */ +/* IDL: hyper OldParentFID; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderMoveCopyNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderMoveCopyNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderMoveCopyNotification_ParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderMoveCopyNotification_ParentFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderMoveCopyNotification_OldFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderMoveCopyNotification_OldFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderMoveCopyNotification_OldParentFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderMoveCopyNotification_OldParentFID, NULL); + + return offset; +} + +int +mapi_dissect_struct_FolderMoveCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderMoveCopyNotification); + } + + offset = mapi_dissect_element_FolderMoveCopyNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderMoveCopyNotification_ParentFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderMoveCopyNotification_OldFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderMoveCopyNotification_OldParentFID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: } */ + +static int +mapi_dissect_element_SearchCompleteNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchCompleteNotification_FID, NULL); + + return offset; +} + +int +mapi_dissect_struct_SearchCompleteNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SearchCompleteNotification); + } + + offset = mapi_dissect_element_SearchCompleteNotification_FID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper InsertAfterFID; */ +/* IDL: [represent_as(uint16)] DATA_BLOB Columns; */ +/* IDL: } */ + +static int +mapi_dissect_element_HierarchyRowAddedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowAddedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_HierarchyRowAddedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowAddedNotification_InsertAfterFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_HierarchyRowAddedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowAddedNotification_Columns, 0); + + return offset; +} + +int +mapi_dissect_struct_HierarchyRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HierarchyRowAddedNotification); + } + + offset = mapi_dissect_element_HierarchyRowAddedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HierarchyRowAddedNotification_InsertAfterFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HierarchyRowAddedNotification_Columns(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: } */ + +static int +mapi_dissect_element_HierarchyRowDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowDeletedNotification_FID, NULL); + + return offset; +} + +int +mapi_dissect_struct_HierarchyRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HierarchyRowDeletedNotification); + } + + offset = mapi_dissect_element_HierarchyRowDeletedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper InsertAfterFID; */ +/* IDL: [represent_as(uint16)] DATA_BLOB Columns; */ +/* IDL: } */ + +static int +mapi_dissect_element_HierarchyRowModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowModifiedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_HierarchyRowModifiedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowModifiedNotification_InsertAfterFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_HierarchyRowModifiedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyRowModifiedNotification_Columns, 0); + + return offset; +} + +int +mapi_dissect_struct_HierarchyRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HierarchyRowModifiedNotification); + } + + offset = mapi_dissect_element_HierarchyRowModifiedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HierarchyRowModifiedNotification_InsertAfterFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HierarchyRowModifiedNotification_Columns(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(TABLE_ROW_ADDED)] [case(TABLE_ROW_ADDED)] HierarchyRowAddedNotification HierarchyRowAddedNotification; */ +/* IDL: [case(TABLE_ROW_DELETED)] [case(TABLE_ROW_DELETED)] HierarchyRowDeletedNotification HierarchyRowDeletedNotification; */ +/* IDL: [case(TABLE_ROW_MODIFIED)] [case(TABLE_ROW_MODIFIED)] HierarchyRowModifiedNotification HierarchyRowModifiedNotification; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HierarchyRowAddedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_HierarchyTableChangeUnion_HierarchyRowAddedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HierarchyRowDeletedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_HierarchyTableChangeUnion_HierarchyRowDeletedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HierarchyRowModifiedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_HierarchyTableChangeUnion_HierarchyRowModifiedNotification,0); + + return offset; +} + +static int +mapi_dissect_HierarchyTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_HierarchyTableChangeUnion, &item, "HierarchyTableChangeUnion"); + } + + switch(level) { + case TABLE_ROW_ADDED: + offset = mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowAddedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case TABLE_ROW_DELETED: + offset = mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowDeletedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case TABLE_ROW_MODIFIED: + offset = mapi_dissect_element_HierarchyTableChangeUnion_HierarchyRowModifiedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: RichTableNotificationType TableEvent; */ +/* IDL: [switch_is(TableEvent)] HierarchyTableChangeUnion HierarchyTableChangeUnion; */ +/* IDL: } */ + +static int +mapi_dissect_element_HierarchyTableChange_TableEvent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent) +{ + offset = mapi_dissect_enum_RichTableNotificationType(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyTableChange_TableEvent, TableEvent); + + return offset; +} + +static int +mapi_dissect_element_HierarchyTableChange_HierarchyTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent) +{ + offset = mapi_dissect_HierarchyTableChangeUnion(tvb, offset, pinfo, tree, di, drep, hf_mapi_HierarchyTableChange_HierarchyTableChangeUnion, *TableEvent); + + return offset; +} + +int +mapi_dissect_struct_HierarchyTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 TableEvent = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HierarchyTableChange); + } + + offset = mapi_dissect_element_HierarchyTableChange_TableEvent(tvb, offset, pinfo, tree, di, drep, &TableEvent); + + offset = mapi_dissect_element_HierarchyTableChange_HierarchyTableChangeUnion(tvb, offset, pinfo, tree, di, drep, &TableEvent); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HierChanged; */ +/* IDL: uint32 GIDCount; */ +/* IDL: [size_is(GIDCount)] GID GID[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_IcsNotification_HierChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_IcsNotification_HierChanged, 0); + + return offset; +} + +static int +mapi_dissect_element_IcsNotification_GIDCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_IcsNotification_GIDCount, 0); + + return offset; +} + +static int +mapi_dissect_element_IcsNotification_GID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_IcsNotification_GID_); + + return offset; +} + +static int +mapi_dissect_element_IcsNotification_GID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GID(tvb,offset,pinfo,tree,di,drep,hf_mapi_IcsNotification_GID,0); + + return offset; +} + +int +mapi_dissect_struct_IcsNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_IcsNotification); + } + + offset = mapi_dissect_element_IcsNotification_HierChanged(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_IcsNotification_GIDCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_IcsNotification_GID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: uint32 TotalMessageCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderModifiedNotification_1010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_1010_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_1010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_1010_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_1010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_FolderModifiedNotification_1010_Tags_); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_1010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_1010_Tags, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_1010_TotalMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_1010_TotalMessageCount, 0); + + return offset; +} + +int +mapi_dissect_struct_FolderModifiedNotification_1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderModifiedNotification_1010); + } + + offset = mapi_dissect_element_FolderModifiedNotification_1010_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_1010_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_1010_Tags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_1010_TotalMessageCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: uint32 UnreadMessageCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderModifiedNotification_2010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_2010_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_2010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_2010_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_2010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_FolderModifiedNotification_2010_Tags_); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_2010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_2010_Tags, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_2010_UnreadMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_2010_UnreadMessageCount, 0); + + return offset; +} + +int +mapi_dissect_struct_FolderModifiedNotification_2010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderModifiedNotification_2010); + } + + offset = mapi_dissect_element_FolderModifiedNotification_2010_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_2010_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_2010_Tags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_2010_UnreadMessageCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: uint32 TotalMessageCount; */ +/* IDL: uint32 UnreadMessageCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_FolderModifiedNotification_3010_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_3010_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_3010_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_3010_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_3010_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_FolderModifiedNotification_3010_Tags_); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_3010_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_3010_Tags, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_3010_TotalMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_3010_TotalMessageCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FolderModifiedNotification_3010_UnreadMessageCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FolderModifiedNotification_3010_UnreadMessageCount, 0); + + return offset; +} + +int +mapi_dissect_struct_FolderModifiedNotification_3010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FolderModifiedNotification_3010); + } + + offset = mapi_dissect_element_FolderModifiedNotification_3010_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_3010_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_3010_Tags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_3010_TotalMessageCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FolderModifiedNotification_3010_UnreadMessageCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_MessageCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageCreatedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageCreatedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageCreatedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageCreatedNotification_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_MessageCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_MessageCreatedNotification_Tags_); + + return offset; +} + +static int +mapi_dissect_element_MessageCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageCreatedNotification_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_MessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MessageCreatedNotification); + } + + offset = mapi_dissect_element_MessageCreatedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageCreatedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageCreatedNotification_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageCreatedNotification_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: } */ + +static int +mapi_dissect_element_MessageDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageDeletedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageDeletedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageDeletedNotification_MID, NULL); + + return offset; +} + +int +mapi_dissect_struct_MessageDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MessageDeletedNotification); + } + + offset = mapi_dissect_element_MessageDeletedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageDeletedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_MessageModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageModifiedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageModifiedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageModifiedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageModifiedNotification_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_MessageModifiedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_MessageModifiedNotification_Tags_); + + return offset; +} + +static int +mapi_dissect_element_MessageModifiedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageModifiedNotification_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_MessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MessageModifiedNotification); + } + + offset = mapi_dissect_element_MessageModifiedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageModifiedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageModifiedNotification_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageModifiedNotification_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: hyper OldFID; */ +/* IDL: hyper OldMID; */ +/* IDL: } */ + +static int +mapi_dissect_element_MessageMoveCopyNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageMoveCopyNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageMoveCopyNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageMoveCopyNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageMoveCopyNotification_OldFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageMoveCopyNotification_OldFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_MessageMoveCopyNotification_OldMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MessageMoveCopyNotification_OldMID, NULL); + + return offset; +} + +int +mapi_dissect_struct_MessageMoveCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MessageMoveCopyNotification); + } + + offset = mapi_dissect_element_MessageMoveCopyNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageMoveCopyNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageMoveCopyNotification_OldFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MessageMoveCopyNotification_OldMID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint32 Instance; */ +/* IDL: hyper InsertAfterFID; */ +/* IDL: hyper InsertAfterMID; */ +/* IDL: uint32 InsertAfterInstance; */ +/* IDL: [represent_as(uint16)] DATA_BLOB Columns; */ +/* IDL: } */ + +static int +mapi_dissect_element_ContentsRowAddedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_Instance, 0); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_InsertAfterFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_InsertAfterMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_InsertAfterMID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_InsertAfterInstance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_InsertAfterInstance, 0); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowAddedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowAddedNotification_Columns, 0); + + return offset; +} + +int +mapi_dissect_struct_ContentsRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ContentsRowAddedNotification); + } + + offset = mapi_dissect_element_ContentsRowAddedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_Instance(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_InsertAfterFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_InsertAfterMID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_InsertAfterInstance(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowAddedNotification_Columns(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint32 Instance; */ +/* IDL: } */ + +static int +mapi_dissect_element_ContentsRowDeletedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowDeletedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowDeletedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowDeletedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowDeletedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowDeletedNotification_Instance, 0); + + return offset; +} + +int +mapi_dissect_struct_ContentsRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ContentsRowDeletedNotification); + } + + offset = mapi_dissect_element_ContentsRowDeletedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowDeletedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowDeletedNotification_Instance(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint32 Instance; */ +/* IDL: hyper InsertAfterFID; */ +/* IDL: hyper InsertAfterMID; */ +/* IDL: uint32 InsertAfterInstance; */ +/* IDL: [represent_as(uint16)] DATA_BLOB Columns; */ +/* IDL: } */ + +static int +mapi_dissect_element_ContentsRowModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_Instance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_Instance, 0); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_InsertAfterFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterMID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_InsertAfterMID, NULL); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterInstance(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_InsertAfterInstance, 0); + + return offset; +} + +static int +mapi_dissect_element_ContentsRowModifiedNotification_Columns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsRowModifiedNotification_Columns, 0); + + return offset; +} + +int +mapi_dissect_struct_ContentsRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ContentsRowModifiedNotification); + } + + offset = mapi_dissect_element_ContentsRowModifiedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_Instance(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterMID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_InsertAfterInstance(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ContentsRowModifiedNotification_Columns(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(TABLE_ROW_ADDED)] [case(TABLE_ROW_ADDED)] ContentsRowAddedNotification ContentsRowAddedNotification; */ +/* IDL: [case(TABLE_ROW_DELETED)] [case(TABLE_ROW_DELETED)] ContentsRowDeletedNotification ContentsRowDeletedNotification; */ +/* IDL: [case(TABLE_ROW_MODIFIED)] [case(TABLE_ROW_MODIFIED)] ContentsRowModifiedNotification ContentsRowModifiedNotification; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_ContentsTableChangeUnion_ContentsRowAddedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ContentsRowAddedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_ContentsTableChangeUnion_ContentsRowAddedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_ContentsTableChangeUnion_ContentsRowDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ContentsRowDeletedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_ContentsTableChangeUnion_ContentsRowDeletedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_ContentsTableChangeUnion_ContentsRowModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ContentsRowModifiedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_ContentsTableChangeUnion_ContentsRowModifiedNotification,0); + + return offset; +} + +static int +mapi_dissect_ContentsTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_ContentsTableChangeUnion, &item, "ContentsTableChangeUnion"); + } + + switch(level) { + case TABLE_ROW_ADDED: + offset = mapi_dissect_element_ContentsTableChangeUnion_ContentsRowAddedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case TABLE_ROW_DELETED: + offset = mapi_dissect_element_ContentsTableChangeUnion_ContentsRowDeletedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case TABLE_ROW_MODIFIED: + offset = mapi_dissect_element_ContentsTableChangeUnion_ContentsRowModifiedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: RichTableNotificationType TableEvent; */ +/* IDL: [switch_is(TableEvent)] ContentsTableChangeUnion ContentsTableChangeUnion; */ +/* IDL: } */ + +static int +mapi_dissect_element_ContentsTableChange_TableEvent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent) +{ + offset = mapi_dissect_enum_RichTableNotificationType(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsTableChange_TableEvent, TableEvent); + + return offset; +} + +static int +mapi_dissect_element_ContentsTableChange_ContentsTableChangeUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *TableEvent) +{ + offset = mapi_dissect_ContentsTableChangeUnion(tvb, offset, pinfo, tree, di, drep, hf_mapi_ContentsTableChange_ContentsTableChangeUnion, *TableEvent); + + return offset; +} + +int +mapi_dissect_struct_ContentsTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 TableEvent = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ContentsTableChange); + } + + offset = mapi_dissect_element_ContentsTableChange_TableEvent(tvb, offset, pinfo, tree, di, drep, &TableEvent); + + offset = mapi_dissect_element_ContentsTableChange_ContentsTableChangeUnion(tvb, offset, pinfo, tree, di, drep, &TableEvent); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: hyper SearchFID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SearchMessageCreatedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageCreatedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageCreatedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageCreatedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageCreatedNotification_SearchFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageCreatedNotification_SearchFID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageCreatedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageCreatedNotification_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageCreatedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SearchMessageCreatedNotification_Tags_); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageCreatedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageCreatedNotification_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_SearchMessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SearchMessageCreatedNotification); + } + + offset = mapi_dissect_element_SearchMessageCreatedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageCreatedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageCreatedNotification_SearchFID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageCreatedNotification_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageCreatedNotification_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: hyper SearchFID; */ +/* IDL: } */ + +static int +mapi_dissect_element_SearchMessageRemovedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageRemovedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageRemovedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageRemovedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageRemovedNotification_SearchFID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageRemovedNotification_SearchFID, NULL); + + return offset; +} + +int +mapi_dissect_struct_SearchMessageRemovedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SearchMessageRemovedNotification); + } + + offset = mapi_dissect_element_SearchMessageRemovedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageRemovedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageRemovedNotification_SearchFID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FID; */ +/* IDL: hyper MID; */ +/* IDL: uint16 TagCount; */ +/* IDL: [size_is(TagCount)] MAPITAGS Tags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SearchMessageModifiedNotification_FID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageModifiedNotification_FID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageModifiedNotification_MID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageModifiedNotification_MID, NULL); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageModifiedNotification_TagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageModifiedNotification_TagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageModifiedNotification_Tags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SearchMessageModifiedNotification_Tags_); + + return offset; +} + +static int +mapi_dissect_element_SearchMessageModifiedNotification_Tags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_SearchMessageModifiedNotification_Tags, 0); + + return offset; +} + +int +mapi_dissect_struct_SearchMessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SearchMessageModifiedNotification); + } + + offset = mapi_dissect_element_SearchMessageModifiedNotification_FID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageModifiedNotification_MID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageModifiedNotification_TagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SearchMessageModifiedNotification_Tags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(0x0002)] [case(0x0002)] NewMailNotification NewMailNotification; */ +/* IDL: [case(0x0004)] [case(0x0004)] FolderCreatedNotification FolderCreatedNotification; */ +/* IDL: [case(0x0008)] [case(0x0008)] FolderDeletedNotification FolderDeletedNotification; */ +/* IDL: [case(0x0010)] [case(0x0010)] FolderModifiedNotification_10 FolderModifiedNotification_10; */ +/* IDL: [case(0x0020)] [case(0x0020)] FolderMoveCopyNotification FolderMoveNotification; */ +/* IDL: [case(0x0040)] [case(0x0040)] FolderMoveCopyNotification FolderCopyNotification; */ +/* IDL: [case(0x0080)] [case(0x0080)] SearchCompleteNotification SearchCompleteNotification; */ +/* IDL: [case(0x0100)] [case(0x0100)] HierarchyTableChange HierarchyTableChange; */ +/* IDL: [case(0x0200)] [case(0x0200)] IcsNotification IcsNotification; */ +/* IDL: [case(0x1010)] [case(0x1010)] FolderModifiedNotification_1010 FolderModifiedNotification_1010; */ +/* IDL: [case(0x2010)] [case(0x2010)] FolderModifiedNotification_2010 FolderModifiedNotification_2010; */ +/* IDL: [case(0x3010)] [case(0x3010)] FolderModifiedNotification_3010 FolderModifiedNotification_3010; */ +/* IDL: [case(0x8002)] [case(0x8002)] NewMailNotification NewMessageNotification; */ +/* IDL: [case(0x8004)] [case(0x8004)] MessageCreatedNotification MessageCreatedNotification; */ +/* IDL: [case(0x8008)] [case(0x8008)] MessageDeletedNotification MessageDeletedNotification; */ +/* IDL: [case(0x8010)] [case(0x8010)] MessageModifiedNotification MessageModifiedNotification; */ +/* IDL: [case(0x8020)] [case(0x8020)] MessageMoveCopyNotification MessageMoveNotification; */ +/* IDL: [case(0x8040)] [case(0x8040)] MessageMoveCopyNotification MessageCopyNotification; */ +/* IDL: [case(0x8100)] [case(0x8100)] ContentsTableChange ContentsTableChange; */ +/* IDL: [case(0xc004)] [case(0xc004)] SearchMessageCreatedNotification SearchMessageCreatedNotification; */ +/* IDL: [case(0xc008)] [case(0xc008)] SearchMessageRemovedNotification SearchMessageRemovedNotification; */ +/* IDL: [case(0xc010)] [case(0xc010)] SearchMessageModifiedNotification SearchMessageModifiedNotification; */ +/* IDL: [case(0xc100)] [case(0xc100)] ContentsTableChange SearchTableChange; */ +/* IDL: } */ + +static int +mapi_dissect_element_NotificationData_NewMailNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_NewMailNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_NewMailNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderCreatedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderCreatedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderDeletedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderDeletedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderModifiedNotification_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderModifiedNotification_10(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderModifiedNotification_10,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderMoveNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderMoveCopyNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderMoveNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderMoveCopyNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderCopyNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_SearchCompleteNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SearchCompleteNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_SearchCompleteNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_HierarchyTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HierarchyTableChange(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_HierarchyTableChange,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_IcsNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_IcsNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_IcsNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderModifiedNotification_1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderModifiedNotification_1010(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderModifiedNotification_1010,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderModifiedNotification_2010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderModifiedNotification_2010(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderModifiedNotification_2010,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_FolderModifiedNotification_3010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FolderModifiedNotification_3010(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_FolderModifiedNotification_3010,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_NewMessageNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_NewMailNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_NewMessageNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_MessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MessageCreatedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_MessageCreatedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_MessageDeletedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MessageDeletedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_MessageDeletedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_MessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MessageModifiedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_MessageModifiedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_MessageMoveNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MessageMoveCopyNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_MessageMoveNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_MessageCopyNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MessageMoveCopyNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_MessageCopyNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_ContentsTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ContentsTableChange(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_ContentsTableChange,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_SearchMessageCreatedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SearchMessageCreatedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_SearchMessageCreatedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_SearchMessageRemovedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SearchMessageRemovedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_SearchMessageRemovedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_SearchMessageModifiedNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SearchMessageModifiedNotification(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_SearchMessageModifiedNotification,0); + + return offset; +} + +static int +mapi_dissect_element_NotificationData_SearchTableChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ContentsTableChange(tvb,offset,pinfo,tree,di,drep,hf_mapi_NotificationData_SearchTableChange,0); + + return offset; +} + +static int +mapi_dissect_NotificationData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_NotificationData, &item, "NotificationData"); + } + + switch(level) { + case 0x0002: + offset = mapi_dissect_element_NotificationData_NewMailNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0004: + offset = mapi_dissect_element_NotificationData_FolderCreatedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0008: + offset = mapi_dissect_element_NotificationData_FolderDeletedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0010: + offset = mapi_dissect_element_NotificationData_FolderModifiedNotification_10(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0020: + offset = mapi_dissect_element_NotificationData_FolderMoveNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0040: + offset = mapi_dissect_element_NotificationData_FolderCopyNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0080: + offset = mapi_dissect_element_NotificationData_SearchCompleteNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0100: + offset = mapi_dissect_element_NotificationData_HierarchyTableChange(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x0200: + offset = mapi_dissect_element_NotificationData_IcsNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1010: + offset = mapi_dissect_element_NotificationData_FolderModifiedNotification_1010(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x2010: + offset = mapi_dissect_element_NotificationData_FolderModifiedNotification_2010(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x3010: + offset = mapi_dissect_element_NotificationData_FolderModifiedNotification_3010(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8002: + offset = mapi_dissect_element_NotificationData_NewMessageNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8004: + offset = mapi_dissect_element_NotificationData_MessageCreatedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8008: + offset = mapi_dissect_element_NotificationData_MessageDeletedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8010: + offset = mapi_dissect_element_NotificationData_MessageModifiedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8020: + offset = mapi_dissect_element_NotificationData_MessageMoveNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8040: + offset = mapi_dissect_element_NotificationData_MessageCopyNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x8100: + offset = mapi_dissect_element_NotificationData_ContentsTableChange(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xc004: + offset = mapi_dissect_element_NotificationData_SearchMessageCreatedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xc008: + offset = mapi_dissect_element_NotificationData_SearchMessageRemovedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xc010: + offset = mapi_dissect_element_NotificationData_SearchMessageModifiedNotification(tvb, offset, pinfo, tree, di, drep); + break; + + case 0xc100: + offset = mapi_dissect_element_NotificationData_SearchTableChange(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint32 NotificationHandle; */ +/* IDL: uint8 LogonId; */ +/* IDL: NotificationFlags NotificationType; */ +/* IDL: [switch_is(NotificationType)] NotificationData NotificationData; */ +/* IDL: } */ + +static int +mapi_dissect_element_Notify_repl_NotificationHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_Notify_repl_NotificationHandle, 0); + + return offset; +} + +static int +mapi_dissect_element_Notify_repl_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Notify_repl_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_Notify_repl_NotificationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *NotificationType) +{ + offset = mapi_dissect_enum_NotificationFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_Notify_repl_NotificationType, NotificationType); + + return offset; +} + +static int +mapi_dissect_element_Notify_repl_NotificationData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *NotificationType) +{ + offset = mapi_dissect_NotificationData(tvb, offset, pinfo, tree, di, drep, hf_mapi_Notify_repl_NotificationData, *NotificationType); + + return offset; +} + +int +mapi_dissect_struct_Notify_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 NotificationType = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Notify_repl); + } + + offset = mapi_dissect_element_Notify_repl_NotificationHandle(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Notify_repl_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Notify_repl_NotificationType(tvb, offset, pinfo, tree, di, drep, &NotificationType); + + offset = mapi_dissect_element_Notify_repl_NotificationData(tvb, offset, pinfo, tree, di, drep, &NotificationType); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: OpenStream_ReadOnly=0x0, */ +/* IDL: OpenStream_ReadWrite=0x1, */ +/* IDL: OpenStream_Create=0x2, */ +/* IDL: OpenStream_BestAccess=0x3, */ +/* IDL: } */ + +int +mapi_dissect_enum_OpenStream_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: MAPITAGS PropertyTag; */ +/* IDL: OpenStream_OpenModeFlags OpenModeFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenStream_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenStream_req_PropertyTag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenStream_req_PropertyTag, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenStream_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_OpenStream_OpenModeFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenStream_req_OpenModeFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_OpenStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenStream_req); + } + + offset = mapi_dissect_element_OpenStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenStream_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenStream_req_PropertyTag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenStream_req_OpenModeFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 StreamSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenStream_repl_StreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenStream_repl_StreamSize, 0); + + return offset; +} + +int +mapi_dissect_struct_OpenStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenStream_repl); + } + + offset = mapi_dissect_element_OpenStream_repl_StreamSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0xBABE)] [case(0xBABE)] uint32 value; */ /* IDL: [default] ; */ /* IDL: } */ static int -mapi_dissect_element_recipient_displayname_7bit_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_MaximumByteCount_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MaximumByteCount_value, 0); + + return offset; +} + +static int +mapi_dissect_MaximumByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_MaximumByteCount, &item, "MaximumByteCount"); + } + + switch(level) { + case 0xBABE: + offset = mapi_dissect_element_MaximumByteCount_value(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 ByteCount; */ +/* IDL: [switch_is(ByteCount)] MaximumByteCount MaximumByteCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadStream_req_ByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *ByteCount) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadStream_req_ByteCount, *ByteCount); + + return offset; +} + +static int +mapi_dissect_element_ReadStream_req_MaximumByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *ByteCount) +{ + offset = mapi_dissect_MaximumByteCount(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadStream_req_MaximumByteCount, *ByteCount); + + return offset; +} + +int +mapi_dissect_struct_ReadStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 ByteCount = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadStream_req); + } + + offset = mapi_dissect_element_ReadStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadStream_req_ByteCount(tvb, offset, pinfo, tree, di, drep, &ByteCount); + + offset = mapi_dissect_element_ReadStream_req_MaximumByteCount(tvb, offset, pinfo, tree, di, drep, &ByteCount); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB data; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadStream_repl_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_recipient_displayname_7bit_lpszA , 0); + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadStream_repl_data, 1); + + return offset; +} + +int +mapi_dissect_struct_ReadStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadStream_repl); + } + + offset = mapi_dissect_element_ReadStream_repl_data(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB data; */ +/* IDL: } */ + +static int +mapi_dissect_element_WriteStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); return offset; } static int -mapi_dissect_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_element_WriteStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_WriteStream_req_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_WriteStream_req_data, 1); + + return offset; +} + +int +mapi_dissect_struct_WriteStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item = NULL; proto_tree *tree = NULL; + gboolean oldalign = di->no_align; int old_offset; - guint16 level; + + di->no_align = TRUE; old_offset = offset; + if (parent_tree) { - tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_recipient_displayname_7bit, &item, "recipient_displayname_7bit"); + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_WriteStream_req); } - offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level); + offset = mapi_dissect_element_WriteStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_WriteStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_WriteStream_req_data(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 WrittenSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_WriteStream_repl_WrittenSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_WriteStream_repl_WrittenSize, 0); + + return offset; +} + +int +mapi_dissect_struct_WriteStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_WriteStream_repl); + } + + offset = mapi_dissect_element_WriteStream_repl_WrittenSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 Origin; */ +/* IDL: hyper Offset; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekStream_req_Origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekStream_req_Origin, 0); + + return offset; +} + +static int +mapi_dissect_element_SeekStream_req_Offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekStream_req_Offset, NULL); + + return offset; +} + +int +mapi_dissect_struct_SeekStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekStream_req); + } + + offset = mapi_dissect_element_SeekStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekStream_req_Origin(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SeekStream_req_Offset(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper NewPosition; */ +/* IDL: } */ + +static int +mapi_dissect_element_SeekStream_repl_NewPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SeekStream_repl_NewPosition, NULL); + + return offset; +} + +int +mapi_dissect_struct_SeekStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SeekStream_repl); + } + + offset = mapi_dissect_element_SeekStream_repl_NewPosition(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper SizeStream; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetStreamSize_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetStreamSize_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetStreamSize_req_SizeStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetStreamSize_req_SizeStream, NULL); + + return offset; +} + +int +mapi_dissect_struct_SetStreamSize_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetStreamSize_req); + } + + offset = mapi_dissect_element_SetStreamSize_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetStreamSize_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetStreamSize_req_SizeStream(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SetStreamSize_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: STOP_SEARCH = 0x00000001 , */ +/* IDL: RESTART_SEARCH = 0x00000002 , */ +/* IDL: RECURSIVE_SEARCH = 0x00000004 , */ +/* IDL: SHALLOW_SEARCH = 0x00000008 , */ +/* IDL: FOREGROUND_SEARCH = 0x00000010 , */ +/* IDL: BACKGROUND_SEARCH = 0x00000020 , */ +/* IDL: CONTENT_INDEXED_SEARCH = 0x00010000 , */ +/* IDL: NON_CONTENT_INDEXED_SEARCH = 0x00020000 , */ +/* IDL: STATIC_SEARCH = 0x00040000 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_SearchFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_SearchFlags_fields[] = { + &hf_mapi_SearchFlags_STOP_SEARCH, + &hf_mapi_SearchFlags_RESTART_SEARCH, + &hf_mapi_SearchFlags_RECURSIVE_SEARCH, + &hf_mapi_SearchFlags_SHALLOW_SEARCH, + &hf_mapi_SearchFlags_FOREGROUND_SEARCH, + &hf_mapi_SearchFlags_BACKGROUND_SEARCH, + &hf_mapi_SearchFlags_CONTENT_INDEXED_SEARCH, + &hf_mapi_SearchFlags_NON_CONTENT_INDEXED_SEARCH, + &hf_mapi_SearchFlags_STATIC_SEARCH, + NULL + }; + guint32 flags; ALIGN_TO_4_BYTES; + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_SearchFlags, mapi_SearchFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x0007003f)) { + flags &= (~0x0007003f); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [represent_as(uint16)] mapi_SRestriction res; */ +/* IDL: uint16 FolderIdCount; */ +/* IDL: [size_is(FolderIdCount)] hyper FolderIds[*]; */ +/* IDL: SearchFlags SearchFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetSearchCriteria_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetSearchCriteria_req_res,0); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_FolderIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetSearchCriteria_req_FolderIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SetSearchCriteria_req_FolderIds_); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetSearchCriteria_req_FolderIds, NULL); + + return offset; +} + +static int +mapi_dissect_element_SetSearchCriteria_req_SearchFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_SearchFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetSearchCriteria_req_SearchFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_SetSearchCriteria_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetSearchCriteria_req); + } + + offset = mapi_dissect_element_SetSearchCriteria_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSearchCriteria_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSearchCriteria_req_res(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSearchCriteria_req_FolderIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSearchCriteria_req_FolderIds(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSearchCriteria_req_SearchFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SetSearchCriteria_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 UseUnicode; */ +/* IDL: uint8 IncludeRestriction; */ +/* IDL: uint8 IncludeFolders; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetSearchCriteria_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_req_UseUnicode, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_req_IncludeRestriction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_req_IncludeRestriction, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_req_IncludeFolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_req_IncludeFolders, 0); + + return offset; +} + +int +mapi_dissect_struct_GetSearchCriteria_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetSearchCriteria_req); + } + + offset = mapi_dissect_element_GetSearchCriteria_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_req_UseUnicode(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_req_IncludeRestriction(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_req_IncludeFolders(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: [represent_as(uint16)] mapi_SRestriction res; */ +/* IDL: uint8 unknown; */ +/* IDL: uint16 FolderIdCount; */ +/* IDL: [size_is(FolderIdCount)] hyper FolderIds[*]; */ +/* IDL: SearchFlags SearchFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetSearchCriteria_repl_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetSearchCriteria_repl_res,0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_repl_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_repl_unknown, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_repl_FolderIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_repl_FolderIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_repl_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetSearchCriteria_repl_FolderIds_); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_repl_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_repl_FolderIds, NULL); + + return offset; +} + +static int +mapi_dissect_element_GetSearchCriteria_repl_SearchFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_SearchFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetSearchCriteria_repl_SearchFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetSearchCriteria_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetSearchCriteria_repl); + } + + offset = mapi_dissect_element_GetSearchCriteria_repl_res(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_repl_unknown(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_repl_FolderIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_repl_FolderIds(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetSearchCriteria_repl_SearchFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: None=0x0, */ +/* IDL: PreProcess=0x1, */ +/* IDL: NeedsSpooler=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_SubmitFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SubmitFlags SubmitFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_SubmitMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SubmitMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SubmitMessage_req_SubmitFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_SubmitFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SubmitMessage_req_SubmitFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_SubmitMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SubmitMessage_req); + } + + offset = mapi_dissect_element_SubmitMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SubmitMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SubmitMessage_req_SubmitFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SubmitMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] hyper message_id[*]; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 WantCopy; */ +/* IDL: } */ + +static int +mapi_dissect_element_MoveCopyMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_MoveCopyMessages_req_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopyMessages_req_count, 0); + + return offset; +} + +static int +mapi_dissect_element_MoveCopyMessages_req_message_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_MoveCopyMessages_req_message_id_); + + return offset; +} + +static int +mapi_dissect_element_MoveCopyMessages_req_message_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopyMessages_req_message_id, NULL); + + return offset; +} + +static int +mapi_dissect_element_MoveCopyMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopyMessages_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_MoveCopyMessages_req_WantCopy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopyMessages_req_WantCopy, 0); + + return offset; +} + +int +mapi_dissect_struct_MoveCopyMessages_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MoveCopyMessages_req); + } + + offset = mapi_dissect_element_MoveCopyMessages_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopyMessages_req_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopyMessages_req_message_id(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopyMessages_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveCopyMessages_req_WantCopy(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_MoveCopyMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveCopyMessages_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_MoveCopyMessages_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MoveCopyMessages_repl); + } + + offset = mapi_dissect_element_MoveCopyMessages_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper FolderId; */ +/* IDL: hyper MessageId; */ +/* IDL: } */ + +static int +mapi_dissect_element_AbortSubmit_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_AbortSubmit_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_AbortSubmit_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_AbortSubmit_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_AbortSubmit_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_AbortSubmit_req_MessageId, NULL); + + return offset; +} + +int +mapi_dissect_struct_AbortSubmit_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AbortSubmit_req); + } + + offset = mapi_dissect_element_AbortSubmit_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AbortSubmit_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AbortSubmit_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AbortSubmit_req_MessageId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_AbortSubmit_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */ +/* IDL: [case(0x1)] [case(0x1)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */ +/* IDL: } */ + +static int +mapi_dissect_element_Folder_name_lpszA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_Folder_name_lpszA , 0); + + return offset; +} + +static int +mapi_dissect_element_Folder_name_lpszW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_Folder_name_lpszW , 0); + + return offset; +} + +static int +mapi_dissect_Folder_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_Folder_name, &item, "Folder_name"); + } + switch(level) { - case 0x400: - offset = mapi_dissect_element_recipient_displayname_7bit_lpszA(tvb, offset, pinfo, tree, di, drep); + case 0x0: + offset = mapi_dissect_element_Folder_name_lpszA(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1: + offset = mapi_dissect_element_Folder_name_lpszW(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 UseUnicode; */ +/* IDL: hyper FolderId; */ +/* IDL: [switch_is(UseUnicode)] Folder_name NewFolderName; */ +/* IDL: } */ + +static int +mapi_dissect_element_MoveFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_MoveFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveFolder_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_MoveFolder_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveFolder_req_UseUnicode, *UseUnicode); + + return offset; +} + +static int +mapi_dissect_element_MoveFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveFolder_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_MoveFolder_req_NewFolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode) +{ + offset = mapi_dissect_Folder_name(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveFolder_req_NewFolderName, *UseUnicode); + + return offset; +} + +int +mapi_dissect_struct_MoveFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 UseUnicode = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MoveFolder_req); + } + + offset = mapi_dissect_element_MoveFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveFolder_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveFolder_req_UseUnicode(tvb, offset, pinfo, tree, di, drep, &UseUnicode); + + offset = mapi_dissect_element_MoveFolder_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MoveFolder_req_NewFolderName(tvb, offset, pinfo, tree, di, drep, &UseUnicode); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_MoveFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MoveFolder_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_MoveFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MoveFolder_repl); + } + + offset = mapi_dissect_element_MoveFolder_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 WantRecursive; */ +/* IDL: uint8 UseUnicode; */ +/* IDL: hyper FolderId; */ +/* IDL: [switch_is(UseUnicode)] Folder_name NewFolderName; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyFolder_req_WantRecursive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_req_WantRecursive, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyFolder_req_UseUnicode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_req_UseUnicode, *UseUnicode); + + return offset; +} + +static int +mapi_dissect_element_CopyFolder_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_CopyFolder_req_NewFolderName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *UseUnicode) +{ + offset = mapi_dissect_Folder_name(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_req_NewFolderName, *UseUnicode); + + return offset; +} + +int +mapi_dissect_struct_CopyFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 UseUnicode = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyFolder_req); + } + + offset = mapi_dissect_element_CopyFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyFolder_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyFolder_req_WantRecursive(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyFolder_req_UseUnicode(tvb, offset, pinfo, tree, di, drep, &UseUnicode); + + offset = mapi_dissect_element_CopyFolder_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyFolder_req_NewFolderName(tvb, offset, pinfo, tree, di, drep, &UseUnicode); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyFolder_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_CopyFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyFolder_repl); + } + + offset = mapi_dissect_element_CopyFolder_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryColumnsAll_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryColumnsAll_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_QueryColumnsAll_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryColumnsAll_req); + } + + offset = mapi_dissect_element_QueryColumnsAll_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryColumnsAll_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyTagCount; */ +/* IDL: [size_is(PropertyTagCount)] MAPITAGS PropertyTags[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryColumnsAll_repl_PropertyTagCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryColumnsAll_repl_PropertyTagCount, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryColumnsAll_repl_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_QueryColumnsAll_repl_PropertyTags_); + + return offset; +} + +static int +mapi_dissect_element_QueryColumnsAll_repl_PropertyTags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryColumnsAll_repl_PropertyTags, 0); + + return offset; +} + +int +mapi_dissect_struct_QueryColumnsAll_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryColumnsAll_repl); + } + + offset = mapi_dissect_element_QueryColumnsAll_repl_PropertyTagCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryColumnsAll_repl_PropertyTags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_Abort_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_Abort_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_Abort_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Abort_req); + } + + offset = mapi_dissect_element_Abort_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Abort_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: TableStatus TableStatus; */ +/* IDL: } */ + +static int +mapi_dissect_element_Abort_repl_TableStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TableStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_Abort_repl_TableStatus, 0); + + return offset; +} + +int +mapi_dissect_struct_Abort_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Abort_repl); + } + + offset = mapi_dissect_element_Abort_repl_TableStatus(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: CopyFlagsMove = 0x1 , */ +/* IDL: CopyFlagsNoOverwrite = 0x2 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_CopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_CopyFlags_fields[] = { + &hf_mapi_CopyFlags_CopyFlagsMove, + &hf_mapi_CopyFlags_CopyFlagsNoOverwrite, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_CopyFlags, mapi_CopyFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000003)) { + flags &= (~0x00000003); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 WantSubObjects; */ +/* IDL: CopyFlags CopyFlags; */ +/* IDL: mapi_SPropTagArray ExcludedTags; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyTo_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyTo_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_req_WantSubObjects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyTo_req_WantSubObjects, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_req_CopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_CopyFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyTo_req_CopyFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_req_ExcludedTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_CopyTo_req_ExcludedTags,0); + + return offset; +} + +int +mapi_dissect_struct_CopyTo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyTo_req); + } + + offset = mapi_dissect_element_CopyTo_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyTo_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyTo_req_WantSubObjects(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyTo_req_CopyFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyTo_req_ExcludedTags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyTo_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyTo_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_CopyTo_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_CopyTo_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_CopyTo_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_CopyTo_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyTo_repl); + } + + offset = mapi_dissect_element_CopyTo_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyTo_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: hyper ByteCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyToStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyToStream_req_ByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyToStream_req_ByteCount, NULL); + + return offset; +} + +int +mapi_dissect_struct_CopyToStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyToStream_req); + } + + offset = mapi_dissect_element_CopyToStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyToStream_req_ByteCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper ReadByteCount; */ +/* IDL: hyper WrittenByteCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyToStream_repl_ReadByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyToStream_repl_ReadByteCount, NULL); + + return offset; +} + +static int +mapi_dissect_element_CopyToStream_repl_WrittenByteCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyToStream_repl_WrittenByteCount, NULL); + + return offset; +} + +int +mapi_dissect_struct_CopyToStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyToStream_repl); + } + + offset = mapi_dissect_element_CopyToStream_repl_ReadByteCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyToStream_repl_WrittenByteCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_CloneStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CloneStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CloneStream_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_CloneStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CloneStream_req); + } + + offset = mapi_dissect_element_CloneStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CloneStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CloneStream_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_CloneStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: IncludeFreeBusy = 0x02 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_PermissionsTableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_PermissionsTableFlags_fields[] = { + &hf_mapi_PermissionsTableFlags_IncludeFreeBusy, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_PermissionsTableFlags, mapi_PermissionsTableFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000002)) { + flags &= (~0x00000002); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: PermissionsTableFlags TableFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPermissionsTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPermissionsTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPermissionsTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPermissionsTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_PermissionsTableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPermissionsTable_req_TableFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetPermissionsTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPermissionsTable_req); + } + + offset = mapi_dissect_element_GetPermissionsTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPermissionsTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPermissionsTable_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPermissionsTable_req_TableFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_GetPermissionsTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: RulesTableFlags_Unicode = 0x40 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_RulesTableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_RulesTableFlags_fields[] = { + &hf_mapi_RulesTableFlags_RulesTableFlags_Unicode, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_RulesTableFlags, mapi_RulesTableFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000040)) { + flags &= (~0x00000040); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: RulesTableFlags TableFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetRulesTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetRulesTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetRulesTable_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetRulesTable_req_TableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_RulesTableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetRulesTable_req_TableFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_GetRulesTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetRulesTable_req); + } + + offset = mapi_dissect_element_GetRulesTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetRulesTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetRulesTable_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetRulesTable_req_TableFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_GetRulesTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: ModifyPerms_IncludeFreeBusy = 0x02 , */ +/* IDL: ModifyPerms_ReplaceRows = 0x01 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_ModifyPermissionsFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_ModifyPermissionsFlags_fields[] = { + &hf_mapi_ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy, + &hf_mapi_ModifyPermissionsFlags_ModifyPerms_ReplaceRows, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_ModifyPermissionsFlags, mapi_ModifyPermissionsFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000003)) { + flags &= (~0x00000003); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ulRowFlags PermissionDataFlags; */ +/* IDL: mapi_SPropValue_array lpProps; */ +/* IDL: } */ + +static int +mapi_dissect_element_PermissionData_PermissionDataFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRowFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_PermissionData_PermissionDataFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_PermissionData_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_PermissionData_lpProps,0); + + return offset; +} + +int +mapi_dissect_struct_PermissionData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_PermissionData); + } + + offset = mapi_dissect_element_PermissionData_PermissionDataFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PermissionData_lpProps(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ModifyPermissionsFlags ModifyFlags; */ +/* IDL: uint16 ModifyCount; */ +/* IDL: [size_is(ModifyCount)] PermissionData PermissionsData[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_PermissionsData_ModifyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_ModifyPermissionsFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_PermissionsData_ModifyFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_PermissionsData_ModifyCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_PermissionsData_ModifyCount, 0); + + return offset; +} + +static int +mapi_dissect_element_PermissionsData_PermissionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_PermissionsData_PermissionsData_); + + return offset; +} + +static int +mapi_dissect_element_PermissionsData_PermissionsData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PermissionData(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_PermissionsData_PermissionsData,0); + + return offset; +} + +int +mapi_dissect_struct_PermissionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_PermissionsData); + } + + offset = mapi_dissect_element_PermissionsData_ModifyFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PermissionsData_ModifyCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PermissionsData_PermissionsData(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: mapi_PermissionsData rowList; */ +/* IDL: } */ + +static int +mapi_dissect_element_ModifyPermissions_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyPermissions_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyPermissions_req_rowList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PermissionsData(tvb,offset,pinfo,tree,di,drep,hf_mapi_ModifyPermissions_req_rowList,0); + + return offset; +} + +int +mapi_dissect_struct_ModifyPermissions_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ModifyPermissions_req); + } + + offset = mapi_dissect_element_ModifyPermissions_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyPermissions_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyPermissions_req_rowList(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_ModifyPermissions_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ulRowFlags RuleDataFlags; */ +/* IDL: mapi_SPropValue_array PropertyValues; */ +/* IDL: } */ + +static int +mapi_dissect_element_RuleData_RuleDataFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ulRowFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_RuleData_RuleDataFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_RuleData_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_RuleData_PropertyValues,0); + + return offset; +} + +int +mapi_dissect_struct_RuleData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RuleData); + } + + offset = mapi_dissect_element_RuleData_RuleDataFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RuleData_PropertyValues(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: ModifyRulesFlag_Replace = 0x01 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_ModifyRulesFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_ModifyRulesFlag_fields[] = { + &hf_mapi_ModifyRulesFlag_ModifyRulesFlag_Replace, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_ModifyRulesFlag, mapi_ModifyRulesFlag_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000001)) { + flags &= (~0x00000001); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: ModifyRulesFlag ModifyRulesFlags; */ +/* IDL: uint16 RulesCount; */ +/* IDL: [size_is(RulesCount)] RuleData RulesData[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ModifyRules_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRules_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRules_req_ModifyRulesFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_ModifyRulesFlag(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRules_req_ModifyRulesFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRules_req_RulesCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ModifyRules_req_RulesCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ModifyRules_req_RulesData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_ModifyRules_req_RulesData_); + + return offset; +} + +static int +mapi_dissect_element_ModifyRules_req_RulesData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RuleData(tvb,offset,pinfo,tree,di,drep,hf_mapi_ModifyRules_req_RulesData,0); + + return offset; +} + +int +mapi_dissect_struct_ModifyRules_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ModifyRules_req); + } + + offset = mapi_dissect_element_ModifyRules_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRules_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRules_req_ModifyRulesFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRules_req_RulesCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ModifyRules_req_RulesData(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_ModifyRules_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper FolderId; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetOwningServers_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetOwningServers_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetOwningServers_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetOwningServers_req_FolderId, NULL); + + return offset; +} + +int +mapi_dissect_struct_GetOwningServers_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetOwningServers_req); + } + + offset = mapi_dissect_element_GetOwningServers_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetOwningServers_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetOwningServers_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 OwningServersCount; */ +/* IDL: uint16 CheapServersCount; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [size_is(OwningServersCount)] string OwningServers[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetOwningServers_repl_OwningServersCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetOwningServers_repl_OwningServersCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetOwningServers_repl_CheapServersCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetOwningServers_repl_CheapServersCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetOwningServers_repl_OwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetOwningServers_repl_OwningServers_); + + return offset; +} + +static int +mapi_dissect_element_GetOwningServers_repl_OwningServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_GetOwningServers_repl_OwningServers , 0); + + return offset; +} + +int +mapi_dissect_struct_GetOwningServers_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetOwningServers_repl); + } + + offset = mapi_dissect_element_GetOwningServers_repl_OwningServersCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetOwningServers_repl_CheapServersCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetOwningServers_repl_OwningServers(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper Id; */ +/* IDL: } */ + +static int +mapi_dissect_element_LongTermIdFromId_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_LongTermIdFromId_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_LongTermIdFromId_req_Id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermIdFromId_req_Id, NULL); + + return offset; +} + +int +mapi_dissect_struct_LongTermIdFromId_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LongTermIdFromId_req); + } + + offset = mapi_dissect_element_LongTermIdFromId_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongTermIdFromId_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongTermIdFromId_req_Id(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: GUID DatabaseGuid; */ +/* IDL: uint8 GlobalCounter[6]; */ +/* IDL: uint16 padding; */ +/* IDL: } */ + +static int +mapi_dissect_element_LongTermId_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermId_DatabaseGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_LongTermId_GlobalCounter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 6; i++) + offset = mapi_dissect_element_LongTermId_GlobalCounter_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_LongTermId_GlobalCounter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermId_GlobalCounter, 0); + + return offset; +} + +static int +mapi_dissect_element_LongTermId_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermId_padding, 0); + + return offset; +} + +int +mapi_dissect_struct_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LongTermId); + } + + offset = mapi_dissect_element_LongTermId_DatabaseGuid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongTermId_GlobalCounter(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongTermId_padding(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: LongTermId LongTermId; */ +/* IDL: } */ + +static int +mapi_dissect_element_LongTermIdFromId_repl_Success_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermId(tvb,offset,pinfo,tree,di,drep,hf_mapi_LongTermIdFromId_repl_Success_LongTermId,0); + + return offset; +} + +int +mapi_dissect_struct_LongTermIdFromId_repl_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LongTermIdFromId_repl_Success); + } + + offset = mapi_dissect_element_LongTermIdFromId_repl_Success_LongTermId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] LongTermIdFromId_repl_Success Success; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_LongTermIdFromId_repl_status_Success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermIdFromId_repl_Success(tvb,offset,pinfo,tree,di,drep,hf_mapi_LongTermIdFromId_repl_status_Success,0); + + return offset; +} + +static int +mapi_dissect_LongTermIdFromId_repl_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_LongTermIdFromId_repl_status, &item, "LongTermIdFromId_repl_status"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_LongTermIdFromId_repl_status_Success(tvb, offset, pinfo, tree, di, drep); break; default: @@ -8988,64 +29543,101 @@ mapi_dissect_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U_, packe } /* IDL: struct { */ -/* IDL: uint16 bitmask; */ -/* IDL: [switch_is(bitmask&0xA)] recipient_type type; */ -/* IDL: [switch_is(bitmask&0x400)] recipient_displayname_7bit username; */ -/* IDL: uint16 prop_count; */ -/* IDL: uint8 layout; */ -/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prop_values; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: [switch_is(ReturnValue)] LongTermIdFromId_repl_status repl; */ /* IDL: } */ static int -mapi_dissect_element_recipients_headers_bitmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_LongTermIdFromId_repl_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipients_headers_bitmask, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermIdFromId_repl_InputHandleIndex, 0); return offset; } static int -mapi_dissect_element_recipients_headers_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_LongTermIdFromId_repl_ReturnValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) { - offset = mapi_dissect_recipient_type(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipient_type, 0); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermIdFromId_repl_ReturnValue, *ReturnValue); return offset; } static int -mapi_dissect_element_recipients_headers_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_LongTermIdFromId_repl_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *ReturnValue) { - offset = mapi_dissect_recipient_displayname_7bit(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipients_headers_username, 0); + offset = mapi_dissect_LongTermIdFromId_repl_status(tvb, offset, pinfo, tree, di, drep, hf_mapi_LongTermIdFromId_repl_repl, *ReturnValue); return offset; } +int +mapi_dissect_struct_LongTermIdFromId_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint32 ReturnValue = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LongTermIdFromId_repl); + } + + offset = mapi_dissect_element_LongTermIdFromId_repl_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LongTermIdFromId_repl_ReturnValue(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + offset = mapi_dissect_element_LongTermIdFromId_repl_repl(tvb, offset, pinfo, tree, di, drep, &ReturnValue); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: LongTermId LongTermId; */ +/* IDL: } */ + static int -mapi_dissect_element_recipients_headers_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_IdFromLongTermId_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipients_headers_prop_count, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); return offset; } static int -mapi_dissect_element_recipients_headers_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_IdFromLongTermId_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipients_headers_layout, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); return offset; } static int -mapi_dissect_element_recipients_headers_prop_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_IdFromLongTermId_req_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_recipients_headers_prop_values, 1); + offset = mapi_dissect_struct_LongTermId(tvb,offset,pinfo,tree,di,drep,hf_mapi_IdFromLongTermId_req_LongTermId,0); return offset; } int -mapi_dissect_struct_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_IdFromLongTermId_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item = NULL; proto_tree *tree = NULL; @@ -9058,20 +29650,55 @@ mapi_dissect_struct_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_recipients_headers); + tree = proto_item_add_subtree(item, ett_mapi_IdFromLongTermId_req); } - offset = mapi_dissect_element_recipients_headers_bitmask(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_IdFromLongTermId_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_IdFromLongTermId_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_IdFromLongTermId_req_LongTermId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + - offset = mapi_dissect_element_recipients_headers_type(tvb, offset, pinfo, tree, di, drep); + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper Id; */ +/* IDL: } */ + +static int +mapi_dissect_element_IdFromLongTermId_repl_Id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_IdFromLongTermId_repl_Id, NULL); - offset = mapi_dissect_element_recipients_headers_username(tvb, offset, pinfo, tree, di, drep); + return offset; +} - offset = mapi_dissect_element_recipients_headers_prop_count(tvb, offset, pinfo, tree, di, drep); +int +mapi_dissect_struct_IdFromLongTermId_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; - offset = mapi_dissect_element_recipients_headers_layout(tvb, offset, pinfo, tree, di, drep); + di->no_align = TRUE; - offset = mapi_dissect_element_recipients_headers_prop_values(tvb, offset, pinfo, tree, di, drep); + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_IdFromLongTermId_repl); + } + + offset = mapi_dissect_element_IdFromLongTermId_repl_Id(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); @@ -9084,58 +29711,93 @@ mapi_dissect_struct_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet /* IDL: struct { */ -/* IDL: ulRecipClass RecipClass; */ -/* IDL: CODEPAGEID codepage; */ -/* IDL: [subcontext(2)] recipients_headers recipients_headers; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper FolderId; */ /* IDL: } */ static int -mapi_dissect_element_OpenMessage_recipients_RecipClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_PublicFolderIsGhosted_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_enum_ulRecipClass(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_RecipClass, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); return offset; } static int -mapi_dissect_element_OpenMessage_recipients_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_PublicFolderIsGhosted_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_enum_CODEPAGEID(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_codepage, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); return offset; } static int -mapi_dissect_element_OpenMessage_recipients_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_PublicFolderIsGhosted_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - guint16 size; - int conformant = di->conformant_run; - tvbuff_t *subtvb; + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_PublicFolderIsGhosted_req_FolderId, NULL); + + return offset; +} - if (!conformant) { - guint32 saved_flags = di->call_data->flags; - offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMessage_recipients_recipients_headers_, &size); - di->call_data->flags &= ~DCERPC_IS_NDR64; - subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1); - mapi_dissect_element_OpenMessage_recipients_recipients_headers_(subtvb, 0, pinfo, tree, di, drep); - offset += (int)size; - di->call_data->flags = saved_flags; +int +mapi_dissect_struct_PublicFolderIsGhosted_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_PublicFolderIsGhosted_req); } + offset = mapi_dissect_element_PublicFolderIsGhosted_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PublicFolderIsGhosted_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_PublicFolderIsGhosted_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 IsGhosted; */ +/* IDL: [switch_is(IsGhosted)] IsGhosted Ghost; */ +/* IDL: } */ + +static int +mapi_dissect_element_PublicFolderIsGhosted_repl_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_PublicFolderIsGhosted_repl_IsGhosted, *IsGhosted); + return offset; } static int -mapi_dissect_element_OpenMessage_recipients_recipients_headers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_PublicFolderIsGhosted_repl_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) { - offset = mapi_dissect_struct_recipients_headers(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenMessage_recipients_recipients_headers,0); + offset = mapi_dissect_IsGhosted(tvb, offset, pinfo, tree, di, drep, hf_mapi_PublicFolderIsGhosted_repl_Ghost, *IsGhosted); return offset; } int -mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_struct_PublicFolderIsGhosted_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { + guint8 IsGhosted = 0; proto_item *item = NULL; proto_tree *tree = NULL; gboolean oldalign = di->no_align; @@ -9147,14 +29809,118 @@ mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, pa if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); - tree = proto_item_add_subtree(item, ett_mapi_OpenMessage_recipients); + tree = proto_item_add_subtree(item, ett_mapi_PublicFolderIsGhosted_repl); } - offset = mapi_dissect_element_OpenMessage_recipients_RecipClass(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_PublicFolderIsGhosted_repl_IsGhosted(tvb, offset, pinfo, tree, di, drep, &IsGhosted); - offset = mapi_dissect_element_OpenMessage_recipients_codepage(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_PublicFolderIsGhosted_repl_Ghost(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: MAPI_READONLY=0x0, */ +/* IDL: MAPI_READWRITE=0x1, */ +/* IDL: MAPI_CREATE=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_OpenEmbeddedMessage_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint16 CodePageId; */ +/* IDL: OpenEmbeddedMessage_OpenModeFlags OpenModeFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenEmbeddedMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_req_CodePageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_req_CodePageId, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_req_OpenModeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_OpenEmbeddedMessage_OpenModeFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_req_OpenModeFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_OpenEmbeddedMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenEmbeddedMessage_req); + } + + offset = mapi_dissect_element_OpenEmbeddedMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); - offset = mapi_dissect_element_OpenMessage_recipients_recipients_headers(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_OpenEmbeddedMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_req_CodePageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_req_OpenModeFlags(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); @@ -9167,73 +29933,4515 @@ mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, pa /* IDL: struct { */ +/* IDL: uint8 Reserved; */ +/* IDL: hyper MessageId; */ +/* IDL: uint8 HasNamedProperties; */ +/* IDL: TypedString SubjectPrefix; */ +/* IDL: TypedString NormalizedSubject; */ +/* IDL: uint16 RecipientCount; */ +/* IDL: uint16 ColumnCount; */ +/* IDL: [size_is(ColumnCount)] MAPITAGS RecipientColumns[*]; */ +/* IDL: uint8 RowCount; */ +/* IDL: [size_is(RowCount)] OpenRecipientRow RecipientRows[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_MessageId, NULL); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_HasNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_HasNamedProperties, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_SubjectPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenEmbeddedMessage_repl_SubjectPrefix,0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_NormalizedSubject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TypedString(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenEmbeddedMessage_repl_NormalizedSubject,0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_RecipientCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_ColumnCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_ColumnCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns_); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_RecipientColumns, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenEmbeddedMessage_repl_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows_); + + return offset; +} + +static int +mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenRecipientRow(tvb,offset,pinfo,tree,di,drep,hf_mapi_OpenEmbeddedMessage_repl_RecipientRows,0); + + return offset; +} + +int +mapi_dissect_struct_OpenEmbeddedMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenEmbeddedMessage_repl); + } + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_MessageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_HasNamedProperties(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_SubjectPrefix(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_NormalizedSubject(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_ColumnCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientColumns(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenEmbeddedMessage_repl_RecipientRows(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetSpooler_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetSpooler_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_SetSpooler_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetSpooler_req); + } + + offset = mapi_dissect_element_SetSpooler_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetSpooler_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SetSpooler_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: LockState_1stLock=0x0, */ +/* IDL: LockState_1stUnlock=0x1, */ +/* IDL: LockState_1stFinished=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_LockState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper MessageId; */ +/* IDL: LockState LockState; */ +/* IDL: } */ + +static int +mapi_dissect_element_SpoolerLockMessage_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SpoolerLockMessage_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SpoolerLockMessage_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SpoolerLockMessage_req_MessageId, NULL); + + return offset; +} + +static int +mapi_dissect_element_SpoolerLockMessage_req_LockState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_LockState(tvb, offset, pinfo, tree, di, drep, hf_mapi_SpoolerLockMessage_req_LockState, 0); + + return offset; +} + +int +mapi_dissect_struct_SpoolerLockMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SpoolerLockMessage_req); + } + + offset = mapi_dissect_element_SpoolerLockMessage_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SpoolerLockMessage_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SpoolerLockMessage_req_MessageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SpoolerLockMessage_req_LockState(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SpoolerLockMessage_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_AddressTypes_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_AddressTypes_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_AddressTypes_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AddressTypes_req); + } + + offset = mapi_dissect_element_AddressTypes_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AddressTypes_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 cValues; */ +/* IDL: uint16 size; */ +/* IDL: [size_is(cValues)] mapi_LPSTR transport[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AddressTypes_repl_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AddressTypes_repl_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_AddressTypes_repl_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AddressTypes_repl_size, 0); + + return offset; +} + +static int +mapi_dissect_element_AddressTypes_repl_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_AddressTypes_repl_transport_); + + return offset; +} + +static int +mapi_dissect_element_AddressTypes_repl_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LPSTR(tvb,offset,pinfo,tree,di,drep,hf_mapi_AddressTypes_repl_transport,0); + + return offset; +} + +int +mapi_dissect_struct_AddressTypes_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AddressTypes_repl); + } + + offset = mapi_dissect_element_AddressTypes_repl_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AddressTypes_repl_size(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AddressTypes_repl_transport(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_TransportSend_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_TransportSend_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_TransportSend_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_TransportSend_req); + } + + offset = mapi_dissect_element_TransportSend_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportSend_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] mapi_SPropValue_array lpProps; */ +/* IDL: [case(0x1)] [case(0x1)] EMPTY ; */ +/* IDL: } */ + +static int +mapi_dissect_element_TransportSend_lpProps_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_TransportSend_lpProps_lpProps,0); + + return offset; +} + +static int +mapi_dissect_TransportSend_lpProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_TransportSend_lpProps, &item, "TransportSend_lpProps"); + } + + switch(level) { + case 0x0: + offset = mapi_dissect_element_TransportSend_lpProps_lpProps(tvb, offset, pinfo, tree, di, drep); + break; + + case 0x1: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 NoPropertiesReturned; */ +/* IDL: [switch_is(NoPropertiesReturned)] TransportSend_lpProps properties; */ +/* IDL: } */ + +static int +mapi_dissect_element_TransportSend_repl_NoPropertiesReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *NoPropertiesReturned) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_TransportSend_repl_NoPropertiesReturned, *NoPropertiesReturned); + + return offset; +} + +static int +mapi_dissect_element_TransportSend_repl_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *NoPropertiesReturned) +{ + offset = mapi_dissect_TransportSend_lpProps(tvb, offset, pinfo, tree, di, drep, hf_mapi_TransportSend_repl_properties, *NoPropertiesReturned); + + return offset; +} + +int +mapi_dissect_struct_TransportSend_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 NoPropertiesReturned = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_TransportSend_repl); + } + + offset = mapi_dissect_element_TransportSend_repl_NoPropertiesReturned(tvb, offset, pinfo, tree, di, drep, &NoPropertiesReturned); + + offset = mapi_dissect_element_TransportSend_repl_properties(tvb, offset, pinfo, tree, di, drep, &NoPropertiesReturned); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 BufferSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_req_BufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_req_BufferSize, 0); + + return offset; +} + +int +mapi_dissect_struct_FastTransferSourceGetBuffer_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FastTransferSourceGetBuffer_req); + } + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_req_BufferSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: TransferStatus_Error=0x0, */ +/* IDL: TransferStatus_Partial=0x1, */ +/* IDL: TransferStatus_NoRoom=0x2, */ +/* IDL: TransferStatus_Done=0x3, */ +/* IDL: } */ + +int +mapi_dissect_enum_TransferStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +{ + guint16 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: TransferStatus TransferStatus; */ +/* IDL: uint16 InProgressCount; */ +/* IDL: uint16 TotalStepCount; */ +/* IDL: uint8 Reserved; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB TransferBuffer; */ +/* IDL: } */ + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_TransferStatus(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_repl_TransferStatus, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_repl_InProgressCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_repl_InProgressCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_repl_TotalStepCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_repl_TotalStepCount, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_repl_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_FastTransferSourceGetBuffer_repl_TransferBuffer, 1); + + return offset; +} + +int +mapi_dissect_struct_FastTransferSourceGetBuffer_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FastTransferSourceGetBuffer_repl); + } + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferStatus(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_repl_InProgressCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_repl_TotalStepCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_repl_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FastTransferSourceGetBuffer_repl_TransferBuffer(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: DIR_FORWARD=0x0, */ +/* IDL: DIR_BACKWARD=0x1, */ +/* IDL: } */ + +int +mapi_dissect_enum_FindRow_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: FindRow_ulFlags ulFlags; */ +/* IDL: [represent_as(uint16)] mapi_SRestriction res; */ +/* IDL: BOOKMARK origin; */ +/* IDL: SBinary_short bookmark; */ +/* IDL: } */ + +static int +mapi_dissect_element_FindRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_FindRow_ulFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_FindRow_req_ulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_req_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SRestriction(tvb,offset,pinfo,tree,di,drep,hf_mapi_FindRow_req_res,0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_req_origin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_BOOKMARK(tvb, offset, pinfo, tree, di, drep, hf_mapi_FindRow_req_origin, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_req_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_FindRow_req_bookmark,0); + + return offset; +} + +int +mapi_dissect_struct_FindRow_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FindRow_req); + } + + offset = mapi_dissect_element_FindRow_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_req_ulFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_req_res(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_req_origin(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_req_bookmark(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 RowNoLongerVisible; */ +/* IDL: uint8 HasRowData; */ +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] DATA_BLOB row; */ +/* IDL: } */ + +static int +mapi_dissect_element_FindRow_repl_RowNoLongerVisible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_FindRow_repl_RowNoLongerVisible, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_repl_HasRowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_FindRow_repl_HasRowData, 0); + + return offset; +} + +static int +mapi_dissect_element_FindRow_repl_row(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_FindRow_repl_row, 0); + + return offset; +} + +int +mapi_dissect_struct_FindRow_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FindRow_repl); + } + + offset = mapi_dissect_element_FindRow_repl_RowNoLongerVisible(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_repl_HasRowData(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FindRow_repl_row(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantCancel; */ +/* IDL: } */ + +static int +mapi_dissect_element_Progress_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_Progress_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_Progress_req_WantCancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Progress_req_WantCancel, 0); + + return offset; +} + +int +mapi_dissect_struct_Progress_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Progress_req); + } + + offset = mapi_dissect_element_Progress_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Progress_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Progress_req_WantCancel(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 CompletedTaskCount; */ +/* IDL: uint32 TotalTaskCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_Progress_repl_CompletedTaskCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_Progress_repl_CompletedTaskCount, 0); + + return offset; +} + +static int +mapi_dissect_element_Progress_repl_TotalTaskCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_Progress_repl_TotalTaskCount, 0); + + return offset; +} + +int +mapi_dissect_struct_Progress_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Progress_repl); + } + + offset = mapi_dissect_element_Progress_repl_CompletedTaskCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Progress_repl_TotalTaskCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper MessageId; */ +/* IDL: hyper FolderId; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string MessageClass; */ +/* IDL: uint32 MessageFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_TransportNewMail_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_TransportNewMail_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_TransportNewMail_req_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_TransportNewMail_req_MessageId, NULL); + + return offset; +} + +static int +mapi_dissect_element_TransportNewMail_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_TransportNewMail_req_FolderId, NULL); + + return offset; +} + +static int +mapi_dissect_element_TransportNewMail_req_MessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_TransportNewMail_req_MessageClass , 0); + + return offset; +} + +static int +mapi_dissect_element_TransportNewMail_req_MessageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_TransportNewMail_req_MessageFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_TransportNewMail_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_TransportNewMail_req); + } + + offset = mapi_dissect_element_TransportNewMail_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportNewMail_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportNewMail_req_MessageId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportNewMail_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportNewMail_req_MessageClass(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_TransportNewMail_req_MessageFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_TransportNewMail_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetValidAttachments_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetValidAttachments_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetValidAttachments_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetValidAttachments_req); + } + + offset = mapi_dissect_element_GetValidAttachments_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetValidAttachments_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 AttachmentIdCount; */ +/* IDL: [size_is(AttachmentIdCount)] uint32 AttachmentIdArray[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetValidAttachments_repl_AttachmentIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetValidAttachments_repl_AttachmentIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray_); + + return offset; +} + +static int +mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetValidAttachments_repl_AttachmentIdArray, 0); + + return offset; +} + +int +mapi_dissect_struct_GetValidAttachments_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetValidAttachments_repl); + } + + offset = mapi_dissect_element_GetValidAttachments_repl_AttachmentIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetValidAttachments_repl_AttachmentIdArray(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: MNID_ID=0, */ +/* IDL: MNID_STRING=1, */ +/* IDL: } */ + +int +mapi_dissect_enum_ulKind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 NameSize; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string Name; */ +/* IDL: } */ + +static int +mapi_dissect_element_name_NameSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_name_NameSize, 0); + + return offset; +} + +static int +mapi_dissect_element_name_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_mapi_name_Name , 0); + + return offset; +} + +int +mapi_dissect_struct_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_mapi_name); + } + + offset = mapi_dissect_element_name_NameSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_name_Name(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(MNID_ID)] [case(MNID_ID)] uint32 lid; */ +/* IDL: [case(MNID_STRING)] [case(MNID_STRING)] mapi_name lpwstr; */ +/* IDL: } */ + +static int +mapi_dissect_element_Kind_lid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_Kind_lid, 0); + + return offset; +} + +static int +mapi_dissect_element_Kind_lpwstr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_name(tvb,offset,pinfo,tree,di,drep,hf_mapi_Kind_lpwstr,0); + + return offset; +} + +static int +mapi_dissect_Kind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_Kind, &item, "Kind"); + } + + switch(level) { + case MNID_ID: + offset = mapi_dissect_element_Kind_lid(tvb, offset, pinfo, tree, di, drep); + break; + + case MNID_STRING: + offset = mapi_dissect_element_Kind_lpwstr(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: ulKind ulKind; */ +/* IDL: GUID lpguid; */ +/* IDL: [switch_is(ulKind)] Kind kind; */ +/* IDL: } */ + +static int +mapi_dissect_element_MAPINAMEID_ulKind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulKind) +{ + offset = mapi_dissect_enum_ulKind(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPINAMEID_ulKind, ulKind); + + return offset; +} + +static int +mapi_dissect_element_MAPINAMEID_lpguid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPINAMEID_lpguid, NULL); + + return offset; +} + +static int +mapi_dissect_element_MAPINAMEID_kind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *ulKind) +{ + offset = mapi_dissect_Kind(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPINAMEID_kind, *ulKind); + + return offset; +} + +int +mapi_dissect_struct_MAPINAMEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 ulKind = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_MAPINAMEID); + } + + offset = mapi_dissect_element_MAPINAMEID_ulKind(tvb, offset, pinfo, tree, di, drep, &ulKind); + + offset = mapi_dissect_element_MAPINAMEID_lpguid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_MAPINAMEID_kind(tvb, offset, pinfo, tree, di, drep, &ulKind); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 PropertyIdCount; */ +/* IDL: [size_is(PropertyIdCount)] uint16 PropertyIds[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetNamesFromIDs_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_req_PropertyIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetNamesFromIDs_req_PropertyIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_req_PropertyIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetNamesFromIDs_req_PropertyIds_); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_req_PropertyIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetNamesFromIDs_req_PropertyIds, 0); + + return offset; +} + +int +mapi_dissect_struct_GetNamesFromIDs_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetNamesFromIDs_req); + } + + offset = mapi_dissect_element_GetNamesFromIDs_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetNamesFromIDs_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetNamesFromIDs_req_PropertyIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetNamesFromIDs_req_PropertyIds(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] MAPINAMEID nameid[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetNamesFromIDs_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetNamesFromIDs_repl_count, 0); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_repl_nameid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetNamesFromIDs_repl_nameid_); + + return offset; +} + +static int +mapi_dissect_element_GetNamesFromIDs_repl_nameid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MAPINAMEID(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetNamesFromIDs_repl_nameid,0); + + return offset; +} + +int +mapi_dissect_struct_GetNamesFromIDs_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetNamesFromIDs_repl); + } + + offset = mapi_dissect_element_GetNamesFromIDs_repl_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetNamesFromIDs_repl_nameid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 ulFlags; */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] MAPINAMEID nameid[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetIDsFromNames_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_req_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetIDsFromNames_req_ulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_req_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetIDsFromNames_req_count, 0); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_req_nameid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetIDsFromNames_req_nameid_); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_req_nameid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MAPINAMEID(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetIDsFromNames_req_nameid,0); + + return offset; +} + +int +mapi_dissect_struct_GetIDsFromNames_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetIDsFromNames_req); + } + + offset = mapi_dissect_element_GetIDsFromNames_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetIDsFromNames_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetIDsFromNames_req_ulFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetIDsFromNames_req_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetIDsFromNames_req_nameid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 count; */ +/* IDL: [size_is(count)] uint16 propID[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetIDsFromNames_repl_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetIDsFromNames_repl_count, 0); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_repl_propID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetIDsFromNames_repl_propID_); + + return offset; +} + +static int +mapi_dissect_element_GetIDsFromNames_repl_propID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetIDsFromNames_repl_propID, 0); + + return offset; +} + +int +mapi_dissect_struct_GetIDsFromNames_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetIDsFromNames_repl); + } + + offset = mapi_dissect_element_GetIDsFromNames_repl_count(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetIDsFromNames_repl_propID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SBinary_short ServerEntryId; */ +/* IDL: SBinary_short ClientEntryId; */ +/* IDL: } */ + +static int +mapi_dissect_element_UpdateDeferredActionMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_UpdateDeferredActionMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_UpdateDeferredActionMessages_req_ServerEntryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_UpdateDeferredActionMessages_req_ServerEntryId,0); + + return offset; +} + +static int +mapi_dissect_element_UpdateDeferredActionMessages_req_ClientEntryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_UpdateDeferredActionMessages_req_ClientEntryId,0); + + return offset; +} + +int +mapi_dissect_struct_UpdateDeferredActionMessages_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_UpdateDeferredActionMessages_req); + } + + offset = mapi_dissect_element_UpdateDeferredActionMessages_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UpdateDeferredActionMessages_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UpdateDeferredActionMessages_req_ServerEntryId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UpdateDeferredActionMessages_req_ClientEntryId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_UpdateDeferredActionMessages_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 WantDeleteAssociated; */ +/* IDL: } */ + +static int +mapi_dissect_element_EmptyFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_EmptyFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_EmptyFolder_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EmptyFolder_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_EmptyFolder_req_WantDeleteAssociated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EmptyFolder_req_WantDeleteAssociated, 0); + + return offset; +} + +int +mapi_dissect_struct_EmptyFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_EmptyFolder_req); + } + + offset = mapi_dissect_element_EmptyFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_EmptyFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_EmptyFolder_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_EmptyFolder_req_WantDeleteAssociated(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_EmptyFolder_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EmptyFolder_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_EmptyFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_EmptyFolder_repl); + } + + offset = mapi_dissect_element_EmptyFolder_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint16 MaxRowCount; */ +/* IDL: hyper CategoryId; */ +/* IDL: } */ + +static int +mapi_dissect_element_ExpandRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ExpandRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ExpandRow_req_MaxRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ExpandRow_req_MaxRowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ExpandRow_req_CategoryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ExpandRow_req_CategoryId, NULL); + + return offset; +} + +int +mapi_dissect_struct_ExpandRow_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ExpandRow_req); + } + + offset = mapi_dissect_element_ExpandRow_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ExpandRow_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ExpandRow_req_MaxRowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ExpandRow_req_CategoryId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 ExpandedRowCount; */ +/* IDL: uint16 RowCount; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB RowData; */ +/* IDL: } */ + +static int +mapi_dissect_element_ExpandRow_repl_ExpandedRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ExpandRow_repl_ExpandedRowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ExpandRow_repl_RowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ExpandRow_repl_RowCount, 0); + + return offset; +} + +static int +mapi_dissect_element_ExpandRow_repl_RowData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ExpandRow_repl_RowData, 1); + + return offset; +} + +int +mapi_dissect_struct_ExpandRow_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ExpandRow_repl); + } + + offset = mapi_dissect_element_ExpandRow_repl_ExpandedRowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ExpandRow_repl_RowCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ExpandRow_repl_RowData(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper CategoryId; */ +/* IDL: } */ + +static int +mapi_dissect_element_CollapseRow_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CollapseRow_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_CollapseRow_req_CategoryId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_CollapseRow_req_CategoryId, NULL); + + return offset; +} + +int +mapi_dissect_struct_CollapseRow_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CollapseRow_req); + } + + offset = mapi_dissect_element_CollapseRow_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CollapseRow_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CollapseRow_req_CategoryId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 CollapsedRowCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_CollapseRow_repl_CollapsedRowCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_CollapseRow_repl_CollapsedRowCount, 0); + + return offset; +} + +int +mapi_dissect_struct_CollapseRow_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CollapseRow_repl); + } + + offset = mapi_dissect_element_CollapseRow_repl_CollapsedRowCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper RegionOffset; */ +/* IDL: hyper RegionSize; */ +/* IDL: uint32 LockFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_LockRegionStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_LockRegionStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_LockRegionStream_req_RegionOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_LockRegionStream_req_RegionOffset, NULL); + + return offset; +} + +static int +mapi_dissect_element_LockRegionStream_req_RegionSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_LockRegionStream_req_RegionSize, NULL); + + return offset; +} + +static int +mapi_dissect_element_LockRegionStream_req_LockFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_LockRegionStream_req_LockFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_LockRegionStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LockRegionStream_req); + } + + offset = mapi_dissect_element_LockRegionStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LockRegionStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LockRegionStream_req_RegionOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LockRegionStream_req_RegionSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LockRegionStream_req_LockFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_LockRegionStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper RegionOffset; */ +/* IDL: hyper RegionSize; */ +/* IDL: uint32 LockFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_UnlockRegionStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_UnlockRegionStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_UnlockRegionStream_req_RegionOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_UnlockRegionStream_req_RegionOffset, NULL); + + return offset; +} + +static int +mapi_dissect_element_UnlockRegionStream_req_RegionSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_UnlockRegionStream_req_RegionSize, NULL); + + return offset; +} + +static int +mapi_dissect_element_UnlockRegionStream_req_LockFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_UnlockRegionStream_req_LockFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_UnlockRegionStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_UnlockRegionStream_req); + } + + offset = mapi_dissect_element_UnlockRegionStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UnlockRegionStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UnlockRegionStream_req_RegionOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UnlockRegionStream_req_RegionSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_UnlockRegionStream_req_LockFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_UnlockRegionStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_CommitStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CommitStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_CommitStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CommitStream_req); + } + + offset = mapi_dissect_element_CommitStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CommitStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_CommitStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStreamSize_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetStreamSize_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStreamSize_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStreamSize_req); + } + + offset = mapi_dissect_element_GetStreamSize_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetStreamSize_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 StreamSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStreamSize_repl_StreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetStreamSize_repl_StreamSize, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStreamSize_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStreamSize_repl); + } + + offset = mapi_dissect_element_GetStreamSize_repl_StreamSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: NoStrings = 0x01 , */ +/* IDL: NoIds = 0x02 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_QueryFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_QueryFlags_fields[] = { + &hf_mapi_QueryFlags_NoStrings, + &hf_mapi_QueryFlags_NoIds, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_QueryFlags, mapi_QueryFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000003)) { + flags &= (~0x00000003); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [case(0x1)] [case(0x1)] GUID guid; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryNamedProperties_guid_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_guid_guid, NULL); + + return offset; +} + +static int +mapi_dissect_QueryNamedProperties_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_QueryNamedProperties_guid, &item, "QueryNamedProperties_guid"); + } + + switch(level) { + case 0x0: + break; + + case 0x1: + offset = mapi_dissect_element_QueryNamedProperties_guid_guid(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: QueryFlags QueryFlags; */ +/* IDL: uint8 HasGuid; */ +/* IDL: [switch_is(HasGuid)] QueryNamedProperties_guid PropertyGuid; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryNamedProperties_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_req_QueryFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_QueryFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_req_QueryFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_req_HasGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasGuid) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_req_HasGuid, *HasGuid); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_req_PropertyGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *HasGuid) +{ + offset = mapi_dissect_QueryNamedProperties_guid(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_req_PropertyGuid, *HasGuid); + + return offset; +} + +int +mapi_dissect_struct_QueryNamedProperties_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 HasGuid = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryNamedProperties_req); + } + + offset = mapi_dissect_element_QueryNamedProperties_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryNamedProperties_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryNamedProperties_req_QueryFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryNamedProperties_req_HasGuid(tvb, offset, pinfo, tree, di, drep, &HasGuid); + + offset = mapi_dissect_element_QueryNamedProperties_req_PropertyGuid(tvb, offset, pinfo, tree, di, drep, &HasGuid); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 IdCount; */ +/* IDL: [size_is(IdCount)] uint16 PropertyIds[*]; */ +/* IDL: [size_is(IdCount)] MAPINAMEID PropertyNames[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_QueryNamedProperties_repl_IdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_repl_IdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_repl_PropertyIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_QueryNamedProperties_repl_PropertyIds_); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_repl_PropertyIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_QueryNamedProperties_repl_PropertyIds, 0); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_repl_PropertyNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_QueryNamedProperties_repl_PropertyNames_); + + return offset; +} + +static int +mapi_dissect_element_QueryNamedProperties_repl_PropertyNames_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MAPINAMEID(tvb,offset,pinfo,tree,di,drep,hf_mapi_QueryNamedProperties_repl_PropertyNames,0); + + return offset; +} + +int +mapi_dissect_struct_QueryNamedProperties_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_QueryNamedProperties_repl); + } + + offset = mapi_dissect_element_QueryNamedProperties_repl_IdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryNamedProperties_repl_PropertyIds(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_QueryNamedProperties_repl_PropertyNames(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: GUID DatabaseGuid; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPerUserLongTermIds_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserLongTermIds_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserLongTermIds_req_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPerUserLongTermIds_req_DatabaseGuid, NULL); + + return offset; +} + +int +mapi_dissect_struct_GetPerUserLongTermIds_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPerUserLongTermIds_req); + } + + offset = mapi_dissect_element_GetPerUserLongTermIds_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPerUserLongTermIds_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPerUserLongTermIds_req_DatabaseGuid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 LongTermIdCount; */ +/* IDL: [size_is(LongTermIdCount)] LongTermId LongTermIds[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPerUserLongTermIds_repl_LongTermIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds_); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermId(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetPerUserLongTermIds_repl_LongTermIds,0); + + return offset; +} + +int +mapi_dissect_struct_GetPerUserLongTermIds_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPerUserLongTermIds_repl); + } + + offset = mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPerUserLongTermIds_repl_LongTermIds(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: LongTermId LongTermId; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPerUserGuid_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserGuid_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetPerUserGuid_req_LongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermId(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetPerUserGuid_req_LongTermId,0); + + return offset; +} + +int +mapi_dissect_struct_GetPerUserGuid_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPerUserGuid_req); + } + + offset = mapi_dissect_element_GetPerUserGuid_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPerUserGuid_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetPerUserGuid_req_LongTermId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: GUID DatabaseGuid; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetPerUserGuid_repl_DatabaseGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetPerUserGuid_repl_DatabaseGuid, NULL); + + return offset; +} + +int +mapi_dissect_struct_GetPerUserGuid_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetPerUserGuid_repl); + } + + offset = mapi_dissect_element_GetPerUserGuid_repl_DatabaseGuid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 FolderId[24]; */ +/* IDL: uint8 WhatIfChanged; */ +/* IDL: uint32 DataOffset; */ +/* IDL: uint16 MaxDataSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadPerUserInformation_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 24; i++) + offset = mapi_dissect_element_ReadPerUserInformation_req_FolderId_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_FolderId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_req_FolderId, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_WhatIfChanged(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_req_WhatIfChanged, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_DataOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_req_DataOffset, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_req_MaxDataSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_req_MaxDataSize, 0); + + return offset; +} + +int +mapi_dissect_struct_ReadPerUserInformation_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadPerUserInformation_req); + } + + offset = mapi_dissect_element_ReadPerUserInformation_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_req_FolderId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_req_WhatIfChanged(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_req_DataOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_req_MaxDataSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasFinished; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB Data; */ +/* IDL: } */ + +static int +mapi_dissect_element_ReadPerUserInformation_repl_HasFinished(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_repl_HasFinished, 0); + + return offset; +} + +static int +mapi_dissect_element_ReadPerUserInformation_repl_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReadPerUserInformation_repl_Data, 1); + + return offset; +} + +int +mapi_dissect_struct_ReadPerUserInformation_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReadPerUserInformation_repl); + } + + offset = mapi_dissect_element_ReadPerUserInformation_repl_HasFinished(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReadPerUserInformation_repl_Data(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: MSGFLAG_READ ReadFlags; */ +/* IDL: uint16 MessageIdCount; */ +/* IDL: [size_is(MessageIdCount)] hyper MessageIds[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetReadFlags_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReadFlags_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_ReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_MSGFLAG_READ(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReadFlags_req_ReadFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_MessageIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReadFlags_req_MessageIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_MessageIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SetReadFlags_req_MessageIds_); + + return offset; +} + +static int +mapi_dissect_element_SetReadFlags_req_MessageIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReadFlags_req_MessageIds, NULL); + + return offset; +} + +int +mapi_dissect_struct_SetReadFlags_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetReadFlags_req); + } + + offset = mapi_dissect_element_SetReadFlags_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReadFlags_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReadFlags_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReadFlags_req_ReadFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReadFlags_req_MessageIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetReadFlags_req_MessageIds(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetReadFlags_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetReadFlags_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_SetReadFlags_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetReadFlags_repl); + } + + offset = mapi_dissect_element_SetReadFlags_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: CopyFlags CopyFlags; */ +/* IDL: mapi_SPropTagArray PropertyTags; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyProperties_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyProperties_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyProperties_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyProperties_req_CopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_CopyFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyProperties_req_CopyFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyProperties_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_CopyProperties_req_PropertyTags,0); + + return offset; +} + +int +mapi_dissect_struct_CopyProperties_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyProperties_req); + } + + offset = mapi_dissect_element_CopyProperties_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyProperties_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyProperties_req_CopyFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyProperties_req_PropertyTags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_CopyProperties_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_CopyProperties_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_CopyProperties_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_CopyProperties_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_CopyProperties_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_CopyProperties_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_CopyProperties_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_CopyProperties_repl); + } + + offset = mapi_dissect_element_CopyProperties_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_CopyProperties_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 dwLowDateTime; */ +/* IDL: uint32 dwHighDateTime; */ +/* IDL: } */ + +static int +mapi_dissect_element_FILETIME_dwLowDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FILETIME_dwLowDateTime, 0); + + return offset; +} + +static int +mapi_dissect_element_FILETIME_dwHighDateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_FILETIME_dwHighDateTime, 0); + + return offset; +} + +int +mapi_dissect_struct_FILETIME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FILETIME); + } + + offset = mapi_dissect_element_FILETIME_dwLowDateTime(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FILETIME_dwHighDateTime(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ /* IDL: uint8 unknown; */ -/* IDL: uint8 type_prefix; */ -/* IDL: uint16 recipient_count; */ -/* IDL: SPropTagArray SPropTagArray; */ +/* IDL: hyper fid; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszMessageClass; */ +/* IDL: FILETIME modiftime; */ /* IDL: } */ +static int +mapi_dissect_element_ReceiveFolder_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReceiveFolder_unknown, 0); + + return offset; +} + +static int +mapi_dissect_element_ReceiveFolder_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_ReceiveFolder_fid, NULL); + + return offset; +} + +static int +mapi_dissect_element_ReceiveFolder_lpszMessageClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_ReceiveFolder_lpszMessageClass , 0); + + return offset; +} + +static int +mapi_dissect_element_ReceiveFolder_modiftime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FILETIME(tvb,offset,pinfo,tree,di,drep,hf_mapi_ReceiveFolder_modiftime,0); + + return offset; +} + +int +mapi_dissect_struct_ReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ReceiveFolder); + } + + offset = mapi_dissect_element_ReceiveFolder_unknown(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReceiveFolder_fid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReceiveFolder_lpszMessageClass(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ReceiveFolder_modiftime(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: struct { */ -/* IDL: uint32 unknown; */ -/* IDL: uint16 prop_count; */ -/* IDL: MAPITAGS properties[prop_count]; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ /* IDL: } */ +static int +mapi_dissect_element_GetReceiveFolderTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolderTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetReceiveFolderTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetReceiveFolderTable_req); + } + + offset = mapi_dissect_element_GetReceiveFolderTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetReceiveFolderTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + /* IDL: struct { */ -/* IDL: uint8 layout; */ -/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prop_data; */ +/* IDL: uint32 cValues; */ +/* IDL: [size_is(cValues)] ReceiveFolder entries[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetReceiveFolderTable_repl_cValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetReceiveFolderTable_repl_cValues, 0); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolderTable_repl_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_GetReceiveFolderTable_repl_entries_); + + return offset; +} + +static int +mapi_dissect_element_GetReceiveFolderTable_repl_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReceiveFolder(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetReceiveFolderTable_repl_entries,0); + + return offset; +} + +int +mapi_dissect_struct_GetReceiveFolderTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetReceiveFolderTable_repl); + } + + offset = mapi_dissect_element_GetReceiveFolderTable_repl_cValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetReceiveFolderTable_repl_entries(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: hyper RowId; */ +/* IDL: uint32 RowInstanceNumber; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetCollapseState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetCollapseState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetCollapseState_req_RowId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetCollapseState_req_RowId, NULL); + + return offset; +} + +static int +mapi_dissect_element_GetCollapseState_req_RowInstanceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetCollapseState_req_RowInstanceNumber, 0); + + return offset; +} + +int +mapi_dissect_struct_GetCollapseState_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetCollapseState_req); + } + + offset = mapi_dissect_element_GetCollapseState_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetCollapseState_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetCollapseState_req_RowId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetCollapseState_req_RowInstanceNumber(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: SBinary_short CollapseState; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetCollapseState_repl_CollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_GetCollapseState_repl_CollapseState,0); + + return offset; +} + +int +mapi_dissect_struct_GetCollapseState_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetCollapseState_repl); + } + + offset = mapi_dissect_element_GetCollapseState_repl_CollapseState(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SBinary_short CollapseState; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetCollapseState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetCollapseState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetCollapseState_req_CollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetCollapseState_req_CollapseState,0); + + return offset; +} + +int +mapi_dissect_struct_SetCollapseState_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetCollapseState_req); + } + + offset = mapi_dissect_element_SetCollapseState_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetCollapseState_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetCollapseState_req_CollapseState(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: SBinary_short bookmark; */ /* IDL: } */ +static int +mapi_dissect_element_SetCollapseState_repl_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetCollapseState_repl_bookmark,0); + + return offset; +} + +int +mapi_dissect_struct_SetCollapseState_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetCollapseState_repl); + } + + offset = mapi_dissect_element_SetCollapseState_repl_bookmark(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetTransportFolder_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetTransportFolder_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetTransportFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetTransportFolder_req); + } + + offset = mapi_dissect_element_GetTransportFolder_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetTransportFolder_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FolderId; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetTransportFolder_repl_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetTransportFolder_repl_FolderId, NULL); + + return offset; +} + +int +mapi_dissect_struct_GetTransportFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetTransportFolder_repl); + } + + offset = mapi_dissect_element_GetTransportFolder_repl_FolderId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 SessionIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_Pending_repl_SessionIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_Pending_repl_SessionIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_Pending_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Pending_repl); + } + + offset = mapi_dissect_element_Pending_repl_SessionIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string AddressType; */ +/* IDL: uint8 WantWin32; */ +/* IDL: } */ + +static int +mapi_dissect_element_OptionsData_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_req_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_OptionsData_req_AddressType , 0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_req_WantWin32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OptionsData_req_WantWin32, 0); + + return offset; +} + +int +mapi_dissect_struct_OptionsData_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OptionsData_req); + } + + offset = mapi_dissect_element_OptionsData_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_req_AddressType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_req_WantWin32(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] union { */ +/* IDL: [case(0x0)] [case(0x0)] EMPTY ; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_OptionsData_HelpFileName_HelpFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_OptionsData_HelpFileName_HelpFileName , 0); + + return offset; +} + +static int +mapi_dissect_OptionsData_HelpFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_OptionsData_HelpFileName, &item, "OptionsData_HelpFileName"); + } + + switch(level) { + case 0x0: + break; + + default: + offset = mapi_dissect_element_OptionsData_HelpFileName_HelpFileName(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: struct { */ +/* IDL: uint8 Reserved; */ +/* IDL: SBinary_short OptionsInfo; */ +/* IDL: uint16 HelpFileSize; */ +/* IDL: [size_is(HelpFileSize)] uint8 HelpFile[*]; */ +/* IDL: [switch_is(HelpFileSize)] OptionsData_HelpFileName HelpFileName; */ +/* IDL: } */ + +static int +mapi_dissect_element_OptionsData_repl_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OptionsData_repl_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_repl_OptionsInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_OptionsData_repl_OptionsInfo,0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_repl_HelpFileSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *HelpFileSize) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OptionsData_repl_HelpFileSize, *HelpFileSize); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_repl_HelpFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OptionsData_repl_HelpFile_); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_repl_HelpFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OptionsData_repl_HelpFile, 0); + + return offset; +} + +static int +mapi_dissect_element_OptionsData_repl_HelpFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint16 *HelpFileSize) +{ + offset = mapi_dissect_OptionsData_HelpFileName(tvb, offset, pinfo, tree, di, drep, hf_mapi_OptionsData_repl_HelpFileName, *HelpFileSize); + + return offset; +} + +int +mapi_dissect_struct_OptionsData_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint16 HelpFileSize = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OptionsData_repl); + } + + offset = mapi_dissect_element_OptionsData_repl_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_repl_OptionsInfo(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_repl_HelpFileSize(tvb, offset, pinfo, tree, di, drep, &HelpFileSize); + + offset = mapi_dissect_element_OptionsData_repl_HelpFile(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OptionsData_repl_HelpFileName(tvb, offset, pinfo, tree, di, drep, &HelpFileSize); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: Contents=0x1, */ +/* IDL: Hierarchy=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_SynchronizationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + /* IDL: bitmap { */ -/* IDL: fnevCriticalError = 0x00000001 , */ -/* IDL: fnevNewMail = 0x00000002 , */ -/* IDL: fnevObjectCreated = 0x00000004 , */ -/* IDL: fnevObjectDeleted = 0x00000008 , */ -/* IDL: fnevObjectModified = 0x00000010 , */ -/* IDL: fnevObjectMoved = 0x00000020 , */ -/* IDL: fnevObjectCopied = 0x00000040 , */ -/* IDL: fnevSearchComplete = 0x00000080 , */ -/* IDL: fnevTableModified = 0x00000100 , */ -/* IDL: fnevStatusObjectModified = 0x00000200 , */ -/* IDL: fnevReservedForMapi = 0x40000000 , */ -/* IDL: fnevExtended = 0x80000000 , */ +/* IDL: SendOptions_Unicode = 0x1 , */ +/* IDL: SendOptions_ForUpload = 0x3 , */ +/* IDL: SendOptions_RecoverMode = 0x4 , */ +/* IDL: SendOptions_ForceUnicode = 0x8 , */ +/* IDL: SendOptions_Partial = 0x10 , */ /* IDL: } */ int -mapi_dissect_bitmap_ulEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +mapi_dissect_bitmap_SendOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { proto_item *item; - static int * const mapi_ulEventType_fields[] = { - &hf_mapi_ulEventType_fnevCriticalError, - &hf_mapi_ulEventType_fnevNewMail, - &hf_mapi_ulEventType_fnevObjectCreated, - &hf_mapi_ulEventType_fnevObjectDeleted, - &hf_mapi_ulEventType_fnevObjectModified, - &hf_mapi_ulEventType_fnevObjectMoved, - &hf_mapi_ulEventType_fnevObjectCopied, - &hf_mapi_ulEventType_fnevSearchComplete, - &hf_mapi_ulEventType_fnevTableModified, - &hf_mapi_ulEventType_fnevStatusObjectModified, - &hf_mapi_ulEventType_fnevReservedForMapi, - &hf_mapi_ulEventType_fnevExtended, + static int * const mapi_SendOptions_fields[] = { + &hf_mapi_SendOptions_SendOptions_Unicode, + &hf_mapi_SendOptions_SendOptions_ForUpload, + &hf_mapi_SendOptions_SendOptions_RecoverMode, + &hf_mapi_SendOptions_SendOptions_ForceUnicode, + &hf_mapi_SendOptions_SendOptions_Partial, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_SendOptions, mapi_SendOptions_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000020)) { + flags &= (~0x00000020); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: SynchronizationFlag_Unicode = 0x1 , */ +/* IDL: SynchronizationFlag_NoDeletions = 0x2 , */ +/* IDL: SynchronizationFlag_NoSoftDeletions = 0x4 , */ +/* IDL: SynchronizationFlag_ReadState = 0x8 , */ +/* IDL: SynchronizationFlag_FAI = 0x10 , */ +/* IDL: SynchronizationFlag_Normal = 0x20 , */ +/* IDL: SynchronizationFlag_OnlySpecifiedProperties = 0x80 , */ +/* IDL: SynchronizationFlag_NoForeignIdentifiers = 0x100 , */ +/* IDL: SynchronizationFlag_Reserved = 0x1000 , */ +/* IDL: SynchronizationFlag_BestBody = 0x2000 , */ +/* IDL: SynchronizationFlag_IgnoreSpecifiedOnFAI = 0x4000 , */ +/* IDL: SynchronizationFlag_Progress = 0x8000 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_SynchronizationFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_SynchronizationFlag_fields[] = { + &hf_mapi_SynchronizationFlag_SynchronizationFlag_Unicode, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoDeletions, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoSoftDeletions, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_ReadState, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_FAI, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_Normal, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_Reserved, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_BestBody, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI, + &hf_mapi_SynchronizationFlag_SynchronizationFlag_Progress, NULL }; guint16 flags; ALIGN_TO_2_BYTES; item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, - ett_mapi_ulEventType, mapi_ulEventType_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + ett_mapi_SynchronizationFlag, mapi_SynchronizationFlag_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); offset = dissect_ndr_uint16(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) proto_item_append_text(item, ": (No values set)"); - if (flags & (~0xc00003ff)) { - flags &= (~0xc00003ff); + if (flags & (~0x0000f1bf)) { + flags &= (~0x0000f1bf); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: Eid = 0x00000001 , */ +/* IDL: MessageSize = 0x00000002 , */ +/* IDL: Cn = 0x00000004 , */ +/* IDL: OrderByDeliveryTime = 0x00000008 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_SynchronizationExtraFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_SynchronizationExtraFlags_fields[] = { + &hf_mapi_SynchronizationExtraFlags_Eid, + &hf_mapi_SynchronizationExtraFlags_MessageSize, + &hf_mapi_SynchronizationExtraFlags_Cn, + &hf_mapi_SynchronizationExtraFlags_OrderByDeliveryTime, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_SynchronizationExtraFlags, mapi_SynchronizationExtraFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x0000000f)) { + flags &= (~0x0000000f); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } @@ -9242,298 +34450,9294 @@ mapi_dissect_bitmap_ulEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info * /* IDL: struct { */ -/* IDL: uint32 codepage; */ -/* IDL: uint32 padding; */ -/* IDL: uint8 row; */ -/* IDL: uint16 mailbox_str_size; */ -/* IDL: [charset(DOS)] [unique(1)] uint8 *mailbox; */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: SynchronizationType SynchronizationType; */ +/* IDL: SendOptions SendOptions; */ +/* IDL: SynchronizationFlag SynchronizationFlag; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB RestrictionData; */ +/* IDL: SynchronizationExtraFlags SynchronizationExtraFlags; */ +/* IDL: mapi_SPropTagArray PropertyTags; */ /* IDL: } */ +static int +mapi_dissect_element_SyncConfigure_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_SynchronizationType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_SynchronizationType(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncConfigure_req_SynchronizationType, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_SendOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_SendOptions(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncConfigure_req_SendOptions, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_SynchronizationFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_SynchronizationFlag(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncConfigure_req_SynchronizationFlag, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_RestrictionData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncConfigure_req_RestrictionData, 1); + + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_SynchronizationExtraFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_SynchronizationExtraFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncConfigure_req_SynchronizationExtraFlags, 0); -/* IDL: [switch_type(MAPI_OPNUM)] union { */ -/* IDL: [case(op_MAPI_Release)] [case(op_MAPI_Release)] Release_req mapi_Release; */ -/* IDL: [case(op_MAPI_OpenFolder)] [case(op_MAPI_OpenFolder)] OpenFolder_req mapi_OpenFolder; */ -/* IDL: [case(op_MAPI_GetProps)] [case(op_MAPI_GetProps)] GetProps_req mapi_GetProps; */ -/* IDL: [case(op_MAPI_OpenMsgStore)] [case(op_MAPI_OpenMsgStore)] OpenMsgStore_req mapi_OpenMsgStore; */ + return offset; +} + +static int +mapi_dissect_element_SyncConfigure_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_SyncConfigure_req_PropertyTags,0); + + return offset; +} + +int +mapi_dissect_struct_SyncConfigure_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncConfigure_req); + } + + offset = mapi_dissect_element_SyncConfigure_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_SynchronizationType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_SendOptions(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_SynchronizationFlag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_RestrictionData(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_SynchronizationExtraFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncConfigure_req_PropertyTags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ /* IDL: } */ +int +mapi_dissect_struct_SyncConfigure_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: ImportFlag_Associated = 0x10 , */ +/* IDL: ImportFlag_FailOnConflict = 0x40 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_ImportFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_ImportFlag_fields[] = { + &hf_mapi_ImportFlag_ImportFlag_Associated, + &hf_mapi_ImportFlag_ImportFlag_FailOnConflict, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_ImportFlag, mapi_ImportFlag_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000050)) { + flags &= (~0x00000050); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: ImportFlag ImportFlag; */ +/* IDL: mapi_SPropValue_array PropertyValues; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportMessageChange_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportMessageChange_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportMessageChange_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportMessageChange_req_ImportFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_ImportFlag(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageChange_req_ImportFlag, 0); + + return offset; +} + static int -mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_SyncImportMessageChange_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_Release_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release,0); + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SyncImportMessageChange_req_PropertyValues,0); return offset; } +int +mapi_dissect_struct_SyncImportMessageChange_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportMessageChange_req); + } + + offset = mapi_dissect_element_SyncImportMessageChange_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportMessageChange_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportMessageChange_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportMessageChange_req_ImportFlag(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportMessageChange_req_PropertyValues(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; -/* IDL: [public(1)] [switch_type(MAPI_OPNUM)] union { */ -/* IDL: [case(op_MAPI_Release)] [case(op_MAPI_Release)] Release_repl mapi_Release; */ -/* IDL: [case(op_MAPI_OpenFolder)] [case(op_MAPI_OpenFolder)] OpenFolder_repl mapi_OpenFolder; */ -/* IDL: [case(op_MAPI_GetProps)] [case(op_MAPI_GetProps)] GetProps_repl mapi_GetProps; */ + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper MessageId; */ /* IDL: } */ static int -mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_SyncImportMessageChange_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_Release_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_Release,0); + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageChange_repl_MessageId, NULL); + + return offset; +} + +int +mapi_dissect_struct_SyncImportMessageChange_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportMessageChange_repl); + } + + offset = mapi_dissect_element_SyncImportMessageChange_repl_MessageId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: mapi_SPropValue_array HierarchyValues; */ +/* IDL: mapi_SPropValue_array PropertyValues; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportHierarchyChange_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportHierarchyChange_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportHierarchyChange_req_HierarchyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SyncImportHierarchyChange_req_HierarchyValues,0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportHierarchyChange_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SyncImportHierarchyChange_req_PropertyValues,0); + + return offset; +} + +int +mapi_dissect_struct_SyncImportHierarchyChange_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportHierarchyChange_req); + } + + offset = mapi_dissect_element_SyncImportHierarchyChange_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportHierarchyChange_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportHierarchyChange_req_HierarchyValues(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportHierarchyChange_req_PropertyValues(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper FolderId; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportHierarchyChange_repl_FolderId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportHierarchyChange_repl_FolderId, NULL); + + return offset; +} + +int +mapi_dissect_struct_SyncImportHierarchyChange_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportHierarchyChange_repl); + } + + offset = mapi_dissect_element_SyncImportHierarchyChange_repl_FolderId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 IsHierarchy; */ +/* IDL: mapi_SPropValue_array PropertyValues; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportDeletes_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportDeletes_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportDeletes_req_IsHierarchy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportDeletes_req_IsHierarchy, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportDeletes_req_PropertyValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SyncImportDeletes_req_PropertyValues,0); + + return offset; +} + +int +mapi_dissect_struct_SyncImportDeletes_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportDeletes_req); + } + + offset = mapi_dissect_element_SyncImportDeletes_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportDeletes_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportDeletes_req_IsHierarchy(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportDeletes_req_PropertyValues(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncImportDeletes_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: PidTagIdsetGiven=0x40170003, */ +/* IDL: PidTagCnsetSeen=0x67960102, */ +/* IDL: PidTagCnsetSeenFAI=0x67da0102, */ +/* IDL: PidTagCnsetRead=0x67d20102, */ +/* IDL: } */ + +int +mapi_dissect_enum_StateProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_) +{ + guint32 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: StateProperty StateProperty; */ +/* IDL: uint32 TransferBufferSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncUploadStateStreamBegin_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncUploadStateStreamBegin_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncUploadStateStreamBegin_req_StateProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_StateProperty(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncUploadStateStreamBegin_req_StateProperty, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncUploadStateStreamBegin_req_TransferBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncUploadStateStreamBegin_req_TransferBufferSize, 0); + + return offset; +} + +int +mapi_dissect_struct_SyncUploadStateStreamBegin_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncUploadStateStreamBegin_req); + } + + offset = mapi_dissect_element_SyncUploadStateStreamBegin_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncUploadStateStreamBegin_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncUploadStateStreamBegin_req_StateProperty(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncUploadStateStreamBegin_req_TransferBufferSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncUploadStateStreamBegin_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 StreamDataSize; */ +/* IDL: [flag(NDR_BUFFERS)] [size_is(cb)] uint8 StreamData[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncUploadStateStreamContinue_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncUploadStateStreamContinue_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncUploadStateStreamContinue_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncUploadStateStreamEnd_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncUploadStateStreamEnd_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_SyncUploadStateStreamEnd_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncUploadStateStreamEnd_req); + } + + offset = mapi_dissect_element_SyncUploadStateStreamEnd_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncUploadStateStreamEnd_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncUploadStateStreamEnd_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 SourceFolderIdSize; */ +/* IDL: [size_is(SourceFolderIdSize)] uint8 SourceFolderId[*]; */ +/* IDL: uint32 SourceMessageIdSize; */ +/* IDL: [size_is(SourceMessageIdSize)] uint8 SourceMessageId[*]; */ +/* IDL: uint32 PredecessorChangeListSize; */ +/* IDL: [size_is(PredecessorChangeListSize)] uint8 PredecessorChangeList[*]; */ +/* IDL: uint32 DestinationMessageIdSize; */ +/* IDL: [size_is(DestinationMessageIdSize)] uint8 DestinationMessageId[*]; */ +/* IDL: uint32 ChangeNumberSize; */ +/* IDL: [size_is(ChangeNumberSize)] uint8 ChangeNumber[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportMessageMove_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportMessageMove_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + + +/* IDL: struct { */ +/* IDL: hyper MessageId; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportMessageMove_repl_MessageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportMessageMove_repl_MessageId, NULL); + + return offset; +} + +int +mapi_dissect_struct_SyncImportMessageMove_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportMessageMove_repl); + } + + offset = mapi_dissect_element_SyncImportMessageMove_repl_MessageId(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [represent_as(uint16)] mapi_SPropValue_array values; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetPropertiesNoReplicate_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SetPropertiesNoReplicate_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SetPropertiesNoReplicate_req_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropValue_array(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetPropertiesNoReplicate_req_values,0); + + return offset; +} + +int +mapi_dissect_struct_SetPropertiesNoReplicate_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetPropertiesNoReplicate_req); + } + + offset = mapi_dissect_element_SetPropertiesNoReplicate_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetPropertiesNoReplicate_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetPropertiesNoReplicate_req_values(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_SetPropertiesNoReplicate_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetPropertiesNoReplicate_repl); + } + + offset = mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SetPropertiesNoReplicate_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: mapi_SPropTagArray PropertyTags; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_req_PropertyTags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SPropTagArray(tvb,offset,pinfo,tree,di,drep,hf_mapi_DeletePropertiesNoReplicate_req_PropertyTags,0); + + return offset; +} + +int +mapi_dissect_struct_DeletePropertiesNoReplicate_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeletePropertiesNoReplicate_req); + } + + offset = mapi_dissect_element_DeletePropertiesNoReplicate_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeletePropertiesNoReplicate_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeletePropertiesNoReplicate_req_PropertyTags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 PropertyProblemCount; */ +/* IDL: [size_is(PropertyProblemCount)] PropertyProblem PropertyProblem[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblemCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblemCount, 0); + + return offset; +} + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem_); + + return offset; +} + +static int +mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PropertyProblem(tvb,offset,pinfo,tree,di,drep,hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblem,0); + + return offset; +} + +int +mapi_dissect_struct_DeletePropertiesNoReplicate_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_DeletePropertiesNoReplicate_repl); + } + + offset = mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblemCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_DeletePropertiesNoReplicate_repl_PropertyProblem(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: STORE_HAS_SEARCHES = 0x010000000 , */ +/* IDL: } */ + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStoreState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetStoreState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStoreState_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStoreState_req); + } + + offset = mapi_dissect_element_GetStoreState_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetStoreState_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: StoreState StoreState; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetStoreState_repl_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_StoreState(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetStoreState_repl_StoreState, 0); + + return offset; +} + +int +mapi_dissect_struct_GetStoreState_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetStoreState_repl); + } + + offset = mapi_dissect_element_GetStoreState_repl_StoreState(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint8 IsContentsCollector; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncOpenCollector_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncOpenCollector_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncOpenCollector_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncOpenCollector_req_IsContentsCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncOpenCollector_req_IsContentsCollector, 0); + + return offset; +} + +int +mapi_dissect_struct_SyncOpenCollector_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncOpenCollector_req); + } + + offset = mapi_dissect_element_SyncOpenCollector_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncOpenCollector_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncOpenCollector_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncOpenCollector_req_IsContentsCollector(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncOpenCollector_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint32 IdCount; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetLocalReplicaIds_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_GetLocalReplicaIds_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_GetLocalReplicaIds_req_IdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetLocalReplicaIds_req_IdCount, 0); + + return offset; +} + +int +mapi_dissect_struct_GetLocalReplicaIds_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetLocalReplicaIds_req); + } + + offset = mapi_dissect_element_GetLocalReplicaIds_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetLocalReplicaIds_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetLocalReplicaIds_req_IdCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: GUID ReplGuid; */ +/* IDL: uint8 GlobalCount[6]; */ +/* IDL: } */ + +static int +mapi_dissect_element_GetLocalReplicaIds_repl_ReplGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetLocalReplicaIds_repl_ReplGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 6; i++) + offset = mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetLocalReplicaIds_repl_GlobalCount, 0); + + return offset; +} + +int +mapi_dissect_struct_GetLocalReplicaIds_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_GetLocalReplicaIds_repl); + } + + offset = mapi_dissect_element_GetLocalReplicaIds_repl_ReplGuid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_GetLocalReplicaIds_repl_GlobalCount(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB MessageStates; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncImportReadStateChanges_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportReadStateChanges_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncImportReadStateChanges_req_MessageStates(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_SyncImportReadStateChanges_req_MessageStates, 1); + + return offset; +} + +int +mapi_dissect_struct_SyncImportReadStateChanges_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncImportReadStateChanges_req); + } + + offset = mapi_dissect_element_SyncImportReadStateChanges_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportReadStateChanges_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncImportReadStateChanges_req_MessageStates(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncImportReadStateChanges_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_ResetTable_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_ResetTable_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_ResetTable_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ResetTable_req); + } + + offset = mapi_dissect_element_ResetTable_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ResetTable_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_ResetTable_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: } */ + +static int +mapi_dissect_element_SyncGetTransferState_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncGetTransferState_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_SyncGetTransferState_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +int +mapi_dissect_struct_SyncGetTransferState_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SyncGetTransferState_req); + } + + offset = mapi_dissect_element_SyncGetTransferState_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncGetTransferState_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_SyncGetTransferState_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SyncGetTransferState_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; return offset; } /* IDL: struct { */ -/* IDL: uint8 opnum; */ -/* IDL: uint8 mapi_flags; */ /* IDL: uint8 handle_idx; */ -/* IDL: [switch_is(opnum)] EcDoRpc_MAPI_REQ_UNION u; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_SIZE4)] string name; */ /* IDL: } */ +static int +mapi_dissect_element_OpenPublicFolderByName_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenPublicFolderByName_req_handle_idx, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenPublicFolderByName_req_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_vstring(tvb, offset, pinfo, tree, di, drep, 1, hf_mapi_OpenPublicFolderByName_req_name, FALSE, NULL); + + return offset; +} + +int +mapi_dissect_struct_OpenPublicFolderByName_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenPublicFolderByName_req); + } + + offset = mapi_dissect_element_OpenPublicFolderByName_req_handle_idx(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenPublicFolderByName_req_name(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 HasRules; */ +/* IDL: uint8 IsGhosted; */ +/* IDL: [switch_is(IsGhosted)] IsGhosted Ghost; */ +/* IDL: } */ + +static int +mapi_dissect_element_OpenPublicFolderByName_repl_HasRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenPublicFolderByName_repl_HasRules, 0); + + return offset; +} + +static int +mapi_dissect_element_OpenPublicFolderByName_repl_IsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenPublicFolderByName_repl_IsGhosted, *IsGhosted); + + return offset; +} + +static int +mapi_dissect_element_OpenPublicFolderByName_repl_Ghost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *IsGhosted) +{ + offset = mapi_dissect_IsGhosted(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenPublicFolderByName_repl_Ghost, *IsGhosted); + + return offset; +} + +int +mapi_dissect_struct_OpenPublicFolderByName_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 IsGhosted = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_OpenPublicFolderByName_repl); + } + + offset = mapi_dissect_element_OpenPublicFolderByName_repl_HasRules(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_OpenPublicFolderByName_repl_IsGhosted(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + offset = mapi_dissect_element_OpenPublicFolderByName_repl_Ghost(tvb, offset, pinfo, tree, di, drep, &IsGhosted); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: GUID NotificationGuid; */ +/* IDL: } */ + +static int +mapi_dissect_element_SetSyncNotificationGuid_req_NotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_SetSyncNotificationGuid_req_NotificationGuid, NULL); + + return offset; +} + +int +mapi_dissect_struct_SetSyncNotificationGuid_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_SetSyncNotificationGuid_req); + } + + offset = mapi_dissect_element_SetSyncNotificationGuid_req_NotificationGuid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_SetSyncNotificationGuid_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: SBinary_short bookmark; */ +/* IDL: } */ + +static int +mapi_dissect_element_FreeBookmark_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_FreeBookmark_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_FreeBookmark_req_bookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SBinary_short(tvb,offset,pinfo,tree,di,drep,hf_mapi_FreeBookmark_req_bookmark,0); + + return offset; +} + +int +mapi_dissect_struct_FreeBookmark_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_FreeBookmark_req); + } + + offset = mapi_dissect_element_FreeBookmark_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FreeBookmark_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_FreeBookmark_req_bookmark(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: } */ + +int +mapi_dissect_struct_FreeBookmark_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + } + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING)] [represent_as(uint16)] DATA_BLOB data; */ +/* IDL: } */ + +static int +mapi_dissect_element_WriteAndCommitStream_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_WriteAndCommitStream_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_WriteAndCommitStream_req_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_WriteAndCommitStream_req_data, 1); + + return offset; +} + +int +mapi_dissect_struct_WriteAndCommitStream_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_WriteAndCommitStream_req); + } + + offset = mapi_dissect_element_WriteAndCommitStream_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_WriteAndCommitStream_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_WriteAndCommitStream_req_data(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 WrittenSize; */ +/* IDL: } */ + +static int +mapi_dissect_element_WriteAndCommitStream_repl_WrittenSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_WriteAndCommitStream_repl_WrittenSize, 0); + + return offset; +} + +int +mapi_dissect_struct_WriteAndCommitStream_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_WriteAndCommitStream_repl); + } + + offset = mapi_dissect_element_WriteAndCommitStream_repl_WrittenSize(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 NotifyNonRead; */ +/* IDL: uint16 MessageIdCount; */ +/* IDL: [size_is(MessageIdCount)] hyper MessageIds[*]; */ +/* IDL: } */ + +static int +mapi_dissect_element_HardDeleteMessages_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessages_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_NotifyNonRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessages_req_NotifyNonRead, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_MessageIdCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessages_req_MessageIdCount, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_MessageIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_HardDeleteMessages_req_MessageIds_); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessages_req_MessageIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessages_req_MessageIds, NULL); + + return offset; +} + +int +mapi_dissect_struct_HardDeleteMessages_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HardDeleteMessages_req); + } + + offset = mapi_dissect_element_HardDeleteMessages_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessages_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessages_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessages_req_NotifyNonRead(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessages_req_MessageIdCount(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessages_req_MessageIds(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_HardDeleteMessages_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessages_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_HardDeleteMessages_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HardDeleteMessages_repl); + } + + offset = mapi_dissect_element_HardDeleteMessages_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 InputHandleIndex; */ +/* IDL: uint8 WantAsynchronous; */ +/* IDL: uint8 WantDeleteAssociated; */ +/* IDL: } */ + +static int +mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_InputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_InputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantAsynchronous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessagesAndSubfolders_req_WantAsynchronous, 0); + + return offset; +} + +static int +mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated, 0); + + return offset; +} + +int +mapi_dissect_struct_HardDeleteMessagesAndSubfolders_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HardDeleteMessagesAndSubfolders_req); + } + + offset = mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_InputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantAsynchronous(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 PartialCompletion; */ +/* IDL: } */ + +static int +mapi_dissect_element_HardDeleteMessagesAndSubfolders_repl_PartialCompletion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_HardDeleteMessagesAndSubfolders_repl_PartialCompletion, 0); + + return offset; +} + +int +mapi_dissect_struct_HardDeleteMessagesAndSubfolders_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_HardDeleteMessagesAndSubfolders_repl); + } + + offset = mapi_dissect_element_HardDeleteMessagesAndSubfolders_repl_PartialCompletion(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: LogonPrivate=0x1, */ +/* IDL: UnderCover=0x2, */ +/* IDL: Ghosted=0x4, */ +/* IDL: SpIProcess=0x8, */ +/* IDL: } */ + +int +mapi_dissect_enum_LogonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: PUBLIC = 0x2 , */ +/* IDL: HOME_LOGON = 0x4 , */ +/* IDL: TAKE_OWNERSHIP = 0x8 , */ +/* IDL: ALTERNATE_SERVER = 0x100 , */ +/* IDL: IGNORE_HOME_MDB = 0x200 , */ +/* IDL: NO_MAIL = 0x400 , */ +/* IDL: USE_PER_MDB_REPLID_MAPPING = 0x010000000 , */ +/* IDL: } */ + + +/* IDL: enum { */ +/* IDL: DayOfWeek_Sunday=0x0, */ +/* IDL: DayOfWeek_Monday=0x1, */ +/* IDL: DayOfWeek_Tuesday=0x2, */ +/* IDL: DayOfWeek_Wednesday=0x3, */ +/* IDL: DayOfWeek_Thursday=0x4, */ +/* IDL: DayOfWeek_Friday=0x5, */ +/* IDL: DayOfWeek_Saturday=0x6, */ +/* IDL: } */ + +int +mapi_dissect_enum_DayOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 Seconds; */ +/* IDL: uint8 Minutes; */ +/* IDL: uint8 Hour; */ +/* IDL: DayOfWeek DayOfWeek; */ +/* IDL: uint8 Day; */ +/* IDL: uint8 Month; */ +/* IDL: uint16 Year; */ +/* IDL: } */ + +static int +mapi_dissect_element_LogonTime_Seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Seconds, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_Minutes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Minutes, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_Hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Hour, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_DayOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_DayOfWeek(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_DayOfWeek, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_Day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Day, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_Month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Month, 0); + + return offset; +} + +static int +mapi_dissect_element_LogonTime_Year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonTime_Year, 0); + + return offset; +} + +int +mapi_dissect_struct_LogonTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_LogonTime); + } + + offset = mapi_dissect_element_LogonTime_Seconds(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_Minutes(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_Hour(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_DayOfWeek(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_Day(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_Month(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_LogonTime_Year(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: ResponseFlags_Reserved = 0x1 , */ +/* IDL: ResponseFlags_OwnerRight = 0x2 , */ +/* IDL: ResponseFlags_SendAsRight = 0x4 , */ +/* IDL: ResponseFlags_OOF = 0x10 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_ResponseFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_ResponseFlags_fields[] = { + &hf_mapi_ResponseFlags_ResponseFlags_Reserved, + &hf_mapi_ResponseFlags_ResponseFlags_OwnerRight, + &hf_mapi_ResponseFlags_ResponseFlags_SendAsRight, + &hf_mapi_ResponseFlags_ResponseFlags_OOF, + NULL + }; + guint8 flags; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_ResponseFlags, mapi_ResponseFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000017)) { + flags &= (~0x00000017); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 LogonId; */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: LogonFlags LogonFlags; */ +/* IDL: OpenFlags OpenFlags; */ +/* IDL: StoreState StoreState; */ +/* IDL: uint16 EssdnSize; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string EssDN; */ +/* IDL: } */ + +static int +mapi_dissect_element_Logon_req_LogonId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_LogonId, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_LogonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_LogonFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_req_LogonFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_OpenFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_OpenFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_req_OpenFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_StoreState(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_req_StoreState, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_EssdnSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_req_EssdnSize, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_req_EssDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_Logon_req_EssDN , 0); + + return offset; +} + +int +mapi_dissect_struct_Logon_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_Logon_req); + } + + offset = mapi_dissect_element_Logon_req_LogonId(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_OutputHandleIndex(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_LogonFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_OpenFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_StoreState(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_EssdnSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_Logon_req_EssDN(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 OutputHandleIndex; */ +/* IDL: uint32 ReturnValue; */ +/* IDL: LogonFlags LogonFlags; */ +/* IDL: hyper FolderIds[13]; */ +/* IDL: uint8 ResponseFlags; */ +/* IDL: GUID MailboxGuid; */ +/* IDL: uint16 ReplId; */ +/* IDL: GUID ReplGuid; */ +/* IDL: hyper LogonTime; */ +/* IDL: hyper GwartTime; */ +/* IDL: StoreState StoreState; */ +/* IDL: GUID PerUserGuid; */ +/* IDL: uint8 ServerNameSize; */ +/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string ServerName; */ +/* IDL: } */ + +static int +mapi_dissect_element_Logon_repl_OutputHandleIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_OutputHandleIndex, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_FolderIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 13; i++) + offset = mapi_dissect_element_Logon_repl_FolderIds_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_FolderIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_FolderIds, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_ResponseFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_ResponseFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_MailboxGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_MailboxGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_ReplId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_ReplId, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_ReplGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_ReplGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_LogonTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_LogonTime, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_GwartTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_GwartTime, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_StoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_StoreState(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_StoreState, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_PerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_PerUserGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_ServerNameSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_Logon_repl_ServerNameSize, 0); + + return offset; +} + +static int +mapi_dissect_element_Logon_repl_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_mapi_Logon_repl_ServerName , 0); + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 SizeNeeded; */ +/* IDL: } */ + +static int +mapi_dissect_element_RopBufferTooSmall_repl_SizeNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RopBufferTooSmall_repl_SizeNeeded, 0); + + return offset; +} + +int +mapi_dissect_struct_RopBufferTooSmall_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RopBufferTooSmall_repl); + } + + offset = mapi_dissect_element_RopBufferTooSmall_repl_SizeNeeded(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [nodiscriminant(1)] [public(1)] union { */ +/* IDL: [case(RopRelease)] [case(RopRelease)] Release_req Release; */ +/* IDL: [case(RopOpenFolder)] [case(RopOpenFolder)] OpenFolder_req OpenFolder; */ +/* IDL: [case(RopOpenMessage)] [case(RopOpenMessage)] OpenMessage_req OpenMessage; */ +/* IDL: [case(RopGetHierarchyTable)] [case(RopGetHierarchyTable)] GetHierarchyTable_req GetHierarchyTable; */ +/* IDL: [case(RopGetContentsTable)] [case(RopGetContentsTable)] GetContentsTable_req GetContentsTable; */ +/* IDL: [case(RopCreateMessage)] [case(RopCreateMessage)] CreateMessage_req CreateMessage; */ +/* IDL: [case(RopGetPropertiesSpecific)] [case(RopGetPropertiesSpecific)] GetProps_req GetProps; */ +/* IDL: [case(RopGetPropertiesAll)] [case(RopGetPropertiesAll)] GetPropsAll_req GetPropsAll; */ +/* IDL: [case(RopGetPropertiesList)] [case(RopGetPropertiesList)] GetPropList_req GetPropList; */ +/* IDL: [case(RopSetProperties)] [case(RopSetProperties)] SetProps_req SetProps; */ +/* IDL: [case(RopDeleteProperties)] [case(RopDeleteProperties)] DeleteProps_req DeleteProps; */ +/* IDL: [case(RopSaveChangesMessage)] [case(RopSaveChangesMessage)] SaveChangesMessage_req SaveChangesMessage; */ +/* IDL: [case(RopSetMessageReadFlag)] [case(RopSetMessageReadFlag)] SetMessageReadFlag_req SetMessageReadFlag; */ +/* IDL: [case(RopReloadCachedInformation)] [case(RopReloadCachedInformation)] ReloadCachedInformation_req ReloadCachedInformation; */ +/* IDL: [case(RopSetColumns)] [case(RopSetColumns)] SetColumns_req SetColumns; */ +/* IDL: [case(RopSortTable)] [case(RopSortTable)] SortTable_req SortTable; */ +/* IDL: [case(RopRestrict)] [case(RopRestrict)] Restrict_req Restrict; */ +/* IDL: [case(RopRemoveAllRecipients)] [case(RopRemoveAllRecipients)] RemoveAllRecipients_req RemoveAllRecipients; */ +/* IDL: [case(RopModifyRecipients)] [case(RopModifyRecipients)] ModifyRecipients_req ModifyRecipients; */ +/* IDL: [case(RopReadRecipients)] [case(RopReadRecipients)] ReadRecipients_req ReadRecipients; */ +/* IDL: [case(RopQueryRows)] [case(RopQueryRows)] QueryRows_req QueryRows; */ +/* IDL: [case(RopGetStatus)] [case(RopGetStatus)] GetStatus_req GetStatus; */ +/* IDL: [case(RopQueryPosition)] [case(RopQueryPosition)] QueryPosition_req QueryPosition; */ +/* IDL: [case(RopSeekRow)] [case(RopSeekRow)] SeekRow_req SeekRow; */ +/* IDL: [case(RopSeekRowBookmark)] [case(RopSeekRowBookmark)] SeekRowBookmark_req SeekRowBookmark; */ +/* IDL: [case(RopSeekRowFractional)] [case(RopSeekRowFractional)] SeekRowApprox_req SeekRowApprox; */ +/* IDL: [case(RopCreateBookmark)] [case(RopCreateBookmark)] CreateBookmark_req CreateBookmark; */ +/* IDL: [case(RopCreateFolder)] [case(RopCreateFolder)] CreateFolder_req CreateFolder; */ +/* IDL: [case(RopDeleteFolder)] [case(RopDeleteFolder)] DeleteFolder_req DeleteFolder; */ +/* IDL: [case(RopDeleteMessages)] [case(RopDeleteMessages)] DeleteMessages_req DeleteMessages; */ +/* IDL: [case(RopGetMessageStatus)] [case(RopGetMessageStatus)] GetMessageStatus_req GetMessageStatus; */ +/* IDL: [case(RopSetMessageStatus)] [case(RopSetMessageStatus)] SetMessageStatus_req SetMessageStatus; */ +/* IDL: [case(RopGetAttachmentTable)] [case(RopGetAttachmentTable)] GetAttachmentTable_req GetAttachmentTable; */ +/* IDL: [case(RopOpenAttachment)] [case(RopOpenAttachment)] OpenAttach_req OpenAttach; */ +/* IDL: [case(RopCreateAttachment)] [case(RopCreateAttachment)] CreateAttach_req CreateAttach; */ +/* IDL: [case(RopDeleteAttachment)] [case(RopDeleteAttachment)] DeleteAttach_req DeleteAttach; */ +/* IDL: [case(RopSaveChangesAttachment)] [case(RopSaveChangesAttachment)] SaveChangesAttachment_req SaveChangesAttachment; */ +/* IDL: [case(RopSetReceiveFolder)] [case(RopSetReceiveFolder)] SetReceiveFolder_req SetReceiveFolder; */ +/* IDL: [case(RopGetReceiveFolder)] [case(RopGetReceiveFolder)] GetReceiveFolder_req GetReceiveFolder; */ +/* IDL: [case(RopRegisterNotification)] [case(RopRegisterNotification)] RegisterNotification_req Advise; */ +/* IDL: [case(RopOpenStream)] [case(RopOpenStream)] OpenStream_req OpenStream; */ +/* IDL: [case(RopReadStream)] [case(RopReadStream)] ReadStream_req ReadStream; */ +/* IDL: [case(RopWriteStream)] [case(RopWriteStream)] WriteStream_req WriteStream; */ +/* IDL: [case(RopSeekStream)] [case(RopSeekStream)] SeekStream_req SeekStream; */ +/* IDL: [case(RopSetStreamSize)] [case(RopSetStreamSize)] SetStreamSize_req SetStreamSize; */ +/* IDL: [case(RopSetSearchCriteria)] [case(RopSetSearchCriteria)] SetSearchCriteria_req SetSearchCriteria; */ +/* IDL: [case(RopGetSearchCriteria)] [case(RopGetSearchCriteria)] GetSearchCriteria_req GetSearchCriteria; */ +/* IDL: [case(RopSubmitMessage)] [case(RopSubmitMessage)] SubmitMessage_req SubmitMessage; */ +/* IDL: [case(RopMoveCopyMessages)] [case(RopMoveCopyMessages)] MoveCopyMessages_req MoveCopyMessages; */ +/* IDL: [case(RopAbortSubmit)] [case(RopAbortSubmit)] AbortSubmit_req AbortSubmit; */ +/* IDL: [case(RopMoveFolder)] [case(RopMoveFolder)] MoveFolder_req MoveFolder; */ +/* IDL: [case(RopCopyFolder)] [case(RopCopyFolder)] CopyFolder_req CopyFolder; */ +/* IDL: [case(RopQueryColumnsAll)] [case(RopQueryColumnsAll)] QueryColumnsAll_req QueryColumnsAll; */ +/* IDL: [case(RopAbort)] [case(RopAbort)] Abort_req Abort; */ +/* IDL: [case(RopCopyTo)] [case(RopCopyTo)] CopyTo_req CopyTo; */ +/* IDL: [case(RopCopyToStream)] [case(RopCopyToStream)] CopyToStream_req CopyToStream; */ +/* IDL: [case(RopCloneStream)] [case(RopCloneStream)] CloneStream_req CloneStream; */ +/* IDL: [case(RopGetPermissionsTable)] [case(RopGetPermissionsTable)] GetPermissionsTable_req GetPermissionsTable; */ +/* IDL: [case(RopGetRulesTable)] [case(RopGetRulesTable)] GetRulesTable_req GetRulesTable; */ +/* IDL: [case(RopModifyPermissions)] [case(RopModifyPermissions)] ModifyPermissions_req ModifyPermissions; */ +/* IDL: [case(RopModifyRules)] [case(RopModifyRules)] ModifyRules_req ModifyRules; */ +/* IDL: [case(RopGetOwningServers)] [case(RopGetOwningServers)] GetOwningServers_req GetOwningServers; */ +/* IDL: [case(RopLongTermIdFromId)] [case(RopLongTermIdFromId)] LongTermIdFromId_req LongTermIdFromId; */ +/* IDL: [case(RopIdFromLongTermId)] [case(RopIdFromLongTermId)] IdFromLongTermId_req IdFromLongTermId; */ +/* IDL: [case(RopPublicFolderIsGhosted)] [case(RopPublicFolderIsGhosted)] PublicFolderIsGhosted_req PublicFolderIsGhosted; */ +/* IDL: [case(RopOpenEmbeddedMessage)] [case(RopOpenEmbeddedMessage)] OpenEmbeddedMessage_req OpenEmbeddedMessage; */ +/* IDL: [case(RopSetSpooler)] [case(RopSetSpooler)] SetSpooler_req SetSpooler; */ +/* IDL: [case(RopSpoolerLockMessage)] [case(RopSpoolerLockMessage)] SpoolerLockMessage_req SpoolerLockMessage; */ +/* IDL: [case(RopGetAddressTypes)] [case(RopGetAddressTypes)] AddressTypes_req AddressTypes; */ +/* IDL: [case(RopTransportSend)] [case(RopTransportSend)] TransportSend_req TransportSend; */ +/* IDL: [case(RopFastTransferSourceGetBuffer)] [case(RopFastTransferSourceGetBuffer)] FastTransferSourceGetBuffer_req FastTransferSourceGetBuffer; */ +/* IDL: [case(RopFindRow)] [case(RopFindRow)] FindRow_req FindRow; */ +/* IDL: [case(RopProgress)] [case(RopProgress)] Progress_req Progress; */ +/* IDL: [case(RopTransportNewMail)] [case(RopTransportNewMail)] TransportNewMail_req TransportNewMail; */ +/* IDL: [case(RopGetValidAttachments)] [case(RopGetValidAttachments)] GetValidAttachments_req GetValidAttachments; */ +/* IDL: [case(RopGetNamesFromPropertyIds)] [case(RopGetNamesFromPropertyIds)] GetNamesFromIDs_req GetNamesFromIDs; */ +/* IDL: [case(RopGetPropertyIdsFromNames)] [case(RopGetPropertyIdsFromNames)] GetIDsFromNames_req GetIDsFromNames; */ +/* IDL: [case(RopUpdateDeferredActionMessages)] [case(RopUpdateDeferredActionMessages)] UpdateDeferredActionMessages_req UpdateDeferredActionMessages; */ +/* IDL: [case(RopEmptyFolder)] [case(RopEmptyFolder)] EmptyFolder_req EmptyFolder; */ +/* IDL: [case(RopExpandRow)] [case(RopExpandRow)] ExpandRow_req ExpandRow; */ +/* IDL: [case(RopCollapseRow)] [case(RopCollapseRow)] CollapseRow_req CollapseRow; */ +/* IDL: [case(RopLockRegionStream)] [case(RopLockRegionStream)] LockRegionStream_req LockRegionStream; */ +/* IDL: [case(RopUnlockRegionStream)] [case(RopUnlockRegionStream)] UnlockRegionStream_req UnlockRegionStream; */ +/* IDL: [case(RopCommitStream)] [case(RopCommitStream)] CommitStream_req CommitStream; */ +/* IDL: [case(RopGetStreamSize)] [case(RopGetStreamSize)] GetStreamSize_req GetStreamSize; */ +/* IDL: [case(RopQueryNamedProperties)] [case(RopQueryNamedProperties)] QueryNamedProperties_req QueryNamedProperties; */ +/* IDL: [case(RopGetPerUserLongTermIds)] [case(RopGetPerUserLongTermIds)] GetPerUserLongTermIds_req GetPerUserLongTermIds; */ +/* IDL: [case(RopGetPerUserGuid)] [case(RopGetPerUserGuid)] GetPerUserGuid_req GetPerUserGuid; */ +/* IDL: [case(RopReadPerUserInformation)] [case(RopReadPerUserInformation)] ReadPerUserInformation_req ReadPerUserInformation; */ +/* IDL: [case(RopSetReadFlags)] [case(RopSetReadFlags)] SetReadFlags_req SetReadFlags; */ +/* IDL: [case(RopCopyProperties)] [case(RopCopyProperties)] CopyProperties_req CopyProperties; */ +/* IDL: [case(RopGetReceiveFolderTable)] [case(RopGetReceiveFolderTable)] GetReceiveFolderTable_req GetReceiveFolderTable; */ +/* IDL: [case(RopGetCollapseState)] [case(RopGetCollapseState)] GetCollapseState_req GetCollapseState; */ +/* IDL: [case(RopSetCollapseState)] [case(RopSetCollapseState)] SetCollapseState_req SetCollapseState; */ +/* IDL: [case(RopGetTransportFolder)] [case(RopGetTransportFolder)] GetTransportFolder_req GetTransportFolder; */ +/* IDL: [case(RopOptionsData)] [case(RopOptionsData)] OptionsData_req OptionsData; */ +/* IDL: [case(RopSynchronizationConfigure)] [case(RopSynchronizationConfigure)] SyncConfigure_req SyncConfigure; */ +/* IDL: [case(RopSynchronizationImportMessageChange)] [case(RopSynchronizationImportMessageChange)] SyncImportMessageChange_req SyncImportMessageChange; */ +/* IDL: [case(RopSynchronizationImportHierarchyChange)] [case(RopSynchronizationImportHierarchyChange)] SyncImportHierarchyChange_req SyncImportHierarchyChange; */ +/* IDL: [case(RopSynchronizationImportDeletes)] [case(RopSynchronizationImportDeletes)] SyncImportDeletes_req SyncImportDeletes; */ +/* IDL: [case(RopSynchronizationUploadStateStreamBegin)] [case(RopSynchronizationUploadStateStreamBegin)] SyncUploadStateStreamBegin_req SyncUploadStateStreamBegin; */ +/* IDL: [case(RopSynchronizationUploadStateStreamContinue)] [case(RopSynchronizationUploadStateStreamContinue)] SyncUploadStateStreamContinue_req SyncUploadStateStreamContinue; */ +/* IDL: [case(RopSynchronizationUploadStateStreamEnd)] [case(RopSynchronizationUploadStateStreamEnd)] SyncUploadStateStreamEnd_req SyncUploadStateStreamEnd; */ +/* IDL: [case(RopSynchronizationImportMessageMove)] [case(RopSynchronizationImportMessageMove)] SyncImportMessageMove_req SyncImportMessageMove; */ +/* IDL: [case(RopSetPropertiesNoReplicate)] [case(RopSetPropertiesNoReplicate)] SetPropertiesNoReplicate_req SetPropertiesNoReplicate; */ +/* IDL: [case(RopDeletePropertiesNoReplicate)] [case(RopDeletePropertiesNoReplicate)] DeletePropertiesNoReplicate_req DeletePropertiesNoReplicate; */ +/* IDL: [case(RopGetStoreState)] [case(RopGetStoreState)] GetStoreState_req GetStoreState; */ +/* IDL: [case(RopSynchronizationOpenCollector)] [case(RopSynchronizationOpenCollector)] SyncOpenCollector_req SyncOpenCollector; */ +/* IDL: [case(RopGetLocalReplicaIds)] [case(RopGetLocalReplicaIds)] GetLocalReplicaIds_req GetLocalReplicaIds; */ +/* IDL: [case(RopSynchronizationImportReadStateChanges)] [case(RopSynchronizationImportReadStateChanges)] SyncImportReadStateChanges_req SyncImportReadStateChanges; */ +/* IDL: [case(RopResetTable)] [case(RopResetTable)] ResetTable_req ResetTable; */ +/* IDL: [case(RopSynchronizationGetTransferState)] [case(RopSynchronizationGetTransferState)] SyncGetTransferState_req SyncGetTransferState; */ +/* IDL: [case(RopOpenPublicFolderByName)] [case(RopOpenPublicFolderByName)] OpenPublicFolderByName_req OpenPublicFolderByName; */ +/* IDL: [case(RopSetSyncNotificationGuid)] [case(RopSetSyncNotificationGuid)] SetSyncNotificationGuid_req SetSyncNotificationGuid; */ +/* IDL: [case(RopFreeBookmark)] [case(RopFreeBookmark)] FreeBookmark_req FreeBookmark; */ +/* IDL: [case(RopWriteAndCommitStream)] [case(RopWriteAndCommitStream)] WriteAndCommitStream_req WriteAndCommitStream; */ +/* IDL: [case(RopHardDeleteMessages)] [case(RopHardDeleteMessages)] HardDeleteMessages_req HardDeleteMessages; */ +/* IDL: [case(RopHardDeleteMessagesAndSubfolders)] [case(RopHardDeleteMessagesAndSubfolders)] HardDeleteMessagesAndSubfolders_req HardDeleteMessagesAndSubfolders; */ +/* IDL: [case(RopLogon)] [case(RopLogon)] Logon_req Logon; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_RopRequest_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Release_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Release,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetHierarchyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetHierarchyTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetHierarchyTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetContentsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetContentsTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetContentsTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CreateMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CreateMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetProps_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetPropsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPropsAll_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetPropsAll,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetPropList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPropList_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetPropList,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetProps_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_DeleteProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteProps_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_DeleteProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SaveChangesMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SaveChangesMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SaveChangesMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetMessageReadFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetMessageReadFlag_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetMessageReadFlag,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ReloadCachedInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReloadCachedInformation_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ReloadCachedInformation,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetColumns_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetColumns,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SortTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SortTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SortTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_Restrict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Restrict_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Restrict,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_RemoveAllRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RemoveAllRecipients_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_RemoveAllRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ModifyRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyRecipients_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ModifyRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ReadRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadRecipients_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ReadRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_QueryRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryRows_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_QueryRows,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStatus_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetStatus,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_QueryPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryPosition_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_QueryPosition,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SeekRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRow_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SeekRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SeekRowBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRowBookmark_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SeekRowBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SeekRowApprox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRowApprox_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SeekRowApprox,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CreateBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateBookmark_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CreateBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CreateFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CreateFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_DeleteFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_DeleteFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_DeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteMessages_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_DeleteMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetMessageStatus_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetMessageStatus,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetMessageStatus_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetMessageStatus,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetAttachmentTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetAttachmentTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetAttachmentTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenAttach_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CreateAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateAttach_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CreateAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_DeleteAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteAttach_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_DeleteAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SaveChangesAttachment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SaveChangesAttachment_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SaveChangesAttachment,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetReceiveFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetReceiveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetReceiveFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetReceiveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_Advise(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RegisterNotification_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Advise,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ReadStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ReadStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_WriteStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_WriteStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_WriteStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SeekStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SeekStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetStreamSize_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetStreamSize,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSearchCriteria_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetSearchCriteria,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetSearchCriteria_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetSearchCriteria,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SubmitMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SubmitMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SubmitMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_MoveCopyMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveCopyMessages_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_MoveCopyMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_AbortSubmit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AbortSubmit_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_AbortSubmit,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_MoveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_MoveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CopyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CopyFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_QueryColumnsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryColumnsAll_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_QueryColumnsAll,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_Abort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Abort_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Abort,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CopyTo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyTo_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CopyTo,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CopyToStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyToStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CopyToStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CloneStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CloneStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CloneStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetPermissionsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPermissionsTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetPermissionsTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetRulesTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetRulesTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetRulesTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ModifyPermissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyPermissions_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ModifyPermissions,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ModifyRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyRules_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ModifyRules,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetOwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetOwningServers_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetOwningServers,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_LongTermIdFromId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermIdFromId_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_LongTermIdFromId,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_IdFromLongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_IdFromLongTermId_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_IdFromLongTermId,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_PublicFolderIsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PublicFolderIsGhosted_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_PublicFolderIsGhosted,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenEmbeddedMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenEmbeddedMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenEmbeddedMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetSpooler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSpooler_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetSpooler,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SpoolerLockMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SpoolerLockMessage_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SpoolerLockMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_AddressTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AddressTypes_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_AddressTypes,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_TransportSend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TransportSend_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_TransportSend,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_FastTransferSourceGetBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FastTransferSourceGetBuffer_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_FastTransferSourceGetBuffer,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_FindRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FindRow_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_FindRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_Progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Progress_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Progress,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_TransportNewMail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TransportNewMail_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_TransportNewMail,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetValidAttachments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetValidAttachments_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetValidAttachments,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetNamesFromIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetNamesFromIDs_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetNamesFromIDs,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetIDsFromNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetIDsFromNames_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetIDsFromNames,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_UpdateDeferredActionMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_UpdateDeferredActionMessages_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_UpdateDeferredActionMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_EmptyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_EmptyFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_EmptyFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ExpandRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ExpandRow_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ExpandRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CollapseRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CollapseRow_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CollapseRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_LockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LockRegionStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_LockRegionStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_UnlockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_UnlockRegionStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_UnlockRegionStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CommitStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CommitStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStreamSize_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetStreamSize,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_QueryNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryNamedProperties_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_QueryNamedProperties,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetPerUserLongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPerUserLongTermIds_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetPerUserLongTermIds,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetPerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPerUserGuid_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetPerUserGuid,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ReadPerUserInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadPerUserInformation_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ReadPerUserInformation,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetReadFlags_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetReadFlags,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_CopyProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyProperties_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_CopyProperties,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetReceiveFolderTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetReceiveFolderTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetReceiveFolderTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetCollapseState_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetCollapseState,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetCollapseState_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetCollapseState,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetTransportFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetTransportFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetTransportFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OptionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OptionsData_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OptionsData,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncConfigure_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncConfigure,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncImportMessageChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportMessageChange_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncImportMessageChange,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncImportHierarchyChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportHierarchyChange_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncImportHierarchyChange,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncImportDeletes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportDeletes_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncImportDeletes,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncUploadStateStreamBegin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamBegin_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncUploadStateStreamBegin,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncUploadStateStreamContinue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamContinue_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncUploadStateStreamContinue,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncUploadStateStreamEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamEnd_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncUploadStateStreamEnd,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncImportMessageMove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportMessageMove_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncImportMessageMove,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetPropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetPropertiesNoReplicate_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetPropertiesNoReplicate,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_DeletePropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeletePropertiesNoReplicate_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_DeletePropertiesNoReplicate,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetStoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStoreState_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetStoreState,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncOpenCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncOpenCollector_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncOpenCollector,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_GetLocalReplicaIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetLocalReplicaIds_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_GetLocalReplicaIds,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncImportReadStateChanges(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportReadStateChanges_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncImportReadStateChanges,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_ResetTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ResetTable_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_ResetTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SyncGetTransferState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncGetTransferState_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SyncGetTransferState,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_OpenPublicFolderByName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenPublicFolderByName_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_OpenPublicFolderByName,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_SetSyncNotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSyncNotificationGuid_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_SetSyncNotificationGuid,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_FreeBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FreeBookmark_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_FreeBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_WriteAndCommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_WriteAndCommitStream_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_WriteAndCommitStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_HardDeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HardDeleteMessages_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_HardDeleteMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_HardDeleteMessagesAndSubfolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HardDeleteMessagesAndSubfolders_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_HardDeleteMessagesAndSubfolders,0); + + return offset; +} + +static int +mapi_dissect_element_RopRequest_Logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Logon_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopRequest_Logon,0); + + return offset; +} + +static int +mapi_dissect_RopRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_RopRequest, &item, "RopRequest"); + } + + switch(level) { + case RopRelease: + offset = mapi_dissect_element_RopRequest_Release(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenFolder: + offset = mapi_dissect_element_RopRequest_OpenFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenMessage: + offset = mapi_dissect_element_RopRequest_OpenMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetHierarchyTable: + offset = mapi_dissect_element_RopRequest_GetHierarchyTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetContentsTable: + offset = mapi_dissect_element_RopRequest_GetContentsTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateMessage: + offset = mapi_dissect_element_RopRequest_CreateMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesSpecific: + offset = mapi_dissect_element_RopRequest_GetProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesAll: + offset = mapi_dissect_element_RopRequest_GetPropsAll(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesList: + offset = mapi_dissect_element_RopRequest_GetPropList(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetProperties: + offset = mapi_dissect_element_RopRequest_SetProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteProperties: + offset = mapi_dissect_element_RopRequest_DeleteProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSaveChangesMessage: + offset = mapi_dissect_element_RopRequest_SaveChangesMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetMessageReadFlag: + offset = mapi_dissect_element_RopRequest_SetMessageReadFlag(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReloadCachedInformation: + offset = mapi_dissect_element_RopRequest_ReloadCachedInformation(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetColumns: + offset = mapi_dissect_element_RopRequest_SetColumns(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSortTable: + offset = mapi_dissect_element_RopRequest_SortTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRestrict: + offset = mapi_dissect_element_RopRequest_Restrict(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRemoveAllRecipients: + offset = mapi_dissect_element_RopRequest_RemoveAllRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyRecipients: + offset = mapi_dissect_element_RopRequest_ModifyRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadRecipients: + offset = mapi_dissect_element_RopRequest_ReadRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryRows: + offset = mapi_dissect_element_RopRequest_QueryRows(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStatus: + offset = mapi_dissect_element_RopRequest_GetStatus(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryPosition: + offset = mapi_dissect_element_RopRequest_QueryPosition(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRow: + offset = mapi_dissect_element_RopRequest_SeekRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRowBookmark: + offset = mapi_dissect_element_RopRequest_SeekRowBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRowFractional: + offset = mapi_dissect_element_RopRequest_SeekRowApprox(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateBookmark: + offset = mapi_dissect_element_RopRequest_CreateBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateFolder: + offset = mapi_dissect_element_RopRequest_CreateFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteFolder: + offset = mapi_dissect_element_RopRequest_DeleteFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteMessages: + offset = mapi_dissect_element_RopRequest_DeleteMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetMessageStatus: + offset = mapi_dissect_element_RopRequest_GetMessageStatus(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetMessageStatus: + offset = mapi_dissect_element_RopRequest_SetMessageStatus(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetAttachmentTable: + offset = mapi_dissect_element_RopRequest_GetAttachmentTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenAttachment: + offset = mapi_dissect_element_RopRequest_OpenAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateAttachment: + offset = mapi_dissect_element_RopRequest_CreateAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteAttachment: + offset = mapi_dissect_element_RopRequest_DeleteAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSaveChangesAttachment: + offset = mapi_dissect_element_RopRequest_SaveChangesAttachment(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetReceiveFolder: + offset = mapi_dissect_element_RopRequest_SetReceiveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetReceiveFolder: + offset = mapi_dissect_element_RopRequest_GetReceiveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRegisterNotification: + offset = mapi_dissect_element_RopRequest_Advise(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenStream: + offset = mapi_dissect_element_RopRequest_OpenStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadStream: + offset = mapi_dissect_element_RopRequest_ReadStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopWriteStream: + offset = mapi_dissect_element_RopRequest_WriteStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekStream: + offset = mapi_dissect_element_RopRequest_SeekStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetStreamSize: + offset = mapi_dissect_element_RopRequest_SetStreamSize(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSearchCriteria: + offset = mapi_dissect_element_RopRequest_SetSearchCriteria(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetSearchCriteria: + offset = mapi_dissect_element_RopRequest_GetSearchCriteria(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSubmitMessage: + offset = mapi_dissect_element_RopRequest_SubmitMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopMoveCopyMessages: + offset = mapi_dissect_element_RopRequest_MoveCopyMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopAbortSubmit: + offset = mapi_dissect_element_RopRequest_AbortSubmit(tvb, offset, pinfo, tree, di, drep); + break; + + case RopMoveFolder: + offset = mapi_dissect_element_RopRequest_MoveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyFolder: + offset = mapi_dissect_element_RopRequest_CopyFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryColumnsAll: + offset = mapi_dissect_element_RopRequest_QueryColumnsAll(tvb, offset, pinfo, tree, di, drep); + break; + + case RopAbort: + offset = mapi_dissect_element_RopRequest_Abort(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyTo: + offset = mapi_dissect_element_RopRequest_CopyTo(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyToStream: + offset = mapi_dissect_element_RopRequest_CopyToStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCloneStream: + offset = mapi_dissect_element_RopRequest_CloneStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPermissionsTable: + offset = mapi_dissect_element_RopRequest_GetPermissionsTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetRulesTable: + offset = mapi_dissect_element_RopRequest_GetRulesTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyPermissions: + offset = mapi_dissect_element_RopRequest_ModifyPermissions(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyRules: + offset = mapi_dissect_element_RopRequest_ModifyRules(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetOwningServers: + offset = mapi_dissect_element_RopRequest_GetOwningServers(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLongTermIdFromId: + offset = mapi_dissect_element_RopRequest_LongTermIdFromId(tvb, offset, pinfo, tree, di, drep); + break; + + case RopIdFromLongTermId: + offset = mapi_dissect_element_RopRequest_IdFromLongTermId(tvb, offset, pinfo, tree, di, drep); + break; + + case RopPublicFolderIsGhosted: + offset = mapi_dissect_element_RopRequest_PublicFolderIsGhosted(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenEmbeddedMessage: + offset = mapi_dissect_element_RopRequest_OpenEmbeddedMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSpooler: + offset = mapi_dissect_element_RopRequest_SetSpooler(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSpoolerLockMessage: + offset = mapi_dissect_element_RopRequest_SpoolerLockMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetAddressTypes: + offset = mapi_dissect_element_RopRequest_AddressTypes(tvb, offset, pinfo, tree, di, drep); + break; + + case RopTransportSend: + offset = mapi_dissect_element_RopRequest_TransportSend(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFastTransferSourceGetBuffer: + offset = mapi_dissect_element_RopRequest_FastTransferSourceGetBuffer(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFindRow: + offset = mapi_dissect_element_RopRequest_FindRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopProgress: + offset = mapi_dissect_element_RopRequest_Progress(tvb, offset, pinfo, tree, di, drep); + break; + + case RopTransportNewMail: + offset = mapi_dissect_element_RopRequest_TransportNewMail(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetValidAttachments: + offset = mapi_dissect_element_RopRequest_GetValidAttachments(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetNamesFromPropertyIds: + offset = mapi_dissect_element_RopRequest_GetNamesFromIDs(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertyIdsFromNames: + offset = mapi_dissect_element_RopRequest_GetIDsFromNames(tvb, offset, pinfo, tree, di, drep); + break; + + case RopUpdateDeferredActionMessages: + offset = mapi_dissect_element_RopRequest_UpdateDeferredActionMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopEmptyFolder: + offset = mapi_dissect_element_RopRequest_EmptyFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopExpandRow: + offset = mapi_dissect_element_RopRequest_ExpandRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCollapseRow: + offset = mapi_dissect_element_RopRequest_CollapseRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLockRegionStream: + offset = mapi_dissect_element_RopRequest_LockRegionStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopUnlockRegionStream: + offset = mapi_dissect_element_RopRequest_UnlockRegionStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCommitStream: + offset = mapi_dissect_element_RopRequest_CommitStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStreamSize: + offset = mapi_dissect_element_RopRequest_GetStreamSize(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryNamedProperties: + offset = mapi_dissect_element_RopRequest_QueryNamedProperties(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPerUserLongTermIds: + offset = mapi_dissect_element_RopRequest_GetPerUserLongTermIds(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPerUserGuid: + offset = mapi_dissect_element_RopRequest_GetPerUserGuid(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadPerUserInformation: + offset = mapi_dissect_element_RopRequest_ReadPerUserInformation(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetReadFlags: + offset = mapi_dissect_element_RopRequest_SetReadFlags(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyProperties: + offset = mapi_dissect_element_RopRequest_CopyProperties(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetReceiveFolderTable: + offset = mapi_dissect_element_RopRequest_GetReceiveFolderTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetCollapseState: + offset = mapi_dissect_element_RopRequest_GetCollapseState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetCollapseState: + offset = mapi_dissect_element_RopRequest_SetCollapseState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetTransportFolder: + offset = mapi_dissect_element_RopRequest_GetTransportFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOptionsData: + offset = mapi_dissect_element_RopRequest_OptionsData(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationConfigure: + offset = mapi_dissect_element_RopRequest_SyncConfigure(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportMessageChange: + offset = mapi_dissect_element_RopRequest_SyncImportMessageChange(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportHierarchyChange: + offset = mapi_dissect_element_RopRequest_SyncImportHierarchyChange(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportDeletes: + offset = mapi_dissect_element_RopRequest_SyncImportDeletes(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamBegin: + offset = mapi_dissect_element_RopRequest_SyncUploadStateStreamBegin(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamContinue: + offset = mapi_dissect_element_RopRequest_SyncUploadStateStreamContinue(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamEnd: + offset = mapi_dissect_element_RopRequest_SyncUploadStateStreamEnd(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportMessageMove: + offset = mapi_dissect_element_RopRequest_SyncImportMessageMove(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetPropertiesNoReplicate: + offset = mapi_dissect_element_RopRequest_SetPropertiesNoReplicate(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeletePropertiesNoReplicate: + offset = mapi_dissect_element_RopRequest_DeletePropertiesNoReplicate(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStoreState: + offset = mapi_dissect_element_RopRequest_GetStoreState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationOpenCollector: + offset = mapi_dissect_element_RopRequest_SyncOpenCollector(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetLocalReplicaIds: + offset = mapi_dissect_element_RopRequest_GetLocalReplicaIds(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportReadStateChanges: + offset = mapi_dissect_element_RopRequest_SyncImportReadStateChanges(tvb, offset, pinfo, tree, di, drep); + break; + + case RopResetTable: + offset = mapi_dissect_element_RopRequest_ResetTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationGetTransferState: + offset = mapi_dissect_element_RopRequest_SyncGetTransferState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenPublicFolderByName: + offset = mapi_dissect_element_RopRequest_OpenPublicFolderByName(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSyncNotificationGuid: + offset = mapi_dissect_element_RopRequest_SetSyncNotificationGuid(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFreeBookmark: + offset = mapi_dissect_element_RopRequest_FreeBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopWriteAndCommitStream: + offset = mapi_dissect_element_RopRequest_WriteAndCommitStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopHardDeleteMessages: + offset = mapi_dissect_element_RopRequest_HardDeleteMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopHardDeleteMessagesAndSubfolders: + offset = mapi_dissect_element_RopRequest_HardDeleteMessagesAndSubfolders(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLogon: + offset = mapi_dissect_element_RopRequest_Logon(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [nodiscriminant(1)] [public(1)] union { */ +/* IDL: [case(RopRelease)] [case(RopRelease)] Release_repl Release; */ +/* IDL: [case(RopOpenFolder)] [case(RopOpenFolder)] OpenFolder_repl OpenFolder; */ +/* IDL: [case(RopOpenMessage)] [case(RopOpenMessage)] OpenMessage_repl OpenMessage; */ +/* IDL: [case(RopGetHierarchyTable)] [case(RopGetHierarchyTable)] GetHierarchyTable_repl GetHierarchyTable; */ +/* IDL: [case(RopGetContentsTable)] [case(RopGetContentsTable)] GetContentsTable_repl GetContentsTable; */ +/* IDL: [case(RopCreateMessage)] [case(RopCreateMessage)] CreateMessage_repl CreateMessage; */ +/* IDL: [case(RopGetPropertiesSpecific)] [case(RopGetPropertiesSpecific)] GetProps_repl GetProps; */ +/* IDL: [case(RopGetPropertiesAll)] [case(RopGetPropertiesAll)] GetPropsAll_repl GetPropsAll; */ +/* IDL: [case(RopGetPropertiesList)] [case(RopGetPropertiesList)] GetPropList_repl GetPropList; */ +/* IDL: [case(RopSetProperties)] [case(RopSetProperties)] SetProps_repl SetProps; */ +/* IDL: [case(RopDeleteProperties)] [case(RopDeleteProperties)] DeleteProps_repl DeleteProps; */ +/* IDL: [case(RopSaveChangesMessage)] [case(RopSaveChangesMessage)] SaveChangesMessage_repl SaveChangesMessage; */ +/* IDL: [case(RopRemoveAllRecipients)] [case(RopRemoveAllRecipients)] RemoveAllRecipients_repl RemoveAllRecipients; */ +/* IDL: [case(RopModifyRecipients)] [case(RopModifyRecipients)] ModifyRecipients_repl ModifyRecipients; */ +/* IDL: [case(RopReadRecipients)] [case(RopReadRecipients)] ReadRecipients_repl ReadRecipients; */ +/* IDL: [case(RopSetMessageReadFlag)] [case(RopSetMessageReadFlag)] SetMessageReadFlag_repl SetMessageReadFlag; */ +/* IDL: [case(RopReloadCachedInformation)] [case(RopReloadCachedInformation)] ReloadCachedInformation_repl ReloadCachedInformation; */ +/* IDL: [case(RopSetColumns)] [case(RopSetColumns)] SetColumns_repl SetColumns; */ +/* IDL: [case(RopSortTable)] [case(RopSortTable)] SortTable_repl SortTable; */ +/* IDL: [case(RopRestrict)] [case(RopRestrict)] Restrict_repl Restrict; */ +/* IDL: [case(RopQueryRows)] [case(RopQueryRows)] QueryRows_repl QueryRows; */ +/* IDL: [case(RopGetStatus)] [case(RopGetStatus)] GetStatus_repl GetStatus; */ +/* IDL: [case(RopQueryPosition)] [case(RopQueryPosition)] QueryPosition_repl QueryPosition; */ +/* IDL: [case(RopSeekRow)] [case(RopSeekRow)] SeekRow_repl SeekRow; */ +/* IDL: [case(RopSeekRowBookmark)] [case(RopSeekRowBookmark)] SeekRowBookmark_repl SeekRowBookmark; */ +/* IDL: [case(RopSeekRowFractional)] [case(RopSeekRowFractional)] SeekRowApprox_repl SeekRowApprox; */ +/* IDL: [case(RopCreateBookmark)] [case(RopCreateBookmark)] CreateBookmark_repl CreateBookmark; */ +/* IDL: [case(RopCreateFolder)] [case(RopCreateFolder)] CreateFolder_repl CreateFolder; */ +/* IDL: [case(RopDeleteFolder)] [case(RopDeleteFolder)] DeleteFolder_repl DeleteFolder; */ +/* IDL: [case(RopDeleteMessages)] [case(RopDeleteMessages)] DeleteMessages_repl DeleteMessages; */ +/* IDL: [case(RopSetMessageStatus)] [case(RopSetMessageStatus)] SetMessageStatus_repl SetMessageStatus; */ +/* IDL: [case(RopGetAttachmentTable)] [case(RopGetAttachmentTable)] GetAttachmentTable_repl GetAttachmentTable; */ +/* IDL: [case(RopOpenAttachment)] [case(RopOpenAttachment)] OpenAttach_repl OpenAttach; */ +/* IDL: [case(RopCreateAttachment)] [case(RopCreateAttachment)] CreateAttach_repl CreateAttach; */ +/* IDL: [case(RopDeleteAttachment)] [case(RopDeleteAttachment)] DeleteAttach_repl DeleteAttach; */ +/* IDL: [case(RopSaveChangesAttachment)] [case(RopSaveChangesAttachment)] SaveChangesAttachment_repl SaveChangesAttachment; */ +/* IDL: [case(RopSetReceiveFolder)] [case(RopSetReceiveFolder)] SetReceiveFolder_repl SetReceiveFolder; */ +/* IDL: [case(RopGetReceiveFolder)] [case(RopGetReceiveFolder)] GetReceiveFolder_repl GetReceiveFolder; */ +/* IDL: [case(RopRegisterNotification)] [case(RopRegisterNotification)] RegisterNotification_repl Advise; */ +/* IDL: [case(RopNotify)] [case(RopNotify)] Notify_repl Notify; */ +/* IDL: [case(RopOpenStream)] [case(RopOpenStream)] OpenStream_repl OpenStream; */ +/* IDL: [case(RopReadStream)] [case(RopReadStream)] ReadStream_repl ReadStream; */ +/* IDL: [case(RopWriteStream)] [case(RopWriteStream)] WriteStream_repl WriteStream; */ +/* IDL: [case(RopSeekStream)] [case(RopSeekStream)] SeekStream_repl SeekStream; */ +/* IDL: [case(RopSetStreamSize)] [case(RopSetStreamSize)] SetStreamSize_repl SetStreamSize; */ +/* IDL: [case(RopSetSearchCriteria)] [case(RopSetSearchCriteria)] SetSearchCriteria_repl SetSearchCriteria; */ +/* IDL: [case(RopGetSearchCriteria)] [case(RopGetSearchCriteria)] GetSearchCriteria_repl GetSearchCriteria; */ +/* IDL: [case(RopSubmitMessage)] [case(RopSubmitMessage)] SubmitMessage_repl SubmitMessage; */ +/* IDL: [case(RopMoveCopyMessages)] [case(RopMoveCopyMessages)] MoveCopyMessages_repl MoveCopyMessages; */ +/* IDL: [case(RopAbortSubmit)] [case(RopAbortSubmit)] AbortSubmit_repl AbortSubmit; */ +/* IDL: [case(RopMoveFolder)] [case(RopMoveFolder)] MoveFolder_repl MoveFolder; */ +/* IDL: [case(RopCopyFolder)] [case(RopCopyFolder)] CopyFolder_repl CopyFolder; */ +/* IDL: [case(RopQueryColumnsAll)] [case(RopQueryColumnsAll)] QueryColumnsAll_repl QueryColumnsAll; */ +/* IDL: [case(RopAbort)] [case(RopAbort)] Abort_repl Abort; */ +/* IDL: [case(RopCopyTo)] [case(RopCopyTo)] CopyTo_repl CopyTo; */ +/* IDL: [case(RopCopyToStream)] [case(RopCopyToStream)] CopyToStream_repl CopyToStream; */ +/* IDL: [case(RopCloneStream)] [case(RopCloneStream)] CloneStream_repl CloneStream; */ +/* IDL: [case(RopGetPermissionsTable)] [case(RopGetPermissionsTable)] GetPermissionsTable_repl GetPermissionsTable; */ +/* IDL: [case(RopGetRulesTable)] [case(RopGetRulesTable)] GetRulesTable_repl GetRulesTable; */ +/* IDL: [case(RopModifyPermissions)] [case(RopModifyPermissions)] ModifyPermissions_repl ModifyPermissions; */ +/* IDL: [case(RopModifyRules)] [case(RopModifyRules)] ModifyRules_repl ModifyRules; */ +/* IDL: [case(RopGetOwningServers)] [case(RopGetOwningServers)] GetOwningServers_repl GetOwningServers; */ +/* IDL: [case(RopLongTermIdFromId)] [case(RopLongTermIdFromId)] LongTermIdFromId_repl LongTermIdFromId; */ +/* IDL: [case(RopIdFromLongTermId)] [case(RopIdFromLongTermId)] IdFromLongTermId_repl IdFromLongTermId; */ +/* IDL: [case(RopPublicFolderIsGhosted)] [case(RopPublicFolderIsGhosted)] PublicFolderIsGhosted_repl PublicFolderIsGhosted; */ +/* IDL: [case(RopOpenEmbeddedMessage)] [case(RopOpenEmbeddedMessage)] OpenEmbeddedMessage_repl OpenEmbeddedMessage; */ +/* IDL: [case(RopSetSpooler)] [case(RopSetSpooler)] SetSpooler_repl SetSpooler; */ +/* IDL: [case(RopSpoolerLockMessage)] [case(RopSpoolerLockMessage)] SpoolerLockMessage_repl SpoolerLockMessage; */ +/* IDL: [case(RopGetAddressTypes)] [case(RopGetAddressTypes)] AddressTypes_repl AddressTypes; */ +/* IDL: [case(RopTransportSend)] [case(RopTransportSend)] TransportSend_repl TransportSend; */ +/* IDL: [case(RopFastTransferSourceGetBuffer)] [case(RopFastTransferSourceGetBuffer)] FastTransferSourceGetBuffer_repl FastTransferSourceGetBuffer; */ +/* IDL: [case(RopFindRow)] [case(RopFindRow)] FindRow_repl FindRow; */ +/* IDL: [case(RopProgress)] [case(RopProgress)] Progress_repl Progress; */ +/* IDL: [case(RopTransportNewMail)] [case(RopTransportNewMail)] TransportNewMail_repl TransportNewMail; */ +/* IDL: [case(RopGetValidAttachments)] [case(RopGetValidAttachments)] GetValidAttachments_repl GetValidAttachments; */ +/* IDL: [case(RopGetNamesFromPropertyIds)] [case(RopGetNamesFromPropertyIds)] GetNamesFromIDs_repl GetNamesFromIDs; */ +/* IDL: [case(RopGetPropertyIdsFromNames)] [case(RopGetPropertyIdsFromNames)] GetIDsFromNames_repl GetIDsFromNames; */ +/* IDL: [case(RopUpdateDeferredActionMessages)] [case(RopUpdateDeferredActionMessages)] UpdateDeferredActionMessages_repl UpdateDeferredActionMessages; */ +/* IDL: [case(RopEmptyFolder)] [case(RopEmptyFolder)] EmptyFolder_repl EmptyFolder; */ +/* IDL: [case(RopExpandRow)] [case(RopExpandRow)] ExpandRow_repl ExpandRow; */ +/* IDL: [case(RopCollapseRow)] [case(RopCollapseRow)] CollapseRow_repl CollapseRow; */ +/* IDL: [case(RopLockRegionStream)] [case(RopLockRegionStream)] LockRegionStream_repl LockRegionStream; */ +/* IDL: [case(RopUnlockRegionStream)] [case(RopUnlockRegionStream)] UnlockRegionStream_repl UnlockRegionStream; */ +/* IDL: [case(RopCommitStream)] [case(RopCommitStream)] CommitStream_repl CommitStream; */ +/* IDL: [case(RopGetStreamSize)] [case(RopGetStreamSize)] GetStreamSize_repl GetStreamSize; */ +/* IDL: [case(RopQueryNamedProperties)] [case(RopQueryNamedProperties)] QueryNamedProperties_repl QueryNamedProperties; */ +/* IDL: [case(RopGetPerUserLongTermIds)] [case(RopGetPerUserLongTermIds)] GetPerUserLongTermIds_repl GetPerUserLongTermIds; */ +/* IDL: [case(RopGetPerUserGuid)] [case(RopGetPerUserGuid)] GetPerUserGuid_repl GetPerUserGuid; */ +/* IDL: [case(RopReadPerUserInformation)] [case(RopReadPerUserInformation)] ReadPerUserInformation_repl ReadPerUserInformation; */ +/* IDL: [case(RopSetReadFlags)] [case(RopSetReadFlags)] SetReadFlags_repl SetReadFlags; */ +/* IDL: [case(RopCopyProperties)] [case(RopCopyProperties)] CopyProperties_repl CopyProperties; */ +/* IDL: [case(RopGetReceiveFolderTable)] [case(RopGetReceiveFolderTable)] GetReceiveFolderTable_repl GetReceiveFolderTable; */ +/* IDL: [case(RopPending)] [case(RopPending)] Pending_repl Pending; */ +/* IDL: [case(RopGetCollapseState)] [case(RopGetCollapseState)] GetCollapseState_repl GetCollapseState; */ +/* IDL: [case(RopSetCollapseState)] [case(RopSetCollapseState)] SetCollapseState_repl SetCollapseState; */ +/* IDL: [case(RopGetTransportFolder)] [case(RopGetTransportFolder)] GetTransportFolder_repl GetTransportFolder; */ +/* IDL: [case(RopOptionsData)] [case(RopOptionsData)] OptionsData_repl OptionsData; */ +/* IDL: [case(RopSynchronizationConfigure)] [case(RopSynchronizationConfigure)] SyncConfigure_repl SyncConfigure; */ +/* IDL: [case(RopSynchronizationImportMessageChange)] [case(RopSynchronizationImportMessageChange)] SyncImportMessageChange_repl SyncImportMessageChange; */ +/* IDL: [case(RopSynchronizationImportHierarchyChange)] [case(RopSynchronizationImportHierarchyChange)] SyncImportHierarchyChange_repl SyncImportHierarchyChange; */ +/* IDL: [case(RopSynchronizationImportDeletes)] [case(RopSynchronizationImportDeletes)] SyncImportDeletes_repl SyncImportDeletes; */ +/* IDL: [case(RopSynchronizationUploadStateStreamBegin)] [case(RopSynchronizationUploadStateStreamBegin)] SyncUploadStateStreamBegin_repl SyncUploadStateStreamBegin; */ +/* IDL: [case(RopSynchronizationUploadStateStreamContinue)] [case(RopSynchronizationUploadStateStreamContinue)] SyncUploadStateStreamContinue_repl SyncUploadStateStreamContinue; */ +/* IDL: [case(RopSynchronizationUploadStateStreamEnd)] [case(RopSynchronizationUploadStateStreamEnd)] SyncUploadStateStreamEnd_repl SyncUploadStateStreamEnd; */ +/* IDL: [case(RopSynchronizationImportMessageMove)] [case(RopSynchronizationImportMessageMove)] SyncImportMessageMove_repl SyncImportMessageMove; */ +/* IDL: [case(RopSetPropertiesNoReplicate)] [case(RopSetPropertiesNoReplicate)] SetPropertiesNoReplicate_repl SetPropertiesNoReplicate; */ +/* IDL: [case(RopDeletePropertiesNoReplicate)] [case(RopDeletePropertiesNoReplicate)] DeletePropertiesNoReplicate_repl DeletePropertiesNoReplicate; */ +/* IDL: [case(RopGetStoreState)] [case(RopGetStoreState)] GetStoreState_repl GetStoreState; */ +/* IDL: [case(RopSynchronizationOpenCollector)] [case(RopSynchronizationOpenCollector)] SyncOpenCollector_repl SyncOpenCollector; */ +/* IDL: [case(RopGetLocalReplicaIds)] [case(RopGetLocalReplicaIds)] GetLocalReplicaIds_repl GetLocalReplicaIds; */ +/* IDL: [case(RopSynchronizationImportReadStateChanges)] [case(RopSynchronizationImportReadStateChanges)] SyncImportReadStateChanges_repl SyncImportReadStateChanges; */ +/* IDL: [case(RopResetTable)] [case(RopResetTable)] ResetTable_repl ResetTable; */ +/* IDL: [case(RopSynchronizationGetTransferState)] [case(RopSynchronizationGetTransferState)] SyncGetTransferState_repl SyncGetTransferState; */ +/* IDL: [case(RopOpenPublicFolderByName)] [case(RopOpenPublicFolderByName)] OpenPublicFolderByName_repl OpenPublicFolderByName; */ +/* IDL: [case(RopSetSyncNotificationGuid)] [case(RopSetSyncNotificationGuid)] SetSyncNotificationGuid_repl SetSyncNotificationGuid; */ +/* IDL: [case(RopFreeBookmark)] [case(RopFreeBookmark)] FreeBookmark_repl FreeBookmark; */ +/* IDL: [case(RopWriteAndCommitStream)] [case(RopWriteAndCommitStream)] WriteAndCommitStream_repl WriteAndCommitStream; */ +/* IDL: [case(RopHardDeleteMessages)] [case(RopHardDeleteMessages)] HardDeleteMessages_repl HardDeleteMessages; */ +/* IDL: [case(RopHardDeleteMessagesAndSubfolders)] [case(RopHardDeleteMessagesAndSubfolders)] HardDeleteMessagesAndSubfolders_repl HardDeleteMessagesAndSubfolders; */ +/* IDL: [case(RopLogon)] [case(RopLogon)] Logon_repl Logon; */ +/* IDL: [case(RopBufferTooSmall)] [case(RopBufferTooSmall)] RopBufferTooSmall_repl RopBufferTooSmall; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_RopReply_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Release_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Release,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetHierarchyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetHierarchyTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetHierarchyTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetContentsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetContentsTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetContentsTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CreateMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CreateMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetProps_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetPropsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPropsAll_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetPropsAll,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetPropList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPropList_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetPropList,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetProps_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_DeleteProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteProps_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_DeleteProps,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SaveChangesMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SaveChangesMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SaveChangesMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_RemoveAllRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RemoveAllRecipients_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_RemoveAllRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ModifyRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyRecipients_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ModifyRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ReadRecipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadRecipients_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ReadRecipients,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetMessageReadFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetMessageReadFlag_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetMessageReadFlag,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ReloadCachedInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReloadCachedInformation_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ReloadCachedInformation,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetColumns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetColumns_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetColumns,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SortTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SortTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SortTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Restrict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Restrict_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Restrict,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_QueryRows(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryRows_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_QueryRows,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStatus_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetStatus,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_QueryPosition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryPosition_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_QueryPosition,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SeekRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRow_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SeekRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SeekRowBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRowBookmark_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SeekRowBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SeekRowApprox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekRowApprox_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SeekRowApprox,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CreateBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateBookmark_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CreateBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CreateFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CreateFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_DeleteFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_DeleteFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_DeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteMessages_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_DeleteMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetMessageStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetMessageStatus_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetMessageStatus,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetAttachmentTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetAttachmentTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetAttachmentTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenAttach_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CreateAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CreateAttach_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CreateAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_DeleteAttach(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeleteAttach_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_DeleteAttach,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SaveChangesAttachment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SaveChangesAttachment_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SaveChangesAttachment,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetReceiveFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetReceiveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetReceiveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetReceiveFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetReceiveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Advise(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RegisterNotification_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Advise,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Notify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Notify_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Notify,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ReadStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ReadStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_WriteStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_WriteStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_WriteStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SeekStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SeekStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SeekStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetStreamSize_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetStreamSize,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSearchCriteria_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetSearchCriteria,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetSearchCriteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetSearchCriteria_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetSearchCriteria,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SubmitMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SubmitMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SubmitMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_MoveCopyMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveCopyMessages_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_MoveCopyMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_AbortSubmit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AbortSubmit_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_AbortSubmit,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_MoveFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_MoveFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_MoveFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CopyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CopyFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_QueryColumnsAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryColumnsAll_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_QueryColumnsAll,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Abort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Abort_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Abort,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CopyTo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyTo_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CopyTo,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CopyToStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyToStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CopyToStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CloneStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CloneStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CloneStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetPermissionsTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPermissionsTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetPermissionsTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetRulesTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetRulesTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetRulesTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ModifyPermissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyPermissions_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ModifyPermissions,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ModifyRules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ModifyRules_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ModifyRules,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetOwningServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetOwningServers_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetOwningServers,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_LongTermIdFromId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LongTermIdFromId_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_LongTermIdFromId,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_IdFromLongTermId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_IdFromLongTermId_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_IdFromLongTermId,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_PublicFolderIsGhosted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_PublicFolderIsGhosted_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_PublicFolderIsGhosted,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenEmbeddedMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenEmbeddedMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenEmbeddedMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetSpooler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSpooler_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetSpooler,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SpoolerLockMessage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SpoolerLockMessage_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SpoolerLockMessage,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_AddressTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AddressTypes_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_AddressTypes,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_TransportSend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TransportSend_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_TransportSend,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_FastTransferSourceGetBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FastTransferSourceGetBuffer_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_FastTransferSourceGetBuffer,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_FindRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FindRow_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_FindRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Progress_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Progress,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_TransportNewMail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_TransportNewMail_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_TransportNewMail,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetValidAttachments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetValidAttachments_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetValidAttachments,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetNamesFromIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetNamesFromIDs_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetNamesFromIDs,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetIDsFromNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetIDsFromNames_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetIDsFromNames,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_UpdateDeferredActionMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_UpdateDeferredActionMessages_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_UpdateDeferredActionMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_EmptyFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_EmptyFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_EmptyFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ExpandRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ExpandRow_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ExpandRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CollapseRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CollapseRow_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CollapseRow,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_LockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_LockRegionStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_LockRegionStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_UnlockRegionStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_UnlockRegionStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_UnlockRegionStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CommitStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CommitStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetStreamSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStreamSize_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetStreamSize,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_QueryNamedProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_QueryNamedProperties_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_QueryNamedProperties,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetPerUserLongTermIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPerUserLongTermIds_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetPerUserLongTermIds,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetPerUserGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetPerUserGuid_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetPerUserGuid,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ReadPerUserInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ReadPerUserInformation_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ReadPerUserInformation,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetReadFlags_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetReadFlags,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_CopyProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_CopyProperties_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_CopyProperties,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetReceiveFolderTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetReceiveFolderTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetReceiveFolderTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Pending(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Pending_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Pending,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetCollapseState_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetCollapseState,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetCollapseState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetCollapseState_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetCollapseState,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetTransportFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetTransportFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetTransportFolder,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OptionsData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OptionsData_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OptionsData,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncConfigure_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncConfigure,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncImportMessageChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportMessageChange_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncImportMessageChange,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncImportHierarchyChange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportHierarchyChange_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncImportHierarchyChange,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncImportDeletes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportDeletes_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncImportDeletes,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncUploadStateStreamBegin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamBegin_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncUploadStateStreamBegin,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncUploadStateStreamContinue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamContinue_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncUploadStateStreamContinue,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncUploadStateStreamEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncUploadStateStreamEnd_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncUploadStateStreamEnd,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncImportMessageMove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportMessageMove_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncImportMessageMove,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetPropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetPropertiesNoReplicate_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetPropertiesNoReplicate,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_DeletePropertiesNoReplicate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_DeletePropertiesNoReplicate_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_DeletePropertiesNoReplicate,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetStoreState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetStoreState_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetStoreState,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncOpenCollector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncOpenCollector_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncOpenCollector,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_GetLocalReplicaIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_GetLocalReplicaIds_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_GetLocalReplicaIds,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncImportReadStateChanges(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncImportReadStateChanges_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncImportReadStateChanges,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_ResetTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_ResetTable_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_ResetTable,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SyncGetTransferState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SyncGetTransferState_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SyncGetTransferState,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_OpenPublicFolderByName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_OpenPublicFolderByName_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_OpenPublicFolderByName,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_SetSyncNotificationGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_SetSyncNotificationGuid_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_SetSyncNotificationGuid,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_FreeBookmark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_FreeBookmark_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_FreeBookmark,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_WriteAndCommitStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_WriteAndCommitStream_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_WriteAndCommitStream,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_HardDeleteMessages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HardDeleteMessages_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_HardDeleteMessages,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_HardDeleteMessagesAndSubfolders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_HardDeleteMessagesAndSubfolders_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_HardDeleteMessagesAndSubfolders,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_Logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_Logon_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_Logon,0); + + return offset; +} + +static int +mapi_dissect_element_RopReply_RopBufferTooSmall(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RopBufferTooSmall_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_RopReply_RopBufferTooSmall,0); + + return offset; +} + +static int +mapi_dissect_RopReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_RopReply, &item, "RopReply"); + } + + switch(level) { + case RopRelease: + offset = mapi_dissect_element_RopReply_Release(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenFolder: + offset = mapi_dissect_element_RopReply_OpenFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenMessage: + offset = mapi_dissect_element_RopReply_OpenMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetHierarchyTable: + offset = mapi_dissect_element_RopReply_GetHierarchyTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetContentsTable: + offset = mapi_dissect_element_RopReply_GetContentsTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateMessage: + offset = mapi_dissect_element_RopReply_CreateMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesSpecific: + offset = mapi_dissect_element_RopReply_GetProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesAll: + offset = mapi_dissect_element_RopReply_GetPropsAll(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertiesList: + offset = mapi_dissect_element_RopReply_GetPropList(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetProperties: + offset = mapi_dissect_element_RopReply_SetProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteProperties: + offset = mapi_dissect_element_RopReply_DeleteProps(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSaveChangesMessage: + offset = mapi_dissect_element_RopReply_SaveChangesMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRemoveAllRecipients: + offset = mapi_dissect_element_RopReply_RemoveAllRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyRecipients: + offset = mapi_dissect_element_RopReply_ModifyRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadRecipients: + offset = mapi_dissect_element_RopReply_ReadRecipients(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetMessageReadFlag: + offset = mapi_dissect_element_RopReply_SetMessageReadFlag(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReloadCachedInformation: + offset = mapi_dissect_element_RopReply_ReloadCachedInformation(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetColumns: + offset = mapi_dissect_element_RopReply_SetColumns(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSortTable: + offset = mapi_dissect_element_RopReply_SortTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRestrict: + offset = mapi_dissect_element_RopReply_Restrict(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryRows: + offset = mapi_dissect_element_RopReply_QueryRows(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStatus: + offset = mapi_dissect_element_RopReply_GetStatus(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryPosition: + offset = mapi_dissect_element_RopReply_QueryPosition(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRow: + offset = mapi_dissect_element_RopReply_SeekRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRowBookmark: + offset = mapi_dissect_element_RopReply_SeekRowBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekRowFractional: + offset = mapi_dissect_element_RopReply_SeekRowApprox(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateBookmark: + offset = mapi_dissect_element_RopReply_CreateBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateFolder: + offset = mapi_dissect_element_RopReply_CreateFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteFolder: + offset = mapi_dissect_element_RopReply_DeleteFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteMessages: + offset = mapi_dissect_element_RopReply_DeleteMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetMessageStatus: + offset = mapi_dissect_element_RopReply_SetMessageStatus(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetAttachmentTable: + offset = mapi_dissect_element_RopReply_GetAttachmentTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenAttachment: + offset = mapi_dissect_element_RopReply_OpenAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCreateAttachment: + offset = mapi_dissect_element_RopReply_CreateAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeleteAttachment: + offset = mapi_dissect_element_RopReply_DeleteAttach(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSaveChangesAttachment: + offset = mapi_dissect_element_RopReply_SaveChangesAttachment(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetReceiveFolder: + offset = mapi_dissect_element_RopReply_SetReceiveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetReceiveFolder: + offset = mapi_dissect_element_RopReply_GetReceiveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopRegisterNotification: + offset = mapi_dissect_element_RopReply_Advise(tvb, offset, pinfo, tree, di, drep); + break; + + case RopNotify: + offset = mapi_dissect_element_RopReply_Notify(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenStream: + offset = mapi_dissect_element_RopReply_OpenStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadStream: + offset = mapi_dissect_element_RopReply_ReadStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopWriteStream: + offset = mapi_dissect_element_RopReply_WriteStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSeekStream: + offset = mapi_dissect_element_RopReply_SeekStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetStreamSize: + offset = mapi_dissect_element_RopReply_SetStreamSize(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSearchCriteria: + offset = mapi_dissect_element_RopReply_SetSearchCriteria(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetSearchCriteria: + offset = mapi_dissect_element_RopReply_GetSearchCriteria(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSubmitMessage: + offset = mapi_dissect_element_RopReply_SubmitMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopMoveCopyMessages: + offset = mapi_dissect_element_RopReply_MoveCopyMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopAbortSubmit: + offset = mapi_dissect_element_RopReply_AbortSubmit(tvb, offset, pinfo, tree, di, drep); + break; + + case RopMoveFolder: + offset = mapi_dissect_element_RopReply_MoveFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyFolder: + offset = mapi_dissect_element_RopReply_CopyFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryColumnsAll: + offset = mapi_dissect_element_RopReply_QueryColumnsAll(tvb, offset, pinfo, tree, di, drep); + break; + + case RopAbort: + offset = mapi_dissect_element_RopReply_Abort(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyTo: + offset = mapi_dissect_element_RopReply_CopyTo(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyToStream: + offset = mapi_dissect_element_RopReply_CopyToStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCloneStream: + offset = mapi_dissect_element_RopReply_CloneStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPermissionsTable: + offset = mapi_dissect_element_RopReply_GetPermissionsTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetRulesTable: + offset = mapi_dissect_element_RopReply_GetRulesTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyPermissions: + offset = mapi_dissect_element_RopReply_ModifyPermissions(tvb, offset, pinfo, tree, di, drep); + break; + + case RopModifyRules: + offset = mapi_dissect_element_RopReply_ModifyRules(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetOwningServers: + offset = mapi_dissect_element_RopReply_GetOwningServers(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLongTermIdFromId: + offset = mapi_dissect_element_RopReply_LongTermIdFromId(tvb, offset, pinfo, tree, di, drep); + break; + + case RopIdFromLongTermId: + offset = mapi_dissect_element_RopReply_IdFromLongTermId(tvb, offset, pinfo, tree, di, drep); + break; + + case RopPublicFolderIsGhosted: + offset = mapi_dissect_element_RopReply_PublicFolderIsGhosted(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenEmbeddedMessage: + offset = mapi_dissect_element_RopReply_OpenEmbeddedMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSpooler: + offset = mapi_dissect_element_RopReply_SetSpooler(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSpoolerLockMessage: + offset = mapi_dissect_element_RopReply_SpoolerLockMessage(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetAddressTypes: + offset = mapi_dissect_element_RopReply_AddressTypes(tvb, offset, pinfo, tree, di, drep); + break; + + case RopTransportSend: + offset = mapi_dissect_element_RopReply_TransportSend(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFastTransferSourceGetBuffer: + offset = mapi_dissect_element_RopReply_FastTransferSourceGetBuffer(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFindRow: + offset = mapi_dissect_element_RopReply_FindRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopProgress: + offset = mapi_dissect_element_RopReply_Progress(tvb, offset, pinfo, tree, di, drep); + break; + + case RopTransportNewMail: + offset = mapi_dissect_element_RopReply_TransportNewMail(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetValidAttachments: + offset = mapi_dissect_element_RopReply_GetValidAttachments(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetNamesFromPropertyIds: + offset = mapi_dissect_element_RopReply_GetNamesFromIDs(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPropertyIdsFromNames: + offset = mapi_dissect_element_RopReply_GetIDsFromNames(tvb, offset, pinfo, tree, di, drep); + break; + + case RopUpdateDeferredActionMessages: + offset = mapi_dissect_element_RopReply_UpdateDeferredActionMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopEmptyFolder: + offset = mapi_dissect_element_RopReply_EmptyFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopExpandRow: + offset = mapi_dissect_element_RopReply_ExpandRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCollapseRow: + offset = mapi_dissect_element_RopReply_CollapseRow(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLockRegionStream: + offset = mapi_dissect_element_RopReply_LockRegionStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopUnlockRegionStream: + offset = mapi_dissect_element_RopReply_UnlockRegionStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCommitStream: + offset = mapi_dissect_element_RopReply_CommitStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStreamSize: + offset = mapi_dissect_element_RopReply_GetStreamSize(tvb, offset, pinfo, tree, di, drep); + break; + + case RopQueryNamedProperties: + offset = mapi_dissect_element_RopReply_QueryNamedProperties(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPerUserLongTermIds: + offset = mapi_dissect_element_RopReply_GetPerUserLongTermIds(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetPerUserGuid: + offset = mapi_dissect_element_RopReply_GetPerUserGuid(tvb, offset, pinfo, tree, di, drep); + break; + + case RopReadPerUserInformation: + offset = mapi_dissect_element_RopReply_ReadPerUserInformation(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetReadFlags: + offset = mapi_dissect_element_RopReply_SetReadFlags(tvb, offset, pinfo, tree, di, drep); + break; + + case RopCopyProperties: + offset = mapi_dissect_element_RopReply_CopyProperties(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetReceiveFolderTable: + offset = mapi_dissect_element_RopReply_GetReceiveFolderTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopPending: + offset = mapi_dissect_element_RopReply_Pending(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetCollapseState: + offset = mapi_dissect_element_RopReply_GetCollapseState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetCollapseState: + offset = mapi_dissect_element_RopReply_SetCollapseState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetTransportFolder: + offset = mapi_dissect_element_RopReply_GetTransportFolder(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOptionsData: + offset = mapi_dissect_element_RopReply_OptionsData(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationConfigure: + offset = mapi_dissect_element_RopReply_SyncConfigure(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportMessageChange: + offset = mapi_dissect_element_RopReply_SyncImportMessageChange(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportHierarchyChange: + offset = mapi_dissect_element_RopReply_SyncImportHierarchyChange(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportDeletes: + offset = mapi_dissect_element_RopReply_SyncImportDeletes(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamBegin: + offset = mapi_dissect_element_RopReply_SyncUploadStateStreamBegin(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamContinue: + offset = mapi_dissect_element_RopReply_SyncUploadStateStreamContinue(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationUploadStateStreamEnd: + offset = mapi_dissect_element_RopReply_SyncUploadStateStreamEnd(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportMessageMove: + offset = mapi_dissect_element_RopReply_SyncImportMessageMove(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetPropertiesNoReplicate: + offset = mapi_dissect_element_RopReply_SetPropertiesNoReplicate(tvb, offset, pinfo, tree, di, drep); + break; + + case RopDeletePropertiesNoReplicate: + offset = mapi_dissect_element_RopReply_DeletePropertiesNoReplicate(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetStoreState: + offset = mapi_dissect_element_RopReply_GetStoreState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationOpenCollector: + offset = mapi_dissect_element_RopReply_SyncOpenCollector(tvb, offset, pinfo, tree, di, drep); + break; + + case RopGetLocalReplicaIds: + offset = mapi_dissect_element_RopReply_GetLocalReplicaIds(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationImportReadStateChanges: + offset = mapi_dissect_element_RopReply_SyncImportReadStateChanges(tvb, offset, pinfo, tree, di, drep); + break; + + case RopResetTable: + offset = mapi_dissect_element_RopReply_ResetTable(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSynchronizationGetTransferState: + offset = mapi_dissect_element_RopReply_SyncGetTransferState(tvb, offset, pinfo, tree, di, drep); + break; + + case RopOpenPublicFolderByName: + offset = mapi_dissect_element_RopReply_OpenPublicFolderByName(tvb, offset, pinfo, tree, di, drep); + break; + + case RopSetSyncNotificationGuid: + offset = mapi_dissect_element_RopReply_SetSyncNotificationGuid(tvb, offset, pinfo, tree, di, drep); + break; + + case RopFreeBookmark: + offset = mapi_dissect_element_RopReply_FreeBookmark(tvb, offset, pinfo, tree, di, drep); + break; + + case RopWriteAndCommitStream: + offset = mapi_dissect_element_RopReply_WriteAndCommitStream(tvb, offset, pinfo, tree, di, drep); + break; + + case RopHardDeleteMessages: + offset = mapi_dissect_element_RopReply_HardDeleteMessages(tvb, offset, pinfo, tree, di, drep); + break; + + case RopHardDeleteMessagesAndSubfolders: + offset = mapi_dissect_element_RopReply_HardDeleteMessagesAndSubfolders(tvb, offset, pinfo, tree, di, drep); + break; + + case RopLogon: + offset = mapi_dissect_element_RopReply_Logon(tvb, offset, pinfo, tree, di, drep); + break; + + case RopBufferTooSmall: + offset = mapi_dissect_element_RopReply_RopBufferTooSmall(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} /* IDL: struct { */ /* IDL: uint8 opnum; */ -/* IDL: uint8 handle_idx; */ -/* IDL: MAPISTATUS error_code; */ -/* IDL: [switch_is(opnum)] EcDoRpc_MAPI_REPL_UNION u; */ +/* IDL: [switch_is(opnum)] RopRequest u; */ /* IDL: } */ +static int +mapi_dissect_element_EcDoRpcMapiRequest_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum) +{ + offset = mapi_dissect_RopRequest(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiRequest_u, *opnum); + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint8 opnum; */ +/* IDL: [switch_is(opnum)] RopReply u; */ +/* IDL: } */ + +static int +mapi_dissect_element_EcDoRpcMapiResponse_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum) +{ + offset = mapi_dissect_RopReply(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiResponse_u, *opnum); + + return offset; +} + /* IDL: struct { */ /* IDL: uint32 mapi_len; */ /* IDL: uint16 length; */ -/* IDL: [unique(1)] EcDoRpc_MAPI_REQ *mapi_req; */ +/* IDL: EcDoRpcMapiRequest rpcRequest; */ /* IDL: [unique(1)] uint32 *handles; */ /* IDL: } */ +static int +mapi_dissect_element_request_rpcRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_EcDoRpcMapiRequest(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_request_rpcRequest,0); + + return offset; +} + /* IDL: struct { */ /* IDL: uint32 mapi_len; */ /* IDL: uint16 length; */ -/* IDL: [unique(1)] EcDoRpc_MAPI_REPL *mapi_repl; */ +/* IDL: EcDoRpcMapiResponse rpcResponse; */ /* IDL: [unique(1)] uint32 *handles; */ /* IDL: } */ +static int +mapi_dissect_element_response_rpcResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_EcDoRpcMapiResponse(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_response_rpcResponse,0); + + return offset; +} + + +/* IDL: enum { */ +/* IDL: AUX_TYPE_PERF_REQUESTID=0x01, */ +/* IDL: AUX_TYPE_PERF_CLIENTINFO=0x02, */ +/* IDL: AUX_TYPE_PERF_SERVERINFO=0x03, */ +/* IDL: AUX_TYPE_PERF_SESSIONINFO=0x04, */ +/* IDL: AUX_TYPE_PERF_DEFMDB_SUCCESS=0x05, */ +/* IDL: AUX_TYPE_PERF_DEFGC_SUCCESS=0x06, */ +/* IDL: AUX_TYPE_PERF_MDB_SUCCESS=0x07, */ +/* IDL: AUX_TYPE_PERF_GC_SUCCESS=0x08, */ +/* IDL: AUX_TYPE_PERF_FAILURE=0x09, */ +/* IDL: AUX_TYPE_CLIENT_CONTROL=0x0A, */ +/* IDL: AUX_TYPE_PERF_PROCESSINFO=0x0B, */ +/* IDL: AUX_TYPE_PERF_BG_DEFMDB_SUCCESS=0x0C, */ +/* IDL: AUX_TYPE_PERF_BG_DEFGC_SUCCESS=0x0D, */ +/* IDL: AUX_TYPE_PERF_BG_MDB_SUCCESS=0x0E, */ +/* IDL: AUX_TYPE_PERF_BG_GC_SUCCESS=0x0F, */ +/* IDL: AUX_TYPE_PERF_BG_FAILURE=0x10, */ +/* IDL: AUX_TYPE_PERF_FG_DEFMDB_SUCCESS=0x11, */ +/* IDL: AUX_TYPE_PERF_FG_DEFGC_SUCCESS=0x12, */ +/* IDL: AUX_TYPE_PERF_FG_MDB_SUCCESS=0x13, */ +/* IDL: AUX_TYPE_PERF_FG_GC_SUCCESS=0x14, */ +/* IDL: AUX_TYPE_PERF_FG_FAILURE=0x15, */ +/* IDL: AUX_TYPE_OSVERSIONINFO=0x16, */ +/* IDL: AUX_TYPE_EXORGINFO=0x17, */ +/* IDL: AUX_TYPE_PERF_ACCOUNTINFO=0x18, */ +/* IDL: AUX_TYPE_SERVER_CAPABILITIES=0x46, */ +/* IDL: AUX_TYPE_ENDPOINT_CAPABILITIES=0x48, */ +/* IDL: AUX_CLIENT_CONNECTION_INFO=0x4A, */ +/* IDL: AUX_SERVER_SESSION_INFO=0x4B, */ +/* IDL: AUX_PROTOCOL_DEVICE_IDENTIFICATION=0x4E, */ +/* IDL: } */ + +int +mapi_dissect_enum_AUX_HEADER_TYPE_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: enum { */ +/* IDL: AUX_TYPE_PERF_SESSIONINFO_2=0x04, */ +/* IDL: AUX_TYPE_PERF_MDB_SUCCESS_2=0x07, */ +/* IDL: AUX_TYPE_PERF_GC_SUCCESS_2=0x08, */ +/* IDL: AUX_TYPE_PERF_FAILURE_2=0x09, */ +/* IDL: AUX_TYPE_PERF_PROCESSINFO_2=0x0B, */ +/* IDL: AUX_TYPE_PERF_BG_MDB_SUCCESS_2=0x0E, */ +/* IDL: AUX_TYPE_PERF_BG_GC_SUCCESS_2=0x0F, */ +/* IDL: AUX_TYPE_PERF_BG_FAILURE_2=0x10, */ +/* IDL: AUX_TYPE_PERF_FG_MDB_SUCCESS_2=0x13, */ +/* IDL: AUX_TYPE_PERF_FG_GC_SUCCESS_2=0x14, */ +/* IDL: AUX_TYPE_PERF_FG_FAILURE_2=0x15, */ +/* IDL: } */ + +int +mapi_dissect_enum_AUX_HEADER_TYPE_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: enum { */ +/* IDL: AUX_VERSION_1=0x1, */ +/* IDL: AUX_VERSION_2=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_AUX_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_) +{ + guint8 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: [switch_type(uint8)] union { */ +/* IDL: [case(AUX_VERSION_1)] [case(AUX_VERSION_1)] AUX_HEADER_TYPE_1 Type; */ +/* IDL: [case(AUX_VERSION_2)] [case(AUX_VERSION_2)] AUX_HEADER_TYPE_2 Type_2; */ +/* IDL: [default] ; */ +/* IDL: } */ + /* IDL: struct { */ -/* IDL: uint16 cb; */ -/* IDL: uint8 ab[cb]; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 RequestID; */ /* IDL: } */ static int -mapi_dissect_element_EcDoConnect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_REQUESTID_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_handle); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_REQUESTID_SessionID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_REQUESTID_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_handle, 0x0001); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_REQUESTID_RequestID, 0); return offset; } +int +mapi_dissect_struct_AUX_PERF_REQUESTID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_REQUESTID); + } + + offset = mapi_dissect_element_AUX_PERF_REQUESTID_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_REQUESTID_RequestID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: enum { */ +/* IDL: CLIENTMODE_UNKNOWN=0x0, */ +/* IDL: CLIENTMODE_CLASSIC=0x1, */ +/* IDL: CLIENTMODE_CACHED=0x2, */ +/* IDL: } */ + +int +mapi_dissect_enum_ClientMode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +{ + guint16 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 AdapterSpeed; */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 MachineNameOffset; */ +/* IDL: uint16 UserNameOffset; */ +/* IDL: uint16 ClientIPSize; */ +/* IDL: uint16 ClientIPOffset; */ +/* IDL: uint16 ClientIPMaskSize; */ +/* IDL: uint16 ClientIPMaskOffset; */ +/* IDL: uint16 AdapterNameOffset; */ +/* IDL: uint16 MacAddressSize; */ +/* IDL: uint16 MacAddressOffset; */ +/* IDL: ClientMode ClientMode; */ +/* IDL: uint16 Reserved; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string MachineName; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string UserName; */ +/* IDL: uint8 ClientIP[0]; */ +/* IDL: uint8 ClientIPMask[0]; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string AdapterName; */ +/* IDL: uint8 MacAddress[0]; */ +/* IDL: } */ + static int -mapi_dissect_element_EcDoConnect_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_CLIENTINFO_AdapterSpeed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - char *data; + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_AdapterSpeed, 0); - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_EcDoConnect_name, FALSE, &data); - proto_item_append_text(tree, ": %s", data); + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_CLIENTINFO_ClientMode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_ClientMode(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_ClientMode, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_CLIENTINFO_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_CLIENTINFO_Reserved, 0); + + return offset; +} + + +/* IDL: enum { */ +/* IDL: SERVERTYPE_UNKNOWN=0x0, */ +/* IDL: SERVERTYPE_PRIVATE=0x1, */ +/* IDL: SERVERTYPE_PUBLIC=0x2, */ +/* IDL: SERVERTYPE_DIRECTORY=0x3, */ +/* IDL: SERVERTYPE_REFERRAL=0x4, */ +/* IDL: } */ + +int +mapi_dissect_enum_SERVERINFO_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_) +{ + guint16 parameter=0; + if (param) { + parameter = *param; + } + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); + if (param) { + *param = parameter; + } + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ServerID; */ +/* IDL: SERVERINFO_ServerType ServerType; */ +/* IDL: uint16 ServerDNOffset; */ +/* IDL: uint16 ServerNameOffset; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string ServerDN; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string ServerName; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_SERVERINFO_ServerType(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerType, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDNOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerDNOffset, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerNameOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerNameOffset, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerDN , 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SERVERINFO_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_AUX_PERF_SERVERINFO_ServerName , 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_SERVERINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_SERVERINFO); + } + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerType(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDNOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerNameOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerDN(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SERVERINFO_ServerName(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 Reserved; */ +/* IDL: GUID SessionGuid; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_SessionGuid, NULL); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_SESSIONINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_SESSIONINFO); + } + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_SessionGuid(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 Reserved; */ +/* IDL: GUID SessionGuid; */ +/* IDL: uint32 ConnectionID; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_V2_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_ConnectionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_SESSIONINFO_V2_ConnectionID, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_SESSIONINFO_V2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_SESSIONINFO_V2); + } + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_SessionGuid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_SESSIONINFO_V2_ConnectionID(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: uint16 RequestID; */ +/* IDL: uint16 Reserved; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFMDB_SUCCESS_RequestID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFMDB_SUCCESS_Reserved, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_DEFMDB_SUCCESS); + } + + offset = mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_RequestID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFMDB_SUCCESS_Reserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: uint8 RequestOperation; */ +/* IDL: uint8 Reserved[3]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_RequestOperation, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { int i; for (i = 0; i < 3; i++) - offset = mapi_dissect_element_EcDoConnect_unknown1_(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved_(tvb, offset, pinfo, tree, di, drep); return offset; } static int -mapi_dissect_element_EcDoConnect_unknown1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_unknown1, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_DEFGC_SUCCESS_Reserved, 0); return offset; } +int +mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_DEFGC_SUCCESS); + } + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_RequestOperation(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_DEFGC_SUCCESS_Reserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 RequestID; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: } */ + static int -mapi_dissect_element_EcDoConnect_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_code_page, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_ClientID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_input_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_struct_input_locale(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoConnect_input_locale,0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_ServerID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_unknown2, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_SessionID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_unknown3, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_RequestID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_MDB_SUCCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_MDB_SUCCESS); + } + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_RequestID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ProcessID; */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 RequestID; */ +/* IDL: uint16 Reserved; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ProcessID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ClientID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_RequestID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_Reserved, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_MDB_SUCCESS_V2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_MDB_SUCCESS_V2); + } + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ProcessID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_RequestID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_Reserved(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 Reserved_1; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: uint8 RequestOperation; */ +/* IDL: uint8 Reserved_2[3]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_ClientID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_1, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_RequestOperation, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { int i; for (i = 0; i < 3; i++) - offset = mapi_dissect_element_EcDoConnect_unknown4_(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_2, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_GC_SUCCESS); + } + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_1(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_RequestOperation(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_Reserved_2(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; return offset; } + +/* IDL: struct { */ +/* IDL: uint16 ProcessID; */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToCompleteRequest; */ +/* IDL: uint8 RequestOperation; */ +/* IDL: uint8 Reserved[3]; */ +/* IDL: } */ + static int -mapi_dissect_element_EcDoConnect_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_unknown4, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_ProcessID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_session_nb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_session_nb_, NDR_POINTER_REF, "Pointer to Session Nb (uint16)",hf_mapi_EcDoConnect_session_nb); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_ClientID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_session_nb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_session_nb, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_ServerID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_org_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_org_group_, NDR_POINTER_UNIQUE, "Pointer to Org Group (uint8)",hf_mapi_EcDoConnect_org_group); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_SessionID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_org_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - char *data; + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest, 0); - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_EcDoConnect_org_group, FALSE, &data); - proto_item_append_text(tree, ": %s", data); + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint8)",hf_mapi_EcDoConnect_user); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_RequestOperation, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - char *data; + int i; + for (i = 0; i < 3; i++) + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved_(tvb, offset, pinfo, tree, di, drep); - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_EcDoConnect_user, FALSE, &data); - proto_item_append_text(tree, ": %s", data); + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_GC_SUCCESS_V2_Reserved, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_GC_SUCCESS_V2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_GC_SUCCESS_V2); + } + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ProcessID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_RequestOperation(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_GC_SUCCESS_V2_Reserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 RequestID; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToFailRequest; */ +/* IDL: MAPISTATUS ResultCode; */ +/* IDL: uint8 RequestOperation; */ +/* IDL: uint8 Reserved[3]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_FAILURE_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_ClientID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_RequestID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_store_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_FAILURE_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_TimeToFailRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_TimeToFailRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_ResultCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPISTATUS(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_ResultCode, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_RequestOperation, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { int i; for (i = 0; i < 3; i++) - offset = mapi_dissect_element_EcDoConnect_store_version_(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_FAILURE_Reserved_(tvb, offset, pinfo, tree, di, drep); return offset; } static int -mapi_dissect_element_EcDoConnect_store_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_FAILURE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_store_version, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_Reserved, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_FAILURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_FAILURE); + } + + offset = mapi_dissect_element_AUX_PERF_FAILURE_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_RequestID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_TimeToFailRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_ResultCode(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_RequestOperation(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_Reserved(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ProcessID; */ +/* IDL: uint16 ClientID; */ +/* IDL: uint16 ServerID; */ +/* IDL: uint16 SessionID; */ +/* IDL: uint16 RequestID; */ +/* IDL: uint16 Reserved_1; */ +/* IDL: uint32 TimeSinceRequest; */ +/* IDL: uint32 TimeToFailRequest; */ +/* IDL: MAPISTATUS ResultCode; */ +/* IDL: uint8 RequestOperation; */ +/* IDL: uint8 Reserved_2[3]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_ProcessID, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_emsmdb_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_FAILURE_V2_ClientID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_ClientID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_ServerID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_ServerID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_SessionID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_SessionID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_RequestID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_Reserved_1, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeSinceRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_TimeSinceRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeToFailRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_TimeToFailRequest, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_ResultCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_enum_MAPISTATUS(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_ResultCode, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_RequestOperation, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { int i; for (i = 0; i < 3; i++) - offset = mapi_dissect_element_EcDoConnect_emsmdb_client_version_(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2_(tvb, offset, pinfo, tree, di, drep); return offset; } static int -mapi_dissect_element_EcDoConnect_emsmdb_client_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_FAILURE_V2_Reserved_2, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_FAILURE_V2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_FAILURE_V2); + } + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_ProcessID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_ClientID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_ServerID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_SessionID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_1(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeSinceRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_TimeToFailRequest(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_ResultCode(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_RequestOperation(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_FAILURE_V2_Reserved_2(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: ENABLE_PERF_SENDTOSERVER = 0x00000001 , */ +/* IDL: ENABLE_PERF_SENDTOMAILBOX = 0x00000002 , */ +/* IDL: ENABLE_COMPRESSION = 0x00000004 , */ +/* IDL: ENABLE_HTTP_TUNNELING = 0x00000008 , */ +/* IDL: ENABLE_PERF_SENDGCDATA = 0x00000010 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_CLIENT_CONTROL_EnableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_emsmdb_client_version, 0); + proto_item *item; + static int * const mapi_CLIENT_CONTROL_EnableFlags_fields[] = { + &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER, + &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX, + &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION, + &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING, + &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_CLIENT_CONTROL_EnableFlags, mapi_CLIENT_CONTROL_EnableFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x0000001f)) { + flags &= (~0x0000001f); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } return offset; } + +/* IDL: struct { */ +/* IDL: CLIENT_CONTROL_EnableFlags EnableFlags; */ +/* IDL: uint32 ExpiryTime; */ +/* IDL: } */ + static int -mapi_dissect_element_EcDoConnect_alloc_space(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_CLIENT_CONTROL_EnableFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_alloc_space_, NDR_POINTER_REF, "Pointer to Alloc Space (uint32)",hf_mapi_EcDoConnect_alloc_space); + offset = mapi_dissect_bitmap_CLIENT_CONTROL_EnableFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_CLIENT_CONTROL_EnableFlags, 0); return offset; } static int -mapi_dissect_element_EcDoConnect_alloc_space_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_AUX_CLIENT_CONTROL_ExpiryTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoConnect_alloc_space, 0); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_CLIENT_CONTROL_ExpiryTime, 0); return offset; } -/* IDL: MAPISTATUS EcDoConnect( */ -/* IDL: [out] [ref] policy_handle *handle, */ -/* IDL: [in] uint8 name[*], */ -/* IDL: [in] uint32 unknown1[3], */ -/* IDL: [in] uint32 code_page, */ -/* IDL: [in] input_locale input_locale, */ -/* IDL: [in] uint32 unknown2, */ -/* IDL: [in] uint16 unknown3, */ -/* IDL: [out] uint32 unknown4[3], */ -/* IDL: [out] [ref] uint16 *session_nb, */ -/* IDL: [out] [unique(1)] uint8 *org_group, */ -/* IDL: [out] [unique(1)] uint8 *user, */ -/* IDL: [out] uint16 store_version[3], */ -/* IDL: [in] [out] uint16 emsmdb_client_version[3], */ -/* IDL: [in] [out] [ref] uint32 *alloc_space */ +int +mapi_dissect_struct_AUX_CLIENT_CONTROL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_CLIENT_CONTROL); + } + + offset = mapi_dissect_element_AUX_CLIENT_CONTROL_EnableFlags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_CLIENT_CONTROL_ExpiryTime(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ProcessID; */ +/* IDL: uint16 Reserved1; */ +/* IDL: GUID ProcessGuid; */ +/* IDL: uint16 ProcessNameOffset; */ +/* IDL: uint16 Reserved2; */ +/* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] string ProcessName; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_PROCESSINFO_ProcessID, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_PROCESSINFO_Reserved1, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessGuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_PROCESSINFO_ProcessGuid, NULL); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessNameOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_PROCESSINFO_ProcessNameOffset, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_PERF_PROCESSINFO_Reserved2, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_mapi_AUX_PERF_PROCESSINFO_ProcessName , 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_PERF_PROCESSINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_PERF_PROCESSINFO); + } + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessID(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved1(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessGuid(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessNameOffset(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_Reserved2(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_PERF_PROCESSINFO_ProcessName(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 OSVersionInfoSize; */ +/* IDL: uint32 MajorVersion; */ +/* IDL: uint32 MinorVersion; */ +/* IDL: uint32 BuildNumber; */ +/* IDL: [flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_REMAINING)] DATA_BLOB Reserved_1; */ +/* IDL: uint16 ServicePackMajor; */ +/* IDL: uint16 ServicePackMinor; */ +/* IDL: uint32 Reserved_2; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_OSVersionInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_OSVersionInfoSize, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_MajorVersion, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_MinorVersion, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_BuildNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_BuildNumber, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_Reserved_1, 1); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_ServicePackMajor, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_ServicePackMinor, 0); + + return offset; +} + +static int +mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_OSVERSIONINFO_Reserved_2, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_OSVERSIONINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_OSVERSIONINFO); + } + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_OSVersionInfoSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_MajorVersion(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_MinorVersion(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_BuildNumber(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_1(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMajor(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_ServicePackMinor(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AUX_OSVERSIONINFO_Reserved_2(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: PUBLIC_FOLDERS_ENABLED = 0x00000001 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_EXORGINFO_OrgFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_EXORGINFO_OrgFlags_fields[] = { + &hf_mapi_EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_EXORGINFO_OrgFlags, mapi_EXORGINFO_OrgFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000001)) { + flags &= (~0x00000001); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: EXORGINFO_OrgFlags OrgFlags; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_EXORGINFO_OrgFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_EXORGINFO_OrgFlags(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_EXORGINFO_OrgFlags, 0); + + return offset; +} + +int +mapi_dissect_struct_AUX_EXORGINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AUX_EXORGINFO); + } + + offset = mapi_dissect_element_AUX_EXORGINFO_OrgFlags(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] [public(1)] union { */ +/* IDL: [case(AUX_TYPE_PERF_REQUESTID)] [case(AUX_TYPE_PERF_REQUESTID)] AUX_PERF_REQUESTID AuxiliaryPerfRequestId; */ +/* IDL: [case(AUX_TYPE_PERF_CLIENTINFO)] [case(AUX_TYPE_PERF_CLIENTINFO)] AUX_PERF_CLIENTINFO AuxiliaryPerfClientInfo; */ +/* IDL: [case(AUX_TYPE_PERF_SERVERINFO)] [case(AUX_TYPE_PERF_SERVERINFO)] AUX_PERF_SERVERINFO AuxiliaryPerfServerInfo; */ +/* IDL: [case(AUX_TYPE_PERF_SESSIONINFO)] [case(AUX_TYPE_PERF_SESSIONINFO)] AUX_PERF_SESSIONINFO AuxiliaryPerfSessionInfo; */ +/* IDL: [case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_MDB_SUCCESS)] [case(AUX_TYPE_PERF_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AuxiliaryPerfMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_GC_SUCCESS)] [case(AUX_TYPE_PERF_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AuxiliaryPerfGcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FAILURE)] [case(AUX_TYPE_PERF_FAILURE)] AUX_PERF_FAILURE AuxiliaryPerfFailure; */ +/* IDL: [case(AUX_TYPE_CLIENT_CONTROL)] [case(AUX_TYPE_CLIENT_CONTROL)] AUX_CLIENT_CONTROL AuxiliaryClientControl; */ +/* IDL: [case(AUX_TYPE_PERF_PROCESSINFO)] [case(AUX_TYPE_PERF_PROCESSINFO)] AUX_PERF_PROCESSINFO AuxiliaryPerfProcessInfo; */ +/* IDL: [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfBgDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfBgDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_MDB_SUCCESS)] [case(AUX_TYPE_PERF_BG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AuxiliaryPerfBgMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_GC_SUCCESS)] [case(AUX_TYPE_PERF_BG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AuxiliaryPerfBgGcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_FAILURE)] [case(AUX_TYPE_PERF_BG_FAILURE)] AUX_PERF_FAILURE AuxiliaryPerfBgFailure; */ +/* IDL: [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfFgDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfFgDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_MDB_SUCCESS)] [case(AUX_TYPE_PERF_FG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AuxiliaryPerfFgMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_GC_SUCCESS)] [case(AUX_TYPE_PERF_FG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AuxiliaryPerFGGCSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_FAILURE)] [case(AUX_TYPE_PERF_FG_FAILURE)] AUX_PERF_FAILURE AuxiliaryPerfFgFailure; */ +/* IDL: [case(AUX_TYPE_OSVERSIONINFO)] [case(AUX_TYPE_OSVERSIONINFO)] AUX_OSVERSIONINFO AuxiliaryOSVersionInfo; */ +/* IDL: [case(AUX_TYPE_EXORGINFO)] [case(AUX_TYPE_EXORGINFO)] AUX_EXORGINFO AuxiliaryEXOrgInfo; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfRequestId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_REQUESTID(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfRequestId,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_CLIENTINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfClientInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_SERVERINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfServerInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfSessionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_SESSIONINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfSessionInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfGcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryClientControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_CLIENT_CONTROL(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryClientControl,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfProcessInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_PROCESSINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfProcessInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfBgGcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfBgFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerFGGCSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerFGGCSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryPerfFgFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryOSVersionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_OSVERSIONINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryOSVersionInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_AuxiliaryEXOrgInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_EXORGINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion1_AuxiliaryEXOrgInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion1_Payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_AuxDataVersion1_Payload, 1); + + return offset; +} + +static int +mapi_dissect_AuxDataVersion1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_AuxDataVersion1, &item, "AuxDataVersion1"); + } + + switch(level) { + case AUX_TYPE_PERF_REQUESTID: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfRequestId(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_CLIENTINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfClientInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_SERVERINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfServerInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_SESSIONINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfSessionInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_MDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_GC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfGcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FAILURE: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_CLIENT_CONTROL: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryClientControl(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_PROCESSINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfProcessInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_MDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_GC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgGcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_FAILURE: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfBgFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_MDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_GC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerFGGCSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_FAILURE: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryPerfFgFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_OSVERSIONINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryOSVersionInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_EXORGINFO: + offset = mapi_dissect_element_AuxDataVersion1_AuxiliaryEXOrgInfo(tvb, offset, pinfo, tree, di, drep); + break; + + default: + offset = mapi_dissect_element_AuxDataVersion1_Payload(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [nodiscriminant(1)] [public(1)] union { */ +/* IDL: [case(AUX_TYPE_PERF_REQUESTID)] [case(AUX_TYPE_PERF_REQUESTID)] AUX_PERF_REQUESTID AuxiliaryPerfRequestId; */ +/* IDL: [case(AUX_TYPE_PERF_CLIENTINFO)] [case(AUX_TYPE_PERF_CLIENTINFO)] AUX_PERF_CLIENTINFO AuxiliaryPerfClientInfo; */ +/* IDL: [case(AUX_TYPE_PERF_SERVERINFO)] [case(AUX_TYPE_PERF_SERVERINFO)] AUX_PERF_SERVERINFO AuxiliaryPerfServerInfo; */ +/* IDL: [case(AUX_TYPE_PERF_SESSIONINFO_2)] [case(AUX_TYPE_PERF_SESSIONINFO_2)] AUX_PERF_SESSIONINFO_V2 AuxiliaryPerfSessioninfo; */ +/* IDL: [case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_MDB_SUCCESS_2)] [case(AUX_TYPE_PERF_MDB_SUCCESS_2)] AUX_PERF_MDB_SUCCESS_V2 AuxiliaryPerfMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_GC_SUCCESS_2)] [case(AUX_TYPE_PERF_GC_SUCCESS_2)] AUX_PERF_GC_SUCCESS_V2 AuxiliaryPerfGcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FAILURE_2)] [case(AUX_TYPE_PERF_FAILURE_2)] AUX_PERF_FAILURE_V2 AuxiliaryPerfFailure; */ +/* IDL: [case(AUX_TYPE_CLIENT_CONTROL)] [case(AUX_TYPE_CLIENT_CONTROL)] AUX_CLIENT_CONTROL AuxiliaryPerf; */ +/* IDL: [case(AUX_TYPE_PERF_PROCESSINFO_2)] [case(AUX_TYPE_PERF_PROCESSINFO_2)] AUX_PERF_PROCESSINFO AuxiliaryPerfProcessInfo; */ +/* IDL: [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfBgDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfBgDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_MDB_SUCCESS_2)] [case(AUX_TYPE_PERF_BG_MDB_SUCCESS_2)] AUX_PERF_MDB_SUCCESS_V2 AuxiliaryPerfBgMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_GC_SUCCESS_2)] [case(AUX_TYPE_PERF_BG_GC_SUCCESS_2)] AUX_PERF_GC_SUCCESS AuxiliaryPerfBgGcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_BG_FAILURE_2)] [case(AUX_TYPE_PERF_BG_FAILURE_2)] AUX_PERF_FAILURE AuxiliaryPerfBgFailure; */ +/* IDL: [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AuxiliaryPerfFgDefmdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AuxiliaryPerfFgDefgcSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_MDB_SUCCESS_2)] [case(AUX_TYPE_PERF_FG_MDB_SUCCESS_2)] AUX_PERF_MDB_SUCCESS AuxiliaryPerfFgMdbSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_GC_SUCCESS_2)] [case(AUX_TYPE_PERF_FG_GC_SUCCESS_2)] AUX_PERF_GC_SUCCESS AuxiliaryPerFGGCSuccess; */ +/* IDL: [case(AUX_TYPE_PERF_FG_FAILURE_2)] [case(AUX_TYPE_PERF_FG_FAILURE_2)] AUX_PERF_FAILURE AuxiliaryPerfFgFailure; */ +/* IDL: [case(AUX_TYPE_OSVERSIONINFO)] [case(AUX_TYPE_OSVERSIONINFO)] AUX_OSVERSIONINFO AuxiliaryOSVersionInfo; */ +/* IDL: [case(AUX_TYPE_EXORGINFO)] [case(AUX_TYPE_EXORGINFO)] AUX_EXORGINFO AuxiliaryEXOrgInfo; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfRequestId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_REQUESTID(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfRequestId,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_CLIENTINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfClientInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_SERVERINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfServerInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfSessioninfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_SESSIONINFO_V2(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfSessioninfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS_V2(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS_V2(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfGcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE_V2(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_CLIENT_CONTROL(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerf,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfProcessInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_PROCESSINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfProcessInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS_V2(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgGcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfBgGcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfBgFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFMDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_DEFGC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_MDB_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerFGGCSuccess(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_GC_SUCCESS(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerFGGCSuccess,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_PERF_FAILURE(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryPerfFgFailure,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryOSVersionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_OSVERSIONINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryOSVersionInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_AuxiliaryEXOrgInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_EXORGINFO(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxDataVersion2_AuxiliaryEXOrgInfo,0); + + return offset; +} + +static int +mapi_dissect_element_AuxDataVersion2_Payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_AuxDataVersion2_Payload, 1); + + return offset; +} + +static int +mapi_dissect_AuxDataVersion2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level = param; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_AuxDataVersion2, &item, "AuxDataVersion2"); + } + + switch(level) { + case AUX_TYPE_PERF_REQUESTID: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfRequestId(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_CLIENTINFO: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfClientInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_SERVERINFO: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfServerInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_SESSIONINFO_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfSessioninfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_MDB_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_GC_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfGcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FAILURE_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_CLIENT_CONTROL: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerf(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_PROCESSINFO_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfProcessInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_MDB_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_GC_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgGcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_BG_FAILURE_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfBgFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_DEFMDB_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_DEFGC_SUCCESS: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_MDB_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_GC_SUCCESS_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerFGGCSuccess(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_PERF_FG_FAILURE_2: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryPerfFgFailure(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_OSVERSIONINFO: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryOSVersionInfo(tvb, offset, pinfo, tree, di, drep); + break; + + case AUX_TYPE_EXORGINFO: + offset = mapi_dissect_element_AuxDataVersion2_AuxiliaryEXOrgInfo(tvb, offset, pinfo, tree, di, drep); + break; + + default: + offset = mapi_dissect_element_AuxDataVersion2_Payload(tvb, offset, pinfo, tree, di, drep); + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} + +/* IDL: [public(1)] [switch_type(uint8)] union { */ +/* IDL: [case(AUX_VERSION_1)] [case(AUX_VERSION_1)] AuxDataVersion1 Version1; */ +/* IDL: [case(AUX_VERSION_2)] [case(AUX_VERSION_2)] AuxDataVersion2 Version2; */ +/* IDL: [default] ; */ +/* IDL: } */ + + +/* IDL: struct { */ +/* IDL: uint16 Size; */ +/* IDL: AUX_VERSION Version; */ +/* IDL: [switch_is(Version)] AUX_HEADER_TYPE_ENUM hdrType; */ +/* IDL: AUX_DATA AuxData; */ +/* IDL: } */ + +static int +mapi_dissect_element_AUX_HEADER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *Version) +{ + offset = mapi_dissect_enum_AUX_VERSION(tvb, offset, pinfo, tree, di, drep, hf_mapi_AUX_HEADER_Version, Version); + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: RHEF_Compressed = 0x0001 , */ +/* IDL: RHEF_XorMagic = 0x0002 , */ +/* IDL: RHEF_Last = 0x0004 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_RPC_HEADER_EXT_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_RPC_HEADER_EXT_Flags_fields[] = { + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed, + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic, + &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last, + NULL + }; + guint16 flags; + ALIGN_TO_2_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_RPC_HEADER_EXT_Flags, mapi_RPC_HEADER_EXT_Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint16(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000007)) { + flags &= (~0x00000007); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 Version; */ +/* IDL: RPC_HEADER_EXT_Flags Flags; */ +/* IDL: uint16 Size; */ +/* IDL: uint16 SizeActual; */ +/* IDL: } */ + +static int +mapi_dissect_element_RPC_HEADER_EXT_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RPC_HEADER_EXT_Version, 0); + + return offset; +} + +static int +mapi_dissect_element_RPC_HEADER_EXT_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_RPC_HEADER_EXT_Flags(tvb, offset, pinfo, tree, di, drep, hf_mapi_RPC_HEADER_EXT_Flags, 0); + + return offset; +} + +static int +mapi_dissect_element_RPC_HEADER_EXT_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RPC_HEADER_EXT_Size, 0); + + return offset; +} + +static int +mapi_dissect_element_RPC_HEADER_EXT_SizeActual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_RPC_HEADER_EXT_SizeActual, 0); + + return offset; +} + +int +mapi_dissect_struct_RPC_HEADER_EXT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_2_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RPC_HEADER_EXT); + } + + offset = mapi_dissect_element_RPC_HEADER_EXT_Version(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RPC_HEADER_EXT_Flags(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RPC_HEADER_EXT_Size(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_RPC_HEADER_EXT_SizeActual(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_2_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint32 auxInSize; */ +/* IDL: RPC_HEADER_EXT RpcHeaderExtension; */ +/* IDL: AUX_HEADER auxHeader[0]; */ +/* IDL: } */ + + +/* IDL: struct { */ +/* IDL: RPC_HEADER_EXT RpcHeaderExtension; */ +/* IDL: AUX_HEADER auxHeader[0]; */ +/* IDL: } */ + +static int +mapi_dissect_element_AuxInfoOut_RpcHeaderExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RPC_HEADER_EXT(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxInfoOut_RpcHeaderExtension,0); + + return offset; +} + +static int +mapi_dissect_element_AuxInfoOut_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0; i++) + offset = mapi_dissect_element_AuxInfoOut_auxHeader_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_AuxInfoOut_auxHeader_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AUX_HEADER(tvb,offset,pinfo,tree,di,drep,hf_mapi_AuxInfoOut_auxHeader,0); + + return offset; +} + +int +mapi_dissect_struct_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_AuxInfoOut); + } + + offset = mapi_dissect_element_AuxInfoOut_RpcHeaderExtension(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_AuxInfoOut_auxHeader(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_4_BYTES; + } + + return offset; +} + + +/* IDL: bitmap { */ +/* IDL: NoCompression = 0x00000001 , */ +/* IDL: NoXorMagic = 0x00000002 , */ +/* IDL: Chain = 0x00000004 , */ +/* IDL: } */ + +int +mapi_dissect_bitmap_RpcExt2Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item; + static int * const mapi_RpcExt2Flags_fields[] = { + &hf_mapi_RpcExt2Flags_NoCompression, + &hf_mapi_RpcExt2Flags_NoXorMagic, + &hf_mapi_RpcExt2Flags_Chain, + NULL + }; + guint32 flags; + ALIGN_TO_4_BYTES; + + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_mapi_RpcExt2Flags, mapi_RpcExt2Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); + + if (!flags) + proto_item_append_text(item, ": (No values set)"); + + if (flags & (~0x00000007)) { + flags &= (~0x00000007); + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: ROP_OPNUM RopId; */ +/* IDL: [switch_is(RopId)] RopRequest u; */ +/* IDL: } */ + +static int +mapi_dissect_element_RopInput_RopId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId) +{ + offset = mapi_dissect_enum_ROP_OPNUM(tvb, offset, pinfo, tree, di, drep, hf_mapi_RopInput_RopId, RopId); + + return offset; +} + +static int +mapi_dissect_element_RopInput_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId) +{ + offset = mapi_dissect_RopRequest(tvb, offset, pinfo, tree, di, drep, hf_mapi_RopInput_u, *RopId); + + return offset; +} + +int +mapi_dissect_struct_RopInput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 RopId = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RopInput); + } + + offset = mapi_dissect_element_RopInput_RopId(tvb, offset, pinfo, tree, di, drep, &RopId); + + offset = mapi_dissect_element_RopInput_u(tvb, offset, pinfo, tree, di, drep, &RopId); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ropSize; */ +/* IDL: RopInput rop[0]; */ +/* IDL: uint32 objectHandles[0]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ROPInputBuffer_ropSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ROPInputBuffer_ropSize, 0); + + return offset; +} + +static int +mapi_dissect_element_ROPInputBuffer_rop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0; i++) + offset = mapi_dissect_element_ROPInputBuffer_rop_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_ROPInputBuffer_rop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RopInput(tvb,offset,pinfo,tree,di,drep,hf_mapi_ROPInputBuffer_rop,0); + + return offset; +} + +static int +mapi_dissect_element_ROPInputBuffer_objectHandles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0; i++) + offset = mapi_dissect_element_ROPInputBuffer_objectHandles_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_ROPInputBuffer_objectHandles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ROPInputBuffer_objectHandles, 0); + + return offset; +} + +int +mapi_dissect_struct_ROPInputBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_8_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ROPInputBuffer); + } + + offset = mapi_dissect_element_ROPInputBuffer_ropSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ROPInputBuffer_rop(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ROPInputBuffer_objectHandles(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_8_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: RPC_HEADER_EXT RpcHeaderExtension; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] ROPInputBuffer ropIn; */ +/* IDL: } */ + + +/* IDL: struct { */ +/* IDL: ROP_OPNUM RopId; */ +/* IDL: [switch_is(RopId)] RopReply u; */ +/* IDL: } */ + +static int +mapi_dissect_element_RopOutput_RopId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId) +{ + offset = mapi_dissect_enum_ROP_OPNUM(tvb, offset, pinfo, tree, di, drep, hf_mapi_RopOutput_RopId, RopId); + + return offset; +} + +static int +mapi_dissect_element_RopOutput_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *RopId) +{ + offset = mapi_dissect_RopReply(tvb, offset, pinfo, tree, di, drep, hf_mapi_RopOutput_u, *RopId); + + return offset; +} + +int +mapi_dissect_struct_RopOutput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + guint8 RopId = 0; + proto_item *item = NULL; + proto_tree *tree = NULL; + gboolean oldalign = di->no_align; + int old_offset; + + di->no_align = TRUE; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_RopOutput); + } + + offset = mapi_dissect_element_RopOutput_RopId(tvb, offset, pinfo, tree, di, drep, &RopId); + + offset = mapi_dissect_element_RopOutput_u(tvb, offset, pinfo, tree, di, drep, &RopId); + + + proto_item_set_len(item, offset-old_offset); + + + di->no_align = oldalign; + + return offset; +} + + +/* IDL: struct { */ +/* IDL: uint16 ropSize; */ +/* IDL: RopOutput rop[0]; */ +/* IDL: uint32 objectHandles[0]; */ +/* IDL: } */ + +static int +mapi_dissect_element_ROPOutputBuffer_ropSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_ROPOutputBuffer_ropSize, 0); + + return offset; +} + +static int +mapi_dissect_element_ROPOutputBuffer_rop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0; i++) + offset = mapi_dissect_element_ROPOutputBuffer_rop_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_ROPOutputBuffer_rop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RopOutput(tvb,offset,pinfo,tree,di,drep,hf_mapi_ROPOutputBuffer_rop,0); + + return offset; +} + +static int +mapi_dissect_element_ROPOutputBuffer_objectHandles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 0; i++) + offset = mapi_dissect_element_ROPOutputBuffer_objectHandles_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_ROPOutputBuffer_objectHandles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_ROPOutputBuffer_objectHandles, 0); + + return offset; +} + +int +mapi_dissect_struct_ROPOutputBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_8_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_mapi_ROPOutputBuffer); + } + + offset = mapi_dissect_element_ROPOutputBuffer_ropSize(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ROPOutputBuffer_rop(tvb, offset, pinfo, tree, di, drep); + + offset = mapi_dissect_element_ROPOutputBuffer_objectHandles(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_8_BYTES; + } + + return offset; +} + + +/* IDL: struct { */ +/* IDL: RPC_HEADER_EXT RpcHeaderExtension; */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] ROPOutputBuffer ropOut; */ +/* IDL: } */ + +static int +mapi_dissect_element_EcDoConnect_hBinding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_hBinding_, NDR_POINTER_REF, "Pointer to HBinding (policy_handle)",hf_mapi_mapi_EcDoConnect_hBinding); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_hBinding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_hBinding, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulConMod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulConMod, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_cbLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_cbLimit, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulCpid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulCpid, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulLcidString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulLcidString, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulLcidSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulLcidSort, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_ulIcxrLink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_ulIcxrLink, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_usFCanConvertCodePages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_usFCanConvertCodePages, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcmsPollsMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_pcmsPollsMax_, NDR_POINTER_REF, "Pointer to PcmsPollsMax (uint32)",hf_mapi_mapi_EcDoConnect_pcmsPollsMax); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcmsPollsMax_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_pcmsPollsMax, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_pcRetry_, NDR_POINTER_REF, "Pointer to PcRetry (uint32)",hf_mapi_mapi_EcDoConnect_pcRetry); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcRetry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_pcRetry, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcmsRetryDelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_pcmsRetryDelay_, NDR_POINTER_REF, "Pointer to PcmsRetryDelay (uint32)",hf_mapi_mapi_EcDoConnect_pcmsRetryDelay); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pcmsRetryDelay_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_pcmsRetryDelay, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_picxr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_picxr_, NDR_POINTER_REF, "Pointer to Picxr (uint32)",hf_mapi_mapi_EcDoConnect_picxr); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_picxr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_picxr, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDNPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_szDNPrefix_, NDR_POINTER_REF, "Pointer to SzDNPrefix (uint8)",hf_mapi_mapi_EcDoConnect_szDNPrefix); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDNPrefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_szDNPrefix__, NDR_POINTER_UNIQUE, "Pointer to SzDNPrefix (uint8)",hf_mapi_mapi_EcDoConnect_szDNPrefix); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDNPrefix__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnect_szDNPrefix, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_szDisplayName_, NDR_POINTER_REF, "Pointer to SzDisplayName (uint8)",hf_mapi_mapi_EcDoConnect_szDisplayName); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_szDisplayName__, NDR_POINTER_UNIQUE, "Pointer to SzDisplayName (uint8)",hf_mapi_mapi_EcDoConnect_szDisplayName); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_szDisplayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnect_szDisplayName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pullTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnect_pullTimeStamp_, NDR_POINTER_REF, "Pointer to PullTimeStamp (uint32)",hf_mapi_mapi_EcDoConnect_pullTimeStamp); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnect_pullTimeStamp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnect_pullTimeStamp, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoConnect( */ +/* IDL: [out] [ref] policy_handle *hBinding, */ +/* IDL: [charset(DOS)] [in] uint8 szUserDN[*], */ +/* IDL: [in] uint32 ulFlags, */ +/* IDL: [in] uint32 ulConMod, */ +/* IDL: [in] uint32 cbLimit, */ +/* IDL: [in] uint32 ulCpid, */ +/* IDL: [in] uint32 ulLcidString, */ +/* IDL: [in] uint32 ulLcidSort, */ +/* IDL: [in] uint32 ulIcxrLink, */ +/* IDL: [in] uint16 usFCanConvertCodePages, */ +/* IDL: [out] [ref] uint32 *pcmsPollsMax, */ +/* IDL: [out] [ref] uint32 *pcRetry, */ +/* IDL: [out] [ref] uint32 *pcmsRetryDelay, */ +/* IDL: [out] [ref] uint32 *picxr, */ +/* IDL: [charset(DOS)] [out] [ref] [unique(1)] uint8 **szDNPrefix, */ +/* IDL: [charset(DOS)] [out] [ref] [unique(1)] uint8 **szDisplayName, */ +/* IDL: [in] uint8 rgwClientVersion[6], */ +/* IDL: [out] uint8 rgwServerVersion[6], */ +/* IDL: [out] uint8 rgwBestVersion[6], */ +/* IDL: [in] [out] [ref] uint32 *pullTimeStamp */ /* IDL: ); */ static int @@ -9542,33 +43746,40 @@ mapi_dissect_EcDoConnect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info guint32 status; di->dcerpc_procedure_name="EcDoConnect"; - offset = mapi_dissect_element_EcDoConnect_handle(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_hBinding(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnect_pcmsPollsMax(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_unknown4(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_pcRetry(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_session_nb(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_pcmsRetryDelay(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_org_group(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_picxr(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_user(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_szDNPrefix(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_store_version(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_szDisplayName(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_emsmdb_client_version(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_rgwServerVersion(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_alloc_space(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_rgwBestVersion(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPISTATUS_status, &status); + offset = mapi_dissect_element_EcDoConnect_pullTimeStamp(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + if (status != 0) - col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); return offset; } @@ -9577,43 +43788,49 @@ static int mapi_dissect_EcDoConnect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcDoConnect"; - offset = mapi_dissect_element_EcDoConnect_name(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_szUserDN(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_unknown1(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulFlags(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_code_page(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulConMod(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_input_locale(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_cbLimit(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_unknown2(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulCpid(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_unknown3(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulLcidString(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_emsmdb_client_version(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulLcidSort(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcDoConnect_alloc_space(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoConnect_ulIcxrLink(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnect_usFCanConvertCodePages(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnect_rgwClientVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnect_pullTimeStamp(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } static int -mapi_dissect_element_EcDoDisconnect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcDoDisconnect_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoDisconnect_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_handle); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoDisconnect_pcxh_, NDR_POINTER_REF, "Pointer to Pcxh (policy_handle)",hf_mapi_mapi_EcDoDisconnect_pcxh); return offset; } static int -mapi_dissect_element_EcDoDisconnect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcDoDisconnect_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_handle, 0x0002); + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoDisconnect_pcxh, 0); return offset; } -/* IDL: MAPISTATUS EcDoDisconnect( */ -/* IDL: [in] [out] [ref] policy_handle *handle */ +/* IDL: WERROR mapi_EcDoDisconnect( */ +/* IDL: [in] [out] [ref] policy_handle *pcxh */ /* IDL: ); */ static int @@ -9622,12 +43839,13 @@ mapi_dissect_EcDoDisconnect_response(tvbuff_t *tvb _U_, int offset _U_, packet_i guint32 status; di->dcerpc_procedure_name="EcDoDisconnect"; - offset = mapi_dissect_element_EcDoDisconnect_handle(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoDisconnect_pcxh(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPISTATUS_status, &status); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + if (status != 0) - col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); return offset; } @@ -9636,7 +43854,7 @@ static int mapi_dissect_EcDoDisconnect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcDoDisconnect"; - offset = mapi_dissect_element_EcDoDisconnect_handle(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcDoDisconnect_pcxh(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } @@ -9644,7 +43862,7 @@ mapi_dissect_EcDoDisconnect_request(tvbuff_t *tvb _U_, int offset _U_, packet_in static int mapi_dissect_element_EcDoRpc_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_handle); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_mapi_EcDoRpc_handle); return offset; } @@ -9652,7 +43870,7 @@ mapi_dissect_element_EcDoRpc_handle(tvbuff_t *tvb _U_, int offset _U_, packet_in static int mapi_dissect_element_EcDoRpc_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_handle, 0); + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_handle, 0); return offset; } @@ -9660,7 +43878,15 @@ mapi_dissect_element_EcDoRpc_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_i static int mapi_dissect_element_EcDoRpc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_size, 0); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_size_, NDR_POINTER_REF, "Pointer to Size (uint32)",hf_mapi_mapi_EcDoRpc_size); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpc_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_size, 0); return offset; } @@ -9668,7 +43894,15 @@ mapi_dissect_element_EcDoRpc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info static int mapi_dissect_element_EcDoRpc_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_offset, 0); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_offset_, NDR_POINTER_REF, "Pointer to Offset (uint32)",hf_mapi_mapi_EcDoRpc_offset); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpc_offset_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_offset, 0); return offset; } @@ -9676,7 +43910,7 @@ mapi_dissect_element_EcDoRpc_offset(tvbuff_t *tvb _U_, int offset _U_, packet_in static int mapi_dissect_element_EcDoRpc_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_length_, NDR_POINTER_REF, "Pointer to Length (uint16)",hf_mapi_EcDoRpc_length); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_length_, NDR_POINTER_REF, "Pointer to Length (uint16)",hf_mapi_mapi_EcDoRpc_length); return offset; } @@ -9684,7 +43918,7 @@ mapi_dissect_element_EcDoRpc_length(tvbuff_t *tvb _U_, int offset _U_, packet_in static int mapi_dissect_element_EcDoRpc_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_length, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_length, 0); return offset; } @@ -9692,17 +43926,17 @@ mapi_dissect_element_EcDoRpc_length_(tvbuff_t *tvb _U_, int offset _U_, packet_i static int mapi_dissect_element_EcDoRpc_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_max_data, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpc_max_data, 0); return offset; } -/* IDL: MAPISTATUS EcDoRpc( */ +/* IDL: WERROR mapi_EcDoRpc( */ /* IDL: [in] [out] [ref] policy_handle *handle, */ -/* IDL: [in] [out] uint32 size, */ -/* IDL: [in] [out] uint32 offset, */ -/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [in] [ref] [subcontext(4)] mapi_request *mapi_request, */ -/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [out] [ref] [subcontext(4)] mapi_response *mapi_response, */ +/* IDL: [in] [out] [ref] uint32 *size, */ +/* IDL: [in] [out] [ref] uint32 *offset, */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [in] [ref] mapi_request *mapi_request, */ +/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [out] [ref] mapi_response *mapi_response, */ /* IDL: [in] [out] [ref] uint16 *length, */ /* IDL: [in] uint16 max_data */ /* IDL: ); */ @@ -9728,9 +43962,10 @@ mapi_dissect_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi offset = mapi_dissect_element_EcDoRpc_length(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPISTATUS_status, &status); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + if (status != 0) - col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); return offset; } @@ -9754,14 +43989,97 @@ mapi_dissect_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin return offset; } -/* IDL: void EcGetMoreRpc( */ -/* IDL: */ +static int +mapi_dissect_element_EcGetMoreRpc_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcGetMoreRpc_pcxh_, NDR_POINTER_REF, "Pointer to Pcxh (policy_handle)",hf_mapi_mapi_EcGetMoreRpc_pcxh); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcGetMoreRpc_pcxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_rgb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcGetMoreRpc_rgb_, NDR_POINTER_REF, "Pointer to Rgb (uint8)",hf_mapi_mapi_EcGetMoreRpc_rgb); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_rgb_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcGetMoreRpc_rgb__); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_rgb__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcGetMoreRpc_rgb, 0); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_pusLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcGetMoreRpc_pusLength_, NDR_POINTER_REF, "Pointer to PusLength (uint16)",hf_mapi_mapi_EcGetMoreRpc_pusLength); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_pusLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcGetMoreRpc_pusLength, 0); + + return offset; +} + +static int +mapi_dissect_element_EcGetMoreRpc_usSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcGetMoreRpc_usSize, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcGetMoreRpc( */ +/* IDL: [in] [out] [ref] policy_handle *pcxh, */ +/* IDL: [in] [length_is(*pusLength)] [out] [ref] [size_is(usSize)] uint8 *rgb, */ +/* IDL: [in] [out] [ref] uint16 *pusLength, */ +/* IDL: [in] uint16 usSize */ /* IDL: ); */ static int mapi_dissect_EcGetMoreRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + guint32 status; + di->dcerpc_procedure_name="EcGetMoreRpc"; + offset = mapi_dissect_element_EcGetMoreRpc_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcGetMoreRpc_rgb(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcGetMoreRpc_pusLength(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + return offset; } @@ -9769,13 +44087,21 @@ static int mapi_dissect_EcGetMoreRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcGetMoreRpc"; + offset = mapi_dissect_element_EcGetMoreRpc_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcGetMoreRpc_rgb(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcGetMoreRpc_pusLength(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcGetMoreRpc_usSize(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } static int mapi_dissect_element_EcRRegisterPushNotification_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_handle); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_mapi_EcRRegisterPushNotification_handle); return offset; } @@ -9783,100 +44109,116 @@ mapi_dissect_element_EcRRegisterPushNotification_handle(tvbuff_t *tvb _U_, int o static int mapi_dissect_element_EcRRegisterPushNotification_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_handle, 0); + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_handle, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_ulEventMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_iRpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = mapi_dissect_bitmap_ulEventType(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_ulEventMask, 0); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_iRpc, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_notifkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_notifkey_); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_rgbContext_, NDR_POINTER_REF, "Pointer to RgbContext (uint8)",hf_mapi_mapi_EcRRegisterPushNotification_rgbContext); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_notifkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_notifkey, 0); + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_rgbContext__); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_notif_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbContext__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_notif_len, 0); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_rgbContext, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_cbContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_unknown2, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_cbContext, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_grbitMapiAdviseBits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_sockaddr_); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_grbitMapiAdviseBits, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_sockaddr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_sockaddr, 0); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress_, NDR_POINTER_REF, "Pointer to RgbCallbackAddress (uint8)",hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_sockaddr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_sockaddr_len, 0); + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress__); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_retval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_retval_, NDR_POINTER_REF, "Pointer to Retval (uint32)",hf_mapi_EcRRegisterPushNotification_retval); + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress, 0); return offset; } static int -mapi_dissect_element_EcRRegisterPushNotification_retval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRRegisterPushNotification_cbCallbackAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRRegisterPushNotification_retval, 0); + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_cbCallbackAddress, 0); return offset; } -/* IDL: MAPISTATUS EcRRegisterPushNotification( */ +static int +mapi_dissect_element_EcRRegisterPushNotification_hNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRRegisterPushNotification_hNotification_, NDR_POINTER_REF, "Pointer to HNotification (uint32)",hf_mapi_mapi_EcRRegisterPushNotification_hNotification); + + return offset; +} + +static int +mapi_dissect_element_EcRRegisterPushNotification_hNotification_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRRegisterPushNotification_hNotification, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcRRegisterPushNotification( */ /* IDL: [in] [out] [ref] policy_handle *handle, */ -/* IDL: [in] ulEventType ulEventMask, */ -/* IDL: [in] [size_is(notif_len)] uint8 notifkey[*], */ -/* IDL: [in] uint16 notif_len, */ -/* IDL: [in] uint32 unknown2, */ -/* IDL: [in] [size_is(sockaddr_len)] uint8 sockaddr[*], */ -/* IDL: [in] uint16 sockaddr_len, */ -/* IDL: [out] [ref] uint32 *retval */ +/* IDL: [in] uint32 iRpc, */ +/* IDL: [in] [ref] [size_is(cbContext)] uint8 *rgbContext, */ +/* IDL: [in] uint16 cbContext, */ +/* IDL: [in] uint32 grbitMapiAdviseBits, */ +/* IDL: [in] [ref] [size_is(cbCallbackAddress)] uint8 *rgbCallbackAddress, */ +/* IDL: [in] uint16 cbCallbackAddress, */ +/* IDL: [out] [ref] uint32 *hNotification */ /* IDL: ); */ static int @@ -9888,12 +44230,13 @@ mapi_dissect_EcRRegisterPushNotification_response(tvbuff_t *tvb _U_, int offset offset = mapi_dissect_element_EcRRegisterPushNotification_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_retval(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_hNotification(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPISTATUS_status, &status); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + if (status != 0) - col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); return offset; } @@ -9904,17 +44247,17 @@ mapi_dissect_EcRRegisterPushNotification_request(tvbuff_t *tvb _U_, int offset _ di->dcerpc_procedure_name="EcRRegisterPushNotification"; offset = mapi_dissect_element_EcRRegisterPushNotification_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_ulEventMask(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_iRpc(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_notifkey(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_rgbContext(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_notif_len(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_cbContext(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_unknown2(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_grbitMapiAdviseBits(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_sockaddr(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_rgbCallbackAddress(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRRegisterPushNotification_sockaddr_len(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRRegisterPushNotification_cbCallbackAddress(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } @@ -9922,7 +44265,7 @@ mapi_dissect_EcRRegisterPushNotification_request(tvbuff_t *tvb _U_, int offset _ static int mapi_dissect_element_EcRUnregisterPushNotification_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRUnregisterPushNotification_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_handle); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRUnregisterPushNotification_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_mapi_EcRUnregisterPushNotification_handle); return offset; } @@ -9930,32 +44273,31 @@ mapi_dissect_element_EcRUnregisterPushNotification_handle(tvbuff_t *tvb _U_, int static int mapi_dissect_element_EcRUnregisterPushNotification_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_handle, 0); + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRUnregisterPushNotification_handle, 0); return offset; } static int -mapi_dissect_element_EcRUnregisterPushNotification_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRUnregisterPushNotification_iRpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - int i; - for (i = 0; i < 2; i++) - offset = mapi_dissect_element_EcRUnregisterPushNotification_unknown_(tvb, offset, pinfo, tree, di, drep); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRUnregisterPushNotification_iRpc, 0); return offset; } static int -mapi_dissect_element_EcRUnregisterPushNotification_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +mapi_dissect_element_EcRUnregisterPushNotification_hNotification(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcRUnregisterPushNotification_unknown, 0); + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRUnregisterPushNotification_hNotification, 0); return offset; } -/* IDL: MAPISTATUS EcRUnregisterPushNotification( */ +/* IDL: WERROR mapi_EcRUnregisterPushNotification( */ /* IDL: [in] [out] [ref] policy_handle *handle, */ -/* IDL: [in] uint32 unknown[2] */ +/* IDL: [in] uint32 iRpc, */ +/* IDL: [in] uint32 hNotification */ /* IDL: ); */ static int @@ -9967,9 +44309,10 @@ mapi_dissect_EcRUnregisterPushNotification_response(tvbuff_t *tvb _U_, int offse offset = mapi_dissect_element_EcRUnregisterPushNotification_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPISTATUS_status, &status); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + if (status != 0) - col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); return offset; } @@ -9980,19 +44323,28 @@ mapi_dissect_EcRUnregisterPushNotification_request(tvbuff_t *tvb _U_, int offset di->dcerpc_procedure_name="EcRUnregisterPushNotification"; offset = mapi_dissect_element_EcRUnregisterPushNotification_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); - offset = mapi_dissect_element_EcRUnregisterPushNotification_unknown(tvb, offset, pinfo, tree, di, drep); + offset = mapi_dissect_element_EcRUnregisterPushNotification_iRpc(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcRUnregisterPushNotification_hNotification(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } -/* IDL: void EcDummyRpc( */ +/* IDL: WERROR mapi_EcDummyRpc( */ /* IDL: */ /* IDL: ); */ static int mapi_dissect_EcDummyRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + guint32 status; + di->dcerpc_procedure_name="EcDummyRpc"; + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + return offset; } @@ -10003,14 +44355,82 @@ mapi_dissect_EcDummyRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info * return offset; } -/* IDL: void EcRGetDCName( */ -/* IDL: */ +static int +mapi_dissect_element_EcRGetDCName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRGetDCName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_mapi_EcRGetDCName_handle); + + return offset; +} + +static int +mapi_dissect_element_EcRGetDCName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRGetDCName_handle, 0); + + return offset; +} + +static int +mapi_dissect_element_EcRGetDCName_szDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRGetDCName_szDomainName_, NDR_POINTER_REF, "Pointer to SzDomainName (uint8)",hf_mapi_mapi_EcRGetDCName_szDomainName); + + return offset; +} + +static int +mapi_dissect_element_EcRGetDCName_szDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcRGetDCName_szDomainName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcRGetDCName_rgchDomainController(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 16; i++) + offset = mapi_dissect_element_EcRGetDCName_rgchDomainController_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_EcRGetDCName_rgchDomainController_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRGetDCName_rgchDomainController, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcRGetDCName( */ +/* IDL: [in] [out] [ref] policy_handle *handle, */ +/* IDL: [in] [ref] uint8 *szDomainName, */ +/* IDL: [out] uint8 rgchDomainController[16] */ /* IDL: ); */ static int mapi_dissect_EcRGetDCName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + guint32 status; + di->dcerpc_procedure_name="EcRGetDCName"; + offset = mapi_dissect_element_EcRGetDCName_handle(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcRGetDCName_rgchDomainController(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + return offset; } @@ -10018,17 +44438,69 @@ static int mapi_dissect_EcRGetDCName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcRGetDCName"; + offset = mapi_dissect_element_EcRGetDCName_handle(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcRGetDCName_szDomainName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } -/* IDL: void EcRNetGetDCName( */ -/* IDL: */ +static int +mapi_dissect_element_EcRNetGetDCName_szDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcRNetGetDCName_szDomainName_, NDR_POINTER_REF, "Pointer to SzDomainName (uint8)",hf_mapi_mapi_EcRNetGetDCName_szDomainName); + + return offset; +} + +static int +mapi_dissect_element_EcRNetGetDCName_szDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcRNetGetDCName_szDomainName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcRNetGetDCName_rgchDomainController(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + int i; + for (i = 0; i < 16; i++) + offset = mapi_dissect_element_EcRNetGetDCName_rgchDomainController_(tvb, offset, pinfo, tree, di, drep); + + return offset; +} + +static int +mapi_dissect_element_EcRNetGetDCName_rgchDomainController_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcRNetGetDCName_rgchDomainController, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcRNetGetDCName( */ +/* IDL: [in] [ref] uint8 *szDomainName, */ +/* IDL: [out] uint8 rgchDomainController[16] */ /* IDL: ); */ static int mapi_dissect_EcRNetGetDCName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + guint32 status; + di->dcerpc_procedure_name="EcRNetGetDCName"; + offset = mapi_dissect_element_EcRNetGetDCName_rgchDomainController(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + return offset; } @@ -10036,17 +44508,169 @@ static int mapi_dissect_EcRNetGetDCName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcRNetGetDCName"; + offset = mapi_dissect_element_EcRNetGetDCName_szDomainName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } -/* IDL: void EcDoRpcExt( */ -/* IDL: */ +static int +mapi_dissect_element_EcDoRpcExt_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_pcxh_, NDR_POINTER_REF, "Pointer to Pcxh (policy_handle)",hf_mapi_mapi_EcDoRpcExt_pcxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_pcxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_pulFlags_, NDR_POINTER_REF, "Pointer to PulFlags (RpcExt2Flags)",hf_mapi_mapi_EcDoRpcExt_pulFlags); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pulFlags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_RpcExt2Flags(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_pulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_rgbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_rgbIn_, NDR_POINTER_REF, "Pointer to RgbIn (RgbIn)",hf_mapi_mapi_EcDoRpcExt_rgbIn); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_rgbIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RgbIn(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_EcDoRpcExt_rgbIn,0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_cbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_cbIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_rgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_rgbOut_, NDR_POINTER_REF, "Pointer to RgbOut (RgbOut)",hf_mapi_mapi_EcDoRpcExt_rgbOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pcbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_pcbOut_, NDR_POINTER_REF, "Pointer to PcbOut (uint32)",hf_mapi_mapi_EcDoRpcExt_pcbOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pcbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_pcbOut, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_rgbAuxIn_, NDR_POINTER_REF, "Pointer to RgbAuxIn (AuxInfo)",hf_mapi_mapi_EcDoRpcExt_rgbAuxIn); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AuxInfo(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_EcDoRpcExt_rgbAuxIn,0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_cbAuxIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pulTransTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt_pulTransTime_, NDR_POINTER_REF, "Pointer to PulTransTime (uint32)",hf_mapi_mapi_EcDoRpcExt_pulTransTime); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt_pulTransTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt_pulTransTime, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoRpcExt( */ +/* IDL: [in] [out] [ref] policy_handle *pcxh, */ +/* IDL: [in] [out] [ref] RpcExt2Flags *pulFlags, */ +/* IDL: [in] [ref] [represent_as(4)] RgbIn *rgbIn, */ +/* IDL: [in] uint32 cbIn, */ +/* IDL: [length_is(*pcbOut)] [out] [ref] [size_is(*pcbOut)] RgbOut *rgbOut, */ +/* IDL: [in] [out] [range(0x0,0x40000)] [ref] uint32 *pcbOut, */ +/* IDL: [flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_REMAINING)] [in] [ref] [represent_as(4)] AuxInfo *rgbAuxIn, */ +/* IDL: [in] uint32 cbAuxIn, */ +/* IDL: [out] [ref] uint32 *pulTransTime */ /* IDL: ); */ static int mapi_dissect_EcDoRpcExt_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { + guint32 status; + di->dcerpc_procedure_name="EcDoRpcExt"; + offset = mapi_dissect_element_EcDoRpcExt_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt_pulFlags(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt_rgbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt_pcbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt_pulTransTime(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + return offset; } @@ -10054,6 +44678,810 @@ static int mapi_dissect_EcDoRpcExt_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) { di->dcerpc_procedure_name="EcDoRpcExt"; + offset = mapi_dissect_element_EcDoRpcExt_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_pulFlags(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_rgbIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_cbIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_pcbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_rgbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt_cbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_mapi_mapi_EcDoConnectEx_handle); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_handle, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulConMod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulConMod, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_cbLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_cbLimit, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulCpid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulCpid, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulLcidString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulLcidString, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulLcidSort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulLcidSort, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_ulIcxrLink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_ulIcxrLink, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_usFCanConvertCodePages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_usFCanConvertCodePages, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcmsPollsMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_pcmsPollsMax_, NDR_POINTER_REF, "Pointer to PcmsPollsMax (uint32)",hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcmsPollsMax_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_pcRetry_, NDR_POINTER_REF, "Pointer to PcRetry (uint32)",hf_mapi_mapi_EcDoConnectEx_pcRetry); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcRetry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_pcRetry, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay_, NDR_POINTER_REF, "Pointer to PcmsRetryDelay (uint32)",hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_picxr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_picxr_, NDR_POINTER_REF, "Pointer to Picxr (uint32)",hf_mapi_mapi_EcDoConnectEx_picxr); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_picxr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_picxr, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDNPrefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_szDNPrefix_, NDR_POINTER_REF, "Pointer to SzDNPrefix (uint8)",hf_mapi_mapi_EcDoConnectEx_szDNPrefix); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDNPrefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_szDNPrefix__, NDR_POINTER_UNIQUE, "Pointer to SzDNPrefix (uint8)",hf_mapi_mapi_EcDoConnectEx_szDNPrefix); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDNPrefix__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnectEx_szDNPrefix, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_szDisplayName_, NDR_POINTER_REF, "Pointer to SzDisplayName (uint8)",hf_mapi_mapi_EcDoConnectEx_szDisplayName); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_szDisplayName__, NDR_POINTER_UNIQUE, "Pointer to SzDisplayName (uint8)",hf_mapi_mapi_EcDoConnectEx_szDisplayName); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_szDisplayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_mapi_EcDoConnectEx_szDisplayName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pulTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_pulTimeStamp_, NDR_POINTER_REF, "Pointer to PulTimeStamp (uint32)",hf_mapi_mapi_EcDoConnectEx_pulTimeStamp); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pulTimeStamp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_pulTimeStamp, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_rgbAuxIn_, NDR_POINTER_REF, "Pointer to RgbAuxIn (AuxInfo)",hf_mapi_mapi_EcDoConnectEx_rgbAuxIn); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AuxInfo(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_EcDoConnectEx_rgbAuxIn,0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_cbAuxIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_rgbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_rgbAuxOut_, NDR_POINTER_REF, "Pointer to RgbAuxOut (AuxInfoOut)",hf_mapi_mapi_EcDoConnectEx_rgbAuxOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoConnectEx_pcbAuxOut_, NDR_POINTER_REF, "Pointer to PcbAuxOut (uint32)",hf_mapi_mapi_EcDoConnectEx_pcbAuxOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoConnectEx_pcbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoConnectEx_pcbAuxOut, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoConnectEx( */ +/* IDL: [out] [ref] policy_handle *handle, */ +/* IDL: [charset(DOS)] [in] uint8 szUserDN[*], */ +/* IDL: [in] uint32 ulFlags, */ +/* IDL: [in] uint32 ulConMod, */ +/* IDL: [in] uint32 cbLimit, */ +/* IDL: [in] uint32 ulCpid, */ +/* IDL: [in] uint32 ulLcidString, */ +/* IDL: [in] uint32 ulLcidSort, */ +/* IDL: [in] uint32 ulIcxrLink, */ +/* IDL: [in] uint16 usFCanConvertCodePages, */ +/* IDL: [out] [ref] uint32 *pcmsPollsMax, */ +/* IDL: [out] [ref] uint32 *pcRetry, */ +/* IDL: [out] [ref] uint32 *pcmsRetryDelay, */ +/* IDL: [out] [ref] uint32 *picxr, */ +/* IDL: [charset(DOS)] [out] [ref] [unique(1)] uint8 **szDNPrefix, */ +/* IDL: [charset(DOS)] [out] [ref] [unique(1)] uint8 **szDisplayName, */ +/* IDL: [in] uint8 rgwClientVersion[6], */ +/* IDL: [out] uint8 rgwServerVersion[6], */ +/* IDL: [out] uint8 rgwBestVersion[6], */ +/* IDL: [in] [out] [ref] uint32 *pulTimeStamp, */ +/* IDL: [flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_REMAINING)] [in] [ref] [represent_as(4)] AuxInfo *rgbAuxIn, */ +/* IDL: [in] uint32 cbAuxIn, */ +/* IDL: [length_is(0)] [out] [ref] [size_is(*pcbAuxOut)] AuxInfoOut *rgbAuxOut, */ +/* IDL: [in] [out] [range(0,0x1008)] [ref] uint32 *pcbAuxOut */ +/* IDL: ); */ + +static int +mapi_dissect_EcDoConnectEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="EcDoConnectEx"; + offset = mapi_dissect_element_EcDoConnectEx_handle(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_pcmsPollsMax(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_pcRetry(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_pcmsRetryDelay(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_picxr(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_szDNPrefix(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_szDisplayName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_rgwServerVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_rgwBestVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_pulTimeStamp(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_rgbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoConnectEx_pcbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + + return offset; +} + +static int +mapi_dissect_EcDoConnectEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="EcDoConnectEx"; + offset = mapi_dissect_element_EcDoConnectEx_szUserDN(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulFlags(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulConMod(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_cbLimit(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulCpid(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulLcidString(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulLcidSort(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_ulIcxrLink(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_usFCanConvertCodePages(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_rgwClientVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_pulTimeStamp(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_rgbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_cbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoConnectEx_pcbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_pcxh_, NDR_POINTER_REF, "Pointer to Pcxh (policy_handle)",hf_mapi_mapi_EcDoRpcExt2_pcxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_pcxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_pulFlags_, NDR_POINTER_REF, "Pointer to PulFlags (RpcExt2Flags)",hf_mapi_mapi_EcDoRpcExt2_pulFlags); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pulFlags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_bitmap_RpcExt2Flags(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_pulFlags, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_rgbIn_, NDR_POINTER_REF, "Pointer to RgbIn (RgbIn)",hf_mapi_mapi_EcDoRpcExt2_rgbIn); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_RgbIn(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_EcDoRpcExt2_rgbIn,0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_cbIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_cbIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_rgbOut_, NDR_POINTER_REF, "Pointer to RgbOut (RgbOut)",hf_mapi_mapi_EcDoRpcExt2_rgbOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_pcbOut_, NDR_POINTER_REF, "Pointer to PcbOut (uint32)",hf_mapi_mapi_EcDoRpcExt2_pcbOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcbOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_pcbOut, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_rgbAuxIn_, NDR_POINTER_REF, "Pointer to RgbAuxIn (AuxInfo)",hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbAuxIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = mapi_dissect_struct_AuxInfo(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn,0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_cbAuxIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_cbAuxIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_rgbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_rgbAuxOut_, NDR_POINTER_REF, "Pointer to RgbAuxOut (AuxInfoOut)",hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcbAuxOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_pcbAuxOut_, NDR_POINTER_REF, "Pointer to PcbAuxOut (uint32)",hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pcbAuxOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pulTransTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpcExt2_pulTransTime_, NDR_POINTER_REF, "Pointer to PulTransTime (uint32)",hf_mapi_mapi_EcDoRpcExt2_pulTransTime); + + return offset; +} + +static int +mapi_dissect_element_EcDoRpcExt2_pulTransTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoRpcExt2_pulTransTime, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoRpcExt2( */ +/* IDL: [in] [out] [ref] policy_handle *pcxh, */ +/* IDL: [in] [out] [ref] RpcExt2Flags *pulFlags, */ +/* IDL: [in] [ref] [represent_as(4)] RgbIn *rgbIn, */ +/* IDL: [in] uint32 cbIn, */ +/* IDL: [length_is(*pcbOut)] [out] [ref] [size_is(*pcbOut)] RgbOut *rgbOut, */ +/* IDL: [in] [out] [range(0x0,0x40000)] [ref] uint32 *pcbOut, */ +/* IDL: [flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_REMAINING)] [in] [ref] [represent_as(4)] AuxInfo *rgbAuxIn, */ +/* IDL: [in] uint32 cbAuxIn, */ +/* IDL: [length_is(0)] [out] [ref] [size_is(*pcbAuxOut)] AuxInfoOut *rgbAuxOut, */ +/* IDL: [in] [out] [range(0x0,0x1008)] [ref] uint32 *pcbAuxOut, */ +/* IDL: [out] [ref] uint32 *pulTransTime */ +/* IDL: ); */ + +static int +mapi_dissect_EcDoRpcExt2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="EcDoRpcExt2"; + offset = mapi_dissect_element_EcDoRpcExt2_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_pulFlags(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_rgbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_pcbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_rgbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_pcbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = mapi_dissect_element_EcDoRpcExt2_pulTransTime(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + + return offset; +} + +static int +mapi_dissect_EcDoRpcExt2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="EcDoRpcExt2"; + offset = mapi_dissect_element_EcDoRpcExt2_pcxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_pulFlags(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_rgbIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_cbIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_pcbOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_rgbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_cbAuxIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoRpcExt2_pcbAuxOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnect_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncConnect_cxh_, NDR_POINTER_REF, "Pointer to Cxh (policy_handle)",hf_mapi_mapi_EcDoAsyncConnect_cxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnect_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncConnect_cxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnect_pacxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncConnect_pacxh_, NDR_POINTER_REF, "Pointer to Pacxh (policy_handle)",hf_mapi_mapi_EcDoAsyncConnect_pacxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnect_pacxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncConnect_pacxh, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoAsyncConnect( */ +/* IDL: [in] [ref] policy_handle *cxh, */ +/* IDL: [out] [ref] policy_handle *pacxh */ +/* IDL: ); */ + +static int +mapi_dissect_EcDoAsyncConnect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="EcDoAsyncConnect"; + offset = mapi_dissect_element_EcDoAsyncConnect_pacxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + + return offset; +} + +static int +mapi_dissect_EcDoAsyncConnect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="EcDoAsyncConnect"; + offset = mapi_dissect_element_EcDoAsyncConnect_cxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncWait_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncWait_cxh_, NDR_POINTER_REF, "Pointer to Cxh (policy_handle)",hf_mapi_mapi_EcDoAsyncWait_cxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncWait_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncWait_cxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncWait_ulFlagsIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncWait_ulFlagsIn, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncWait_pulFlagsOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncWait_pulFlagsOut_, NDR_POINTER_REF, "Pointer to PulFlagsOut (int32)",hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncWait_pulFlagsOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoAsyncWait( */ +/* IDL: [in] [ref] policy_handle *cxh, */ +/* IDL: [in] int32 ulFlagsIn, */ +/* IDL: [out] [ref] int32 *pulFlagsOut */ +/* IDL: ); */ + +static int +mapi_dissect_EcDoAsyncWait_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="EcDoAsyncWait"; + offset = mapi_dissect_element_EcDoAsyncWait_pulFlagsOut(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + + return offset; +} + +static int +mapi_dissect_EcDoAsyncWait_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="EcDoAsyncWait"; + offset = mapi_dissect_element_EcDoAsyncWait_cxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = mapi_dissect_element_EcDoAsyncWait_ulFlagsIn(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnectEx_cxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncConnectEx_cxh_, NDR_POINTER_REF, "Pointer to Cxh (policy_handle)",hf_mapi_mapi_EcDoAsyncConnectEx_cxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnectEx_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncConnectEx_cxh, 0); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnectEx_pacxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoAsyncConnectEx_pacxh_, NDR_POINTER_REF, "Pointer to Pacxh (policy_handle)",hf_mapi_mapi_EcDoAsyncConnectEx_pacxh); + + return offset; +} + +static int +mapi_dissect_element_EcDoAsyncConnectEx_pacxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_EcDoAsyncConnectEx_pacxh, 0); + + return offset; +} + +/* IDL: WERROR mapi_EcDoAsyncConnectEx( */ +/* IDL: [in] [ref] policy_handle *cxh, */ +/* IDL: [out] [ref] policy_handle *pacxh */ +/* IDL: ); */ + +static int +mapi_dissect_EcDoAsyncConnectEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="EcDoAsyncConnectEx"; + offset = mapi_dissect_element_EcDoAsyncConnectEx_pacxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_werror, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x")); + + return offset; +} + +static int +mapi_dissect_EcDoAsyncConnectEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="EcDoAsyncConnectEx"; + offset = mapi_dissect_element_EcDoAsyncConnectEx_cxh(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } @@ -10079,272 +45507,3359 @@ static dcerpc_sub_dissector mapi_dissectors[] = { mapi_dissect_EcRNetGetDCName_request, mapi_dissect_EcRNetGetDCName_response}, { 9, "EcDoRpcExt", mapi_dissect_EcDoRpcExt_request, mapi_dissect_EcDoRpcExt_response}, + { 10, "EcDoConnectEx", + mapi_dissect_EcDoConnectEx_request, mapi_dissect_EcDoConnectEx_response}, + { 11, "EcDoRpcExt2", + mapi_dissect_EcDoRpcExt2_request, mapi_dissect_EcDoRpcExt2_response}, + { 12, "EcDoAsyncConnect", + mapi_dissect_EcDoAsyncConnect_request, mapi_dissect_EcDoAsyncConnect_response}, + { 13, "EcDoAsyncWait", + mapi_dissect_EcDoAsyncWait_request, mapi_dissect_EcDoAsyncWait_response}, + { 14, "EcDoAsyncConnectEx", + mapi_dissect_EcDoAsyncConnectEx_request, mapi_dissect_EcDoAsyncConnectEx_response}, { 0, NULL, NULL, NULL } }; void proto_register_dcerpc_mapi(void) { static hf_register_info hf[] = { + { &hf_mapi_AUX_CLIENT_CONTROL_EnableFlags, + { "EnableFlags", "mapi.AUX_CLIENT_CONTROL.EnableFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_CLIENT_CONTROL_ExpiryTime, + { "ExpiryTime", "mapi.AUX_CLIENT_CONTROL.ExpiryTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_DATA_Version1, + { "Version1", "mapi.AUX_DATA.Version1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_DATA_Version2, + { "Version2", "mapi.AUX_DATA.Version2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_EXORGINFO_OrgFlags, + { "OrgFlags", "mapi.AUX_EXORGINFO.OrgFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_AuxData, + { "AuxData", "mapi.AUX_HEADER.AuxData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_Size, + { "Size", "mapi.AUX_HEADER.Size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_TYPE_ENUM_Type, + { "Type", "mapi.AUX_HEADER_TYPE_ENUM.Type", FT_UINT8, BASE_DEC, VALS(mapi_AUX_HEADER_TYPE_1_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_TYPE_ENUM_Type_2, + { "Type 2", "mapi.AUX_HEADER_TYPE_ENUM.Type_2", FT_UINT8, BASE_DEC, VALS(mapi_AUX_HEADER_TYPE_2_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_Version, + { "Version", "mapi.AUX_HEADER.Version", FT_UINT8, BASE_DEC, VALS(mapi_AUX_VERSION_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_HEADER_hdrType, + { "HdrType", "mapi.AUX_HEADER.hdrType", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_BuildNumber, + { "BuildNumber", "mapi.AUX_OSVERSIONINFO.BuildNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_MajorVersion, + { "MajorVersion", "mapi.AUX_OSVERSIONINFO.MajorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_MinorVersion, + { "MinorVersion", "mapi.AUX_OSVERSIONINFO.MinorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_OSVersionInfoSize, + { "OSVersionInfoSize", "mapi.AUX_OSVERSIONINFO.OSVersionInfoSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_Reserved_1, + { "Reserved 1", "mapi.AUX_OSVERSIONINFO.Reserved_1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_Reserved_2, + { "Reserved 2", "mapi.AUX_OSVERSIONINFO.Reserved_2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_ServicePackMajor, + { "ServicePackMajor", "mapi.AUX_OSVERSIONINFO.ServicePackMajor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_OSVERSIONINFO_ServicePackMinor, + { "ServicePackMinor", "mapi.AUX_OSVERSIONINFO.ServicePackMinor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_AdapterName, + { "AdapterName", "mapi.AUX_PERF_CLIENTINFO.AdapterName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_AdapterNameOffset, + { "AdapterNameOffset", "mapi.AUX_PERF_CLIENTINFO.AdapterNameOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_AdapterSpeed, + { "AdapterSpeed", "mapi.AUX_PERF_CLIENTINFO.AdapterSpeed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientID, + { "ClientID", "mapi.AUX_PERF_CLIENTINFO.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMask, + { "ClientIPMask", "mapi.AUX_PERF_CLIENTINFO.ClientIPMask", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskOffset, + { "ClientIPMaskOffset", "mapi.AUX_PERF_CLIENTINFO.ClientIPMaskOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskSize, + { "ClientIPMaskSize", "mapi.AUX_PERF_CLIENTINFO.ClientIPMaskSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPOffset, + { "ClientIPOffset", "mapi.AUX_PERF_CLIENTINFO.ClientIPOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPSize, + { "ClientIPSize", "mapi.AUX_PERF_CLIENTINFO.ClientIPSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV4, + { "ClientIP", "mapi.AUX_PERF_CLIENTINFO.ClientIP", FT_IPv4, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV6, + { "ClientIPV6", "mapi.AUX_PERF_CLIENTINFO.ClientIPV6", FT_IPv6, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_ClientMode, + { "ClientMode", "mapi.AUX_PERF_CLIENTINFO.ClientMode", FT_UINT16, BASE_DEC, VALS(mapi_ClientMode_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_MacAddressEther, + { "MacAddress", "mapi.AUX_PERF_CLIENTINFO.MacAddress", FT_ETHER, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_MacAddressOffset, + { "MacAddressOffset", "mapi.AUX_PERF_CLIENTINFO.MacAddressOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_MacAddressSize, + { "MacAddressSize", "mapi.AUX_PERF_CLIENTINFO.MacAddressSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_MachineName, + { "MachineName", "mapi.AUX_PERF_CLIENTINFO.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_MachineNameOffset, + { "MachineNameOffset", "mapi.AUX_PERF_CLIENTINFO.MachineNameOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_Reserved, + { "Reserved", "mapi.AUX_PERF_CLIENTINFO.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_UserName, + { "UserName", "mapi.AUX_PERF_CLIENTINFO.UserName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_CLIENTINFO_UserNameOffset, + { "UserNameOffset", "mapi.AUX_PERF_CLIENTINFO.UserNameOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_RequestOperation, + { "RequestOperation", "mapi.AUX_PERF_DEFGC_SUCCESS.RequestOperation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_Reserved, + { "Reserved", "mapi.AUX_PERF_DEFGC_SUCCESS.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_ServerID, + { "ServerID", "mapi.AUX_PERF_DEFGC_SUCCESS.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_SessionID, + { "SessionID", "mapi.AUX_PERF_DEFGC_SUCCESS.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_DEFGC_SUCCESS.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_DEFGC_SUCCESS.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFMDB_SUCCESS_RequestID, + { "RequestID", "mapi.AUX_PERF_DEFMDB_SUCCESS.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFMDB_SUCCESS_Reserved, + { "Reserved", "mapi.AUX_PERF_DEFMDB_SUCCESS.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_DEFMDB_SUCCESS.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_DEFMDB_SUCCESS.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_ClientID, + { "ClientID", "mapi.AUX_PERF_FAILURE.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_RequestID, + { "RequestID", "mapi.AUX_PERF_FAILURE.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_RequestOperation, + { "RequestOperation", "mapi.AUX_PERF_FAILURE.RequestOperation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_Reserved, + { "Reserved", "mapi.AUX_PERF_FAILURE.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_ResultCode, + { "ResultCode", "mapi.AUX_PERF_FAILURE.ResultCode", FT_UINT32, BASE_DEC, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_ServerID, + { "ServerID", "mapi.AUX_PERF_FAILURE.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_SessionID, + { "SessionID", "mapi.AUX_PERF_FAILURE.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_FAILURE.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_TimeToFailRequest, + { "TimeToFailRequest", "mapi.AUX_PERF_FAILURE.TimeToFailRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_ClientID, + { "ClientID", "mapi.AUX_PERF_FAILURE_V2.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_ProcessID, + { "ProcessID", "mapi.AUX_PERF_FAILURE_V2.ProcessID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_RequestID, + { "RequestID", "mapi.AUX_PERF_FAILURE_V2.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_RequestOperation, + { "RequestOperation", "mapi.AUX_PERF_FAILURE_V2.RequestOperation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_Reserved_1, + { "Reserved 1", "mapi.AUX_PERF_FAILURE_V2.Reserved_1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_Reserved_2, + { "Reserved 2", "mapi.AUX_PERF_FAILURE_V2.Reserved_2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_ResultCode, + { "ResultCode", "mapi.AUX_PERF_FAILURE_V2.ResultCode", FT_UINT32, BASE_DEC, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_ServerID, + { "ServerID", "mapi.AUX_PERF_FAILURE_V2.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_SessionID, + { "SessionID", "mapi.AUX_PERF_FAILURE_V2.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_FAILURE_V2.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_FAILURE_V2_TimeToFailRequest, + { "TimeToFailRequest", "mapi.AUX_PERF_FAILURE_V2.TimeToFailRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_ClientID, + { "ClientID", "mapi.AUX_PERF_GC_SUCCESS.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_RequestOperation, + { "RequestOperation", "mapi.AUX_PERF_GC_SUCCESS.RequestOperation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_1, + { "Reserved 1", "mapi.AUX_PERF_GC_SUCCESS.Reserved_1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_2, + { "Reserved 2", "mapi.AUX_PERF_GC_SUCCESS.Reserved_2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_ServerID, + { "ServerID", "mapi.AUX_PERF_GC_SUCCESS.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_SessionID, + { "SessionID", "mapi.AUX_PERF_GC_SUCCESS.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_GC_SUCCESS.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_GC_SUCCESS.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_ClientID, + { "ClientID", "mapi.AUX_PERF_GC_SUCCESS_V2.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_ProcessID, + { "ProcessID", "mapi.AUX_PERF_GC_SUCCESS_V2.ProcessID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_RequestOperation, + { "RequestOperation", "mapi.AUX_PERF_GC_SUCCESS_V2.RequestOperation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_Reserved, + { "Reserved", "mapi.AUX_PERF_GC_SUCCESS_V2.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_ServerID, + { "ServerID", "mapi.AUX_PERF_GC_SUCCESS_V2.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_SessionID, + { "SessionID", "mapi.AUX_PERF_GC_SUCCESS_V2.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_GC_SUCCESS_V2.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_GC_SUCCESS_V2.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_ClientID, + { "ClientID", "mapi.AUX_PERF_MDB_SUCCESS.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_RequestID, + { "RequestID", "mapi.AUX_PERF_MDB_SUCCESS.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_ServerID, + { "ServerID", "mapi.AUX_PERF_MDB_SUCCESS.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_SessionID, + { "SessionID", "mapi.AUX_PERF_MDB_SUCCESS.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_MDB_SUCCESS.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_MDB_SUCCESS.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ClientID, + { "ClientID", "mapi.AUX_PERF_MDB_SUCCESS_V2.ClientID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ProcessID, + { "ProcessID", "mapi.AUX_PERF_MDB_SUCCESS_V2.ProcessID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_RequestID, + { "RequestID", "mapi.AUX_PERF_MDB_SUCCESS_V2.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_Reserved, + { "Reserved", "mapi.AUX_PERF_MDB_SUCCESS_V2.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ServerID, + { "ServerID", "mapi.AUX_PERF_MDB_SUCCESS_V2.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_SessionID, + { "SessionID", "mapi.AUX_PERF_MDB_SUCCESS_V2.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest, + { "TimeSinceRequest", "mapi.AUX_PERF_MDB_SUCCESS_V2.TimeSinceRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest, + { "TimeToCompleteRequest", "mapi.AUX_PERF_MDB_SUCCESS_V2.TimeToCompleteRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_ProcessGuid, + { "ProcessGuid", "mapi.AUX_PERF_PROCESSINFO.ProcessGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_ProcessID, + { "ProcessID", "mapi.AUX_PERF_PROCESSINFO.ProcessID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_ProcessName, + { "ProcessName", "mapi.AUX_PERF_PROCESSINFO.ProcessName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_ProcessNameOffset, + { "ProcessNameOffset", "mapi.AUX_PERF_PROCESSINFO.ProcessNameOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_Reserved1, + { "Reserved1", "mapi.AUX_PERF_PROCESSINFO.Reserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_PROCESSINFO_Reserved2, + { "Reserved2", "mapi.AUX_PERF_PROCESSINFO.Reserved2", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_REQUESTID_RequestID, + { "RequestID", "mapi.AUX_PERF_REQUESTID.RequestID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_REQUESTID_SessionID, + { "SessionID", "mapi.AUX_PERF_REQUESTID.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerDN, + { "ServerDN", "mapi.AUX_PERF_SERVERINFO.ServerDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerDNOffset, + { "ServerDNOffset", "mapi.AUX_PERF_SERVERINFO.ServerDNOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerID, + { "ServerID", "mapi.AUX_PERF_SERVERINFO.ServerID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerName, + { "ServerName", "mapi.AUX_PERF_SERVERINFO.ServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerNameOffset, + { "ServerNameOffset", "mapi.AUX_PERF_SERVERINFO.ServerNameOffset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SERVERINFO_ServerType, + { "ServerType", "mapi.AUX_PERF_SERVERINFO.ServerType", FT_UINT16, BASE_DEC, VALS(mapi_SERVERINFO_ServerType_vals), 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_Reserved, + { "Reserved", "mapi.AUX_PERF_SESSIONINFO.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_SessionGuid, + { "SessionGuid", "mapi.AUX_PERF_SESSIONINFO.SessionGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_SessionID, + { "SessionID", "mapi.AUX_PERF_SESSIONINFO.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_V2_ConnectionID, + { "ConnectionID", "mapi.AUX_PERF_SESSIONINFO_V2.ConnectionID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_V2_Reserved, + { "Reserved", "mapi.AUX_PERF_SESSIONINFO_V2.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionGuid, + { "SessionGuid", "mapi.AUX_PERF_SESSIONINFO_V2.SessionGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionID, + { "SessionID", "mapi.AUX_PERF_SESSIONINFO_V2.SessionID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AbortSubmit_req_FolderId, + { "FolderId", "mapi.AbortSubmit_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AbortSubmit_req_MessageId, + { "MessageId", "mapi.AbortSubmit_req.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Abort_repl_TableStatus, + { "TableStatus", "mapi.Abort_repl.TableStatus", FT_UINT8, BASE_DEC, VALS(mapi_TableStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_ActionBlockData_ActionDataBuffer, + { "ActionDataBuffer", "mapi.ActionBlockData.ActionDataBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionBlockData_ActionFlags, + { "ActionFlags", "mapi.ActionBlockData.ActionFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionBlockData_ActionFlavor, + { "ActionFlavor", "mapi.ActionBlockData.ActionFlavor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionBlockData_ActionType, + { "ActionType", "mapi.ActionBlockData.ActionType", FT_UINT8, BASE_DEC, VALS(mapi_ActionType_vals), 0, NULL, HFILL }}, + { &hf_mapi_ActionBlock_ActionBlockData, + { "ActionBlockData", "mapi.ActionBlock.ActionBlockData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_BounceCode, + { "BounceCode", "mapi.ActionData.BounceCode", FT_UINT1632, BASE_DEC, VALS(mapi_BounceCode_vals), 0, NULL, HFILL }}, + { &hf_mapi_ActionData_CopyAction, + { "CopyAction", "mapi.ActionData.CopyAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_DeferAction, + { "DeferAction", "mapi.ActionData.DeferAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_DelegateAction, + { "DelegateAction", "mapi.ActionData.DelegateAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_ForwardAction, + { "ForwardAction", "mapi.ActionData.ForwardAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_MoveAction, + { "MoveAction", "mapi.ActionData.MoveAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_PropValue, + { "PropValue", "mapi.ActionData.PropValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_ReplyAction, + { "ReplyAction", "mapi.ActionData.ReplyAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ActionData_ReplyOOFAction, + { "ReplyOOFAction", "mapi.ActionData.ReplyOOFAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AddressTypes_repl_cValues, + { "CValues", "mapi.AddressTypes_repl.cValues", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AddressTypes_repl_size, + { "Size", "mapi.AddressTypes_repl.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AddressTypes_repl_transport, + { "Transport", "mapi.AddressTypes_repl.transport", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryClientControl, + { "AuxiliaryClientControl", "mapi.AuxDataVersion1.AuxiliaryClientControl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryEXOrgInfo, + { "AuxiliaryEXOrgInfo", "mapi.AuxDataVersion1.AuxiliaryEXOrgInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryOSVersionInfo, + { "AuxiliaryOSVersionInfo", "mapi.AuxDataVersion1.AuxiliaryOSVersionInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerFGGCSuccess, + { "AuxiliaryPerFGGCSuccess", "mapi.AuxDataVersion1.AuxiliaryPerFGGCSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess, + { "AuxiliaryPerfBgDefgcSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfBgDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess, + { "AuxiliaryPerfBgDefmdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfBgDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfBgFailure, + { "AuxiliaryPerfBgFailure", "mapi.AuxDataVersion1.AuxiliaryPerfBgFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfBgGcSuccess, + { "AuxiliaryPerfBgGcSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfBgGcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess, + { "AuxiliaryPerfBgMdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfBgMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfClientInfo, + { "AuxiliaryPerfClientInfo", "mapi.AuxDataVersion1.AuxiliaryPerfClientInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfDefgcSuccess, + { "AuxiliaryPerfDefgcSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess, + { "AuxiliaryPerfDefmdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfFailure, + { "AuxiliaryPerfFailure", "mapi.AuxDataVersion1.AuxiliaryPerfFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess, + { "AuxiliaryPerfFgDefgcSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfFgDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess, + { "AuxiliaryPerfFgDefmdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfFgDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfFgFailure, + { "AuxiliaryPerfFgFailure", "mapi.AuxDataVersion1.AuxiliaryPerfFgFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess, + { "AuxiliaryPerfFgMdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfFgMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfGcSuccess, + { "AuxiliaryPerfGcSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfGcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfMdbSuccess, + { "AuxiliaryPerfMdbSuccess", "mapi.AuxDataVersion1.AuxiliaryPerfMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfProcessInfo, + { "AuxiliaryPerfProcessInfo", "mapi.AuxDataVersion1.AuxiliaryPerfProcessInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfRequestId, + { "AuxiliaryPerfRequestId", "mapi.AuxDataVersion1.AuxiliaryPerfRequestId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfServerInfo, + { "AuxiliaryPerfServerInfo", "mapi.AuxDataVersion1.AuxiliaryPerfServerInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_AuxiliaryPerfSessionInfo, + { "AuxiliaryPerfSessionInfo", "mapi.AuxDataVersion1.AuxiliaryPerfSessionInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion1_Payload, + { "Payload", "mapi.AuxDataVersion1.Payload", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryEXOrgInfo, + { "AuxiliaryEXOrgInfo", "mapi.AuxDataVersion2.AuxiliaryEXOrgInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryOSVersionInfo, + { "AuxiliaryOSVersionInfo", "mapi.AuxDataVersion2.AuxiliaryOSVersionInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerFGGCSuccess, + { "AuxiliaryPerFGGCSuccess", "mapi.AuxDataVersion2.AuxiliaryPerFGGCSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerf, + { "AuxiliaryPerf", "mapi.AuxDataVersion2.AuxiliaryPerf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess, + { "AuxiliaryPerfBgDefgcSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfBgDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess, + { "AuxiliaryPerfBgDefmdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfBgDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfBgFailure, + { "AuxiliaryPerfBgFailure", "mapi.AuxDataVersion2.AuxiliaryPerfBgFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfBgGcSuccess, + { "AuxiliaryPerfBgGcSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfBgGcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess, + { "AuxiliaryPerfBgMdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfBgMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfClientInfo, + { "AuxiliaryPerfClientInfo", "mapi.AuxDataVersion2.AuxiliaryPerfClientInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfDefgcSuccess, + { "AuxiliaryPerfDefgcSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess, + { "AuxiliaryPerfDefmdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfFailure, + { "AuxiliaryPerfFailure", "mapi.AuxDataVersion2.AuxiliaryPerfFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess, + { "AuxiliaryPerfFgDefgcSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfFgDefgcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess, + { "AuxiliaryPerfFgDefmdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfFgDefmdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfFgFailure, + { "AuxiliaryPerfFgFailure", "mapi.AuxDataVersion2.AuxiliaryPerfFgFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess, + { "AuxiliaryPerfFgMdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfFgMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfGcSuccess, + { "AuxiliaryPerfGcSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfGcSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfMdbSuccess, + { "AuxiliaryPerfMdbSuccess", "mapi.AuxDataVersion2.AuxiliaryPerfMdbSuccess", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfProcessInfo, + { "AuxiliaryPerfProcessInfo", "mapi.AuxDataVersion2.AuxiliaryPerfProcessInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfRequestId, + { "AuxiliaryPerfRequestId", "mapi.AuxDataVersion2.AuxiliaryPerfRequestId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfServerInfo, + { "AuxiliaryPerfServerInfo", "mapi.AuxDataVersion2.AuxiliaryPerfServerInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_AuxiliaryPerfSessioninfo, + { "AuxiliaryPerfSessioninfo", "mapi.AuxDataVersion2.AuxiliaryPerfSessioninfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxDataVersion2_Payload, + { "Payload", "mapi.AuxDataVersion2.Payload", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxInfoOut_RpcHeaderExtension, + { "RpcHeaderExtension", "mapi.AuxInfoOut.RpcHeaderExtension", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxInfoOut_auxHeader, + { "AuxHeader", "mapi.AuxInfoOut.auxHeader", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxInfo_RpcHeaderExtension, + { "RpcHeaderExtension", "mapi.AuxInfo.RpcHeaderExtension", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxInfo_auxHeader, + { "AuxHeader", "mapi.AuxInfo.auxHeader", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_AuxInfo_auxInSize, + { "AuxInSize", "mapi.AuxInfo.auxInSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_BinaryArray_r_cValues, + { "CValues", "mapi.BinaryArray_r.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_BinaryArray_r_lpbin, + { "Lpbin", "mapi.BinaryArray_r.lpbin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Binary_r_cb, + { "Cb", "mapi.Binary_r.cb", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Binary_r_lpb, + { "Lpb", "mapi.Binary_r.lpb", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION, + { "ENABLE COMPRESSION", "mapi.CLIENT_CONTROL_EnableFlags.ENABLE_COMPRESSION", FT_BOOLEAN, 32, TFS(&CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION_tfs), ( 0x00000004 ), NULL, HFILL }}, + { &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING, + { "ENABLE HTTP TUNNELING", "mapi.CLIENT_CONTROL_EnableFlags.ENABLE_HTTP_TUNNELING", FT_BOOLEAN, 32, TFS(&CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING_tfs), ( 0x00000008 ), NULL, HFILL }}, + { &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA, + { "ENABLE PERF SENDGCDATA", "mapi.CLIENT_CONTROL_EnableFlags.ENABLE_PERF_SENDGCDATA", FT_BOOLEAN, 32, TFS(&CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA_tfs), ( 0x00000010 ), NULL, HFILL }}, + { &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX, + { "ENABLE PERF SENDTOMAILBOX", "mapi.CLIENT_CONTROL_EnableFlags.ENABLE_PERF_SENDTOMAILBOX", FT_BOOLEAN, 32, TFS(&CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX_tfs), ( 0x00000002 ), NULL, HFILL }}, + { &hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER, + { "ENABLE PERF SENDTOSERVER", "mapi.CLIENT_CONTROL_EnableFlags.ENABLE_PERF_SENDTOSERVER", FT_BOOLEAN, 32, TFS(&CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER_tfs), ( 0x00000001 ), NULL, HFILL }}, + { &hf_mapi_CollapseRow_repl_CollapsedRowCount, + { "CollapsedRowCount", "mapi.CollapseRow_repl.CollapsedRowCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CollapseRow_req_CategoryId, + { "CategoryId", "mapi.CollapseRow_req.CategoryId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_Columns, + { "Columns", "mapi.ContentsRowAddedNotification.Columns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_FID, + { "FID", "mapi.ContentsRowAddedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_InsertAfterFID, + { "InsertAfterFID", "mapi.ContentsRowAddedNotification.InsertAfterFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_InsertAfterInstance, + { "InsertAfterInstance", "mapi.ContentsRowAddedNotification.InsertAfterInstance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_InsertAfterMID, + { "InsertAfterMID", "mapi.ContentsRowAddedNotification.InsertAfterMID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_Instance, + { "Instance", "mapi.ContentsRowAddedNotification.Instance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowAddedNotification_MID, + { "MID", "mapi.ContentsRowAddedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowDeletedNotification_FID, + { "FID", "mapi.ContentsRowDeletedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowDeletedNotification_Instance, + { "Instance", "mapi.ContentsRowDeletedNotification.Instance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowDeletedNotification_MID, + { "MID", "mapi.ContentsRowDeletedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_Columns, + { "Columns", "mapi.ContentsRowModifiedNotification.Columns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_FID, + { "FID", "mapi.ContentsRowModifiedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_InsertAfterFID, + { "InsertAfterFID", "mapi.ContentsRowModifiedNotification.InsertAfterFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_InsertAfterInstance, + { "InsertAfterInstance", "mapi.ContentsRowModifiedNotification.InsertAfterInstance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_InsertAfterMID, + { "InsertAfterMID", "mapi.ContentsRowModifiedNotification.InsertAfterMID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_Instance, + { "Instance", "mapi.ContentsRowModifiedNotification.Instance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsRowModifiedNotification_MID, + { "MID", "mapi.ContentsRowModifiedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsTableChangeUnion_ContentsRowAddedNotification, + { "ContentsRowAddedNotification", "mapi.ContentsTableChangeUnion.ContentsRowAddedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsTableChangeUnion_ContentsRowDeletedNotification, + { "ContentsRowDeletedNotification", "mapi.ContentsTableChangeUnion.ContentsRowDeletedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsTableChangeUnion_ContentsRowModifiedNotification, + { "ContentsRowModifiedNotification", "mapi.ContentsTableChangeUnion.ContentsRowModifiedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsTableChange_ContentsTableChangeUnion, + { "ContentsTableChangeUnion", "mapi.ContentsTableChange.ContentsTableChangeUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ContentsTableChange_TableEvent, + { "TableEvent", "mapi.ContentsTableChange.TableEvent", FT_UINT16, BASE_DEC, VALS(mapi_RichTableNotificationType_vals), 0, NULL, HFILL }}, + { &hf_mapi_CopyFlags_CopyFlagsMove, + { "CopyFlagsMove", "mapi.CopyFlags.CopyFlagsMove", FT_BOOLEAN, 8, TFS(&CopyFlags_CopyFlagsMove_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_CopyFlags_CopyFlagsNoOverwrite, + { "CopyFlagsNoOverwrite", "mapi.CopyFlags.CopyFlagsNoOverwrite", FT_BOOLEAN, 8, TFS(&CopyFlags_CopyFlagsNoOverwrite_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_CopyFolder_repl_PartialCompletion, + { "PartialCompletion", "mapi.CopyFolder_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyFolder_req_FolderId, + { "FolderId", "mapi.CopyFolder_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyFolder_req_NewFolderName, + { "NewFolderName", "mapi.CopyFolder_req.NewFolderName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyFolder_req_UseUnicode, + { "UseUnicode", "mapi.CopyFolder_req.UseUnicode", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyFolder_req_WantAsynchronous, + { "WantAsynchronous", "mapi.CopyFolder_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyFolder_req_WantRecursive, + { "WantRecursive", "mapi.CopyFolder_req.WantRecursive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyProperties_repl_PropertyProblem, + { "PropertyProblem", "mapi.CopyProperties_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyProperties_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.CopyProperties_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyProperties_req_CopyFlags, + { "CopyFlags", "mapi.CopyProperties_req.CopyFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyProperties_req_PropertyTags, + { "PropertyTags", "mapi.CopyProperties_req.PropertyTags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyProperties_req_WantAsynchronous, + { "WantAsynchronous", "mapi.CopyProperties_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyToStream_repl_ReadByteCount, + { "ReadByteCount", "mapi.CopyToStream_repl.ReadByteCount", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyToStream_repl_WrittenByteCount, + { "WrittenByteCount", "mapi.CopyToStream_repl.WrittenByteCount", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyToStream_req_ByteCount, + { "ByteCount", "mapi.CopyToStream_req.ByteCount", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_repl_PropertyProblem, + { "PropertyProblem", "mapi.CopyTo_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.CopyTo_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_req_CopyFlags, + { "CopyFlags", "mapi.CopyTo_req.CopyFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_req_ExcludedTags, + { "ExcludedTags", "mapi.CopyTo_req.ExcludedTags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_req_WantAsynchronous, + { "WantAsynchronous", "mapi.CopyTo_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CopyTo_req_WantSubObjects, + { "WantSubObjects", "mapi.CopyTo_req.WantSubObjects", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateAttach_repl_AttachmentID, + { "AttachmentID", "mapi.CreateAttach_repl.AttachmentID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateBookmark_repl_bookmark, + { "Bookmark", "mapi.CreateBookmark_repl.bookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_GhostInfo_Ghost, + { "Ghost", "mapi.CreateFolder_GhostInfo.Ghost", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_GhostInfo_HasRules, + { "HasRules", "mapi.CreateFolder_GhostInfo.HasRules", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_GhostInfo_IsGhosted, + { "IsGhosted", "mapi.CreateFolder_GhostInfo.IsGhosted", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_GhostUnion_GhostInfo, + { "GhostInfo", "mapi.CreateFolder_GhostUnion.GhostInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_repl_GhostUnion, + { "GhostUnion", "mapi.CreateFolder_repl.GhostUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_repl_IsExistingFolder, + { "IsExistingFolder", "mapi.CreateFolder_repl.IsExistingFolder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_repl_folder_id, + { "Folder Id", "mapi.CreateFolder_repl.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_req_FolderComment, + { "FolderComment", "mapi.CreateFolder_req.FolderComment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_req_FolderName, + { "FolderName", "mapi.CreateFolder_req.FolderName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_req_ulFlags, + { "UlFlags", "mapi.CreateFolder_req.ulFlags", FT_UINT16, BASE_DEC, VALS(mapi_FOLDER_FLAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_req_ulFolderType, + { "UlFolderType", "mapi.CreateFolder_req.ulFolderType", FT_UINT8, BASE_DEC, VALS(mapi_FOLDER_TYPE_vals), 0, NULL, HFILL }}, + { &hf_mapi_CreateFolder_req_ulType, + { "UlType", "mapi.CreateFolder_req.ulType", FT_UINT8, BASE_DEC, VALS(mapi_FOLDER_STRING_vals), 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_MessageId_MessageId, + { "MessageId", "mapi.CreateMessage_MessageId.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.CreateMessage_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_ReturnValue, + { "ReturnValue", "mapi.CreateMessage_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_repl, + { "Repl", "mapi.CreateMessage_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_status_Success, + { "Success", "mapi.CreateMessage_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_success_HasMessageId, + { "HasMessageId", "mapi.CreateMessage_repl_success.HasMessageId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_repl_success_MessageId, + { "MessageId", "mapi.CreateMessage_repl_success.MessageId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_req_AssociatedFlag, + { "AssociatedFlag", "mapi.CreateMessage_req.AssociatedFlag", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_req_CodePageId, + { "CodePageId", "mapi.CreateMessage_req.CodePageId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_CreateMessage_req_FolderId, + { "FolderId", "mapi.CreateMessage_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_DATA_BLOB_data, { "Data", "mapi.DATA_BLOB.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_DATA_BLOB_length, { "Length", "mapi.DATA_BLOB.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_alloc_space, - { "Alloc Space", "mapi.EcDoConnect.alloc_space", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_code_page, - { "Code Page", "mapi.EcDoConnect.code_page", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_emsmdb_client_version, - { "Emsmdb Client Version", "mapi.EcDoConnect.emsmdb_client_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_input_locale, - { "Input Locale", "mapi.EcDoConnect.input_locale", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_name, - { "Name", "mapi.EcDoConnect.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_org_group, - { "Org Group", "mapi.EcDoConnect.org_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_session_nb, - { "Session Nb", "mapi.EcDoConnect.session_nb", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_store_version, - { "Store Version", "mapi.EcDoConnect.store_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_unknown1, - { "Unknown1", "mapi.EcDoConnect.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_unknown2, - { "Unknown2", "mapi.EcDoConnect.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_unknown3, - { "Unknown3", "mapi.EcDoConnect.unknown3", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_unknown4, - { "Unknown4", "mapi.EcDoConnect.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoConnect_user, - { "User", "mapi.EcDoConnect.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps, - { "Mapi GetProps", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder, - { "Mapi OpenFolder", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_Release, - { "Mapi Release", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps, - { "Mapi GetProps", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder, - { "Mapi OpenFolder", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore, - { "Mapi OpenMsgStore", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_OpenMsgStore", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release, - { "Mapi Release", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_codepage, - { "Codepage", "mapi.EcDoRpc.codepage", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_folder_id, - { "Folder ID", "mapi.EcDoRpc.folder_id", FT_UINT64, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_handle_index, - { "Handle index", "mapi.EcDoRpc.handle_index", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_layout, - { "Layout", "mapi.EcDoRpc.layout", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_length, - { "Length", "mapi.EcDoRpc.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_mailbox, - { "Mailbox", "mapi.EcDoRpc.mailbox", FT_STRING, BASE_NONE, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_mapi_flags, - { "mapi_flags", "mapi.EcDoRpc.mapi_flags", FT_UINT8, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_mapi_request, - { "Mapi Request", "mapi.EcDoRpc.mapi_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_mapi_request_, - { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_mapi_response, - { "Mapi Response", "mapi.EcDoRpc.mapi_response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_mapi_response_, - { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_mapi_tag, - { "MAPI tag", "mapi.EcDoRpc.mapi_tag", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_max_data, - { "Max Data", "mapi.EcDoRpc.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_offset, - { "Offset", "mapi.EcDoRpc.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_padding, - { "Padding", "mapi.EcDoRpc.padding", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_prop_count, - { "Prop count", "mapi.EcDoRpc.prop_count", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_row, - { "Row", "mapi.EcDoRpc.row", FT_UINT8, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_size, - { "Size", "mapi.EcDoRpc.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcDoRpc_str_length, - { "Length", "mapi.EcDoRpc.str_length", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_subcontext_size, - { "Subcontext size", "mapi.EcDoRpc.subcontext_size", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_unknown1, - { "Unknown1", "mapi.EcDoRpc.unknown1", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_unknown2, - { "Unknown2", "mapi.EcDoRpc.unknown2", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcDoRpc_unknown3, - { "Unknown3", "mapi.EcDoRpc.unknown3", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_notif_len, - { "Notif Len", "mapi.EcRRegisterPushNotification.notif_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_notifkey, - { "Notifkey", "mapi.EcRRegisterPushNotification.notifkey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_retval, - { "Retval", "mapi.EcRRegisterPushNotification.retval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_sockaddr, - { "Sockaddr", "mapi.EcRRegisterPushNotification.sockaddr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_sockaddr_len, - { "Sockaddr Len", "mapi.EcRRegisterPushNotification.sockaddr_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_ulEventMask, - { "UlEventMask", "mapi.EcRRegisterPushNotification.ulEventMask", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRRegisterPushNotification_unknown2, - { "Unknown2", "mapi.EcRRegisterPushNotification.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_EcRUnregisterPushNotification_unknown, - { "Unknown", "mapi.EcRUnregisterPushNotification.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DateTimeArray_r_cValues, + { "CValues", "mapi.DateTimeArray_r.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DateTimeArray_r_lpft, + { "Lpft", "mapi.DateTimeArray_r.lpft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteAttach_req_AttachmentID, + { "AttachmentID", "mapi.DeleteAttach_req.AttachmentID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteFolderFlags_DELETE_HARD_DELETE, + { "DELETE HARD DELETE", "mapi.DeleteFolderFlags.DELETE_HARD_DELETE", FT_BOOLEAN, 8, TFS(&DeleteFolderFlags_DELETE_HARD_DELETE_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_DeleteFolderFlags_DEL_FOLDERS, + { "DEL FOLDERS", "mapi.DeleteFolderFlags.DEL_FOLDERS", FT_BOOLEAN, 8, TFS(&DeleteFolderFlags_DEL_FOLDERS_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_DeleteFolderFlags_DEL_MESSAGES, + { "DEL MESSAGES", "mapi.DeleteFolderFlags.DEL_MESSAGES", FT_BOOLEAN, 8, TFS(&DeleteFolderFlags_DEL_MESSAGES_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_DeleteFolder_repl_PartialCompletion, + { "PartialCompletion", "mapi.DeleteFolder_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteFolder_req_DeleteFolderFlags, + { "DeleteFolderFlags", "mapi.DeleteFolder_req.DeleteFolderFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteFolder_req_FolderId, + { "FolderId", "mapi.DeleteFolder_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteMessages_repl_PartialCompletion, + { "PartialCompletion", "mapi.DeleteMessages_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteMessages_req_NotifyNonRead, + { "NotifyNonRead", "mapi.DeleteMessages_req.NotifyNonRead", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteMessages_req_WantAsynchronous, + { "WantAsynchronous", "mapi.DeleteMessages_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteMessages_req_cn_ids, + { "Cn Ids", "mapi.DeleteMessages_req.cn_ids", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteMessages_req_message_ids, + { "Message Ids", "mapi.DeleteMessages_req.message_ids", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblem, + { "PropertyProblem", "mapi.DeletePropertiesNoReplicate_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.DeletePropertiesNoReplicate_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeletePropertiesNoReplicate_req_PropertyTags, + { "PropertyTags", "mapi.DeletePropertiesNoReplicate_req.PropertyTags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteProps_repl_PropertyProblem, + { "PropertyProblem", "mapi.DeleteProps_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteProps_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.DeleteProps_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteProps_req_PropertyTagCount, + { "PropertyTagCount", "mapi.DeleteProps_req.PropertyTagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_DeleteProps_req_tags, + { "Tags", "mapi.DeleteProps_req.tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED, + { "PUBLIC FOLDERS ENABLED", "mapi.EXORGINFO_OrgFlags.PUBLIC_FOLDERS_ENABLED", FT_BOOLEAN, 32, TFS(&EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED_tfs), ( 0x00000001 ), NULL, HFILL }}, + { &hf_mapi_EcDoRpcMapiRequest_opnum, + { "Opnum", "mapi.EcDoRpcMapiRequest.opnum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EcDoRpcMapiRequest_u, + { "U", "mapi.EcDoRpcMapiRequest.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EcDoRpcMapiResponse_opnum, + { "Opnum", "mapi.EcDoRpcMapiResponse.opnum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EcDoRpcMapiResponse_u, + { "U", "mapi.EcDoRpcMapiResponse.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EmptyFolder_repl_PartialCompletion, + { "PartialCompletion", "mapi.EmptyFolder_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EmptyFolder_req_WantAsynchronous, + { "WantAsynchronous", "mapi.EmptyFolder_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_EmptyFolder_req_WantDeleteAssociated, + { "WantDeleteAssociated", "mapi.EmptyFolder_req.WantDeleteAssociated", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ExpandRow_repl_ExpandedRowCount, + { "ExpandedRowCount", "mapi.ExpandRow_repl.ExpandedRowCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ExpandRow_repl_RowCount, + { "RowCount", "mapi.ExpandRow_repl.RowCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ExpandRow_repl_RowData, + { "RowData", "mapi.ExpandRow_repl.RowData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ExpandRow_req_CategoryId, + { "CategoryId", "mapi.ExpandRow_req.CategoryId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ExpandRow_req_MaxRowCount, + { "MaxRowCount", "mapi.ExpandRow_req.MaxRowCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_FILETIME_dwHighDateTime, { "DwHighDateTime", "mapi.FILETIME.dwHighDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_FILETIME_dwLowDateTime, { "DwLowDateTime", "mapi.FILETIME.dwLowDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_LPSTR_lppszA, - { "LppszA", "mapi.LPSTR.lppszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_MAPISTATUS_status, - { "MAPISTATUS", "mapi.MAPISTATUS_status", FT_UINT32, BASE_HEX, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }}, - { &hf_mapi_MAPI_OPNUM, - { "Opnum", "mapi.EcDoRpc_MAPI_REPL.opnum", FT_UINT8, BASE_HEX, VALS(mapi_MAPI_OPNUM_vals), 0, "NULL", HFILL }}, - { &hf_mapi_MAPI_handle, - { "MAPI handle", "mapi.mapi_handle", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_repl_InProgressCount, + { "InProgressCount", "mapi.FastTransferSourceGetBuffer_repl.InProgressCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_repl_Reserved, + { "Reserved", "mapi.FastTransferSourceGetBuffer_repl.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_repl_TotalStepCount, + { "TotalStepCount", "mapi.FastTransferSourceGetBuffer_repl.TotalStepCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_repl_TransferBuffer, + { "TransferBuffer", "mapi.FastTransferSourceGetBuffer_repl.TransferBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_repl_TransferStatus, + { "TransferStatus", "mapi.FastTransferSourceGetBuffer_repl.TransferStatus", FT_UINT16, BASE_DEC, VALS(mapi_TransferStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_FastTransferSourceGetBuffer_req_BufferSize, + { "BufferSize", "mapi.FastTransferSourceGetBuffer_req.BufferSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_repl_HasRowData, + { "HasRowData", "mapi.FindRow_repl.HasRowData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_repl_RowNoLongerVisible, + { "RowNoLongerVisible", "mapi.FindRow_repl.RowNoLongerVisible", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_repl_row, + { "Row", "mapi.FindRow_repl.row", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_req_bookmark, + { "Bookmark", "mapi.FindRow_req.bookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_req_origin, + { "Origin", "mapi.FindRow_req.origin", FT_UINT8, BASE_DEC, VALS(mapi_BOOKMARK_vals), 0, NULL, HFILL }}, + { &hf_mapi_FindRow_req_res, + { "Res", "mapi.FindRow_req.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FindRow_req_ulFlags, + { "UlFlags", "mapi.FindRow_req.ulFlags", FT_UINT8, BASE_DEC, VALS(mapi_FindRow_ulFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderCreatedNotification_FID, + { "FID", "mapi.FolderCreatedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderCreatedNotification_ParentFID, + { "ParentFID", "mapi.FolderCreatedNotification.ParentFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderCreatedNotification_TagCount, + { "TagCount", "mapi.FolderCreatedNotification.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderCreatedNotification_Tags, + { "Tags", "mapi.FolderCreatedNotification.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderDeletedNotification_FID, + { "FID", "mapi.FolderDeletedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderDeletedNotification_ParentFID, + { "ParentFID", "mapi.FolderDeletedNotification.ParentFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_1010_FID, + { "FID", "mapi.FolderModifiedNotification_1010.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_1010_TagCount, + { "TagCount", "mapi.FolderModifiedNotification_1010.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_1010_Tags, + { "Tags", "mapi.FolderModifiedNotification_1010.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_1010_TotalMessageCount, + { "TotalMessageCount", "mapi.FolderModifiedNotification_1010.TotalMessageCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_10_FID, + { "FID", "mapi.FolderModifiedNotification_10.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_10_TagCount, + { "TagCount", "mapi.FolderModifiedNotification_10.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_10_Tags, + { "Tags", "mapi.FolderModifiedNotification_10.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_2010_FID, + { "FID", "mapi.FolderModifiedNotification_2010.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_2010_TagCount, + { "TagCount", "mapi.FolderModifiedNotification_2010.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_2010_Tags, + { "Tags", "mapi.FolderModifiedNotification_2010.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_2010_UnreadMessageCount, + { "UnreadMessageCount", "mapi.FolderModifiedNotification_2010.UnreadMessageCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_3010_FID, + { "FID", "mapi.FolderModifiedNotification_3010.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_3010_TagCount, + { "TagCount", "mapi.FolderModifiedNotification_3010.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_3010_Tags, + { "Tags", "mapi.FolderModifiedNotification_3010.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_3010_TotalMessageCount, + { "TotalMessageCount", "mapi.FolderModifiedNotification_3010.TotalMessageCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderModifiedNotification_3010_UnreadMessageCount, + { "UnreadMessageCount", "mapi.FolderModifiedNotification_3010.UnreadMessageCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderMoveCopyNotification_FID, + { "FID", "mapi.FolderMoveCopyNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderMoveCopyNotification_OldFID, + { "OldFID", "mapi.FolderMoveCopyNotification.OldFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderMoveCopyNotification_OldParentFID, + { "OldParentFID", "mapi.FolderMoveCopyNotification.OldParentFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FolderMoveCopyNotification_ParentFID, + { "ParentFID", "mapi.FolderMoveCopyNotification.ParentFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Folder_name_lpszA, + { "LpszA", "mapi.Folder_name.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Folder_name_lpszW, + { "LpszW", "mapi.Folder_name.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ForwardDelegate_Action_RecipientBlock, + { "RecipientBlock", "mapi.ForwardDelegate_Action.RecipientBlock", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ForwardDelegate_Action_RecipientCount, + { "RecipientCount", "mapi.ForwardDelegate_Action.RecipientCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_FreeBookmark_req_bookmark, + { "Bookmark", "mapi.FreeBookmark_req.bookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GID_DatabaseGUID, + { "DatabaseGUID", "mapi.GID.DatabaseGUID", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GID_GlobalCounter, + { "GlobalCounter", "mapi.GID.GlobalCounter", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetAttachmentTable_req_TableFlags, + { "TableFlags", "mapi.GetAttachmentTable_req.TableFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetCollapseState_repl_CollapseState, + { "CollapseState", "mapi.GetCollapseState_repl.CollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetCollapseState_req_RowId, + { "RowId", "mapi.GetCollapseState_req.RowId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetCollapseState_req_RowInstanceNumber, + { "RowInstanceNumber", "mapi.GetCollapseState_req.RowInstanceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.GetContentsTable_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_repl_ReturnValue, + { "ReturnValue", "mapi.GetContentsTable_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_repl_repl, + { "Repl", "mapi.GetContentsTable_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_repl_status_Success, + { "Success", "mapi.GetContentsTable_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_repl_success_RowCount, + { "RowCount", "mapi.GetContentsTable_repl_success.RowCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetContentsTable_req_TableFlags, + { "TableFlags", "mapi.GetContentsTable_req.TableFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.GetHierarchyTable_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_repl_ReturnValue, + { "ReturnValue", "mapi.GetHierarchyTable_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_repl_repl, + { "Repl", "mapi.GetHierarchyTable_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_repl_status_Success, + { "Success", "mapi.GetHierarchyTable_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_repl_success_RowCount, + { "RowCount", "mapi.GetHierarchyTable_repl_success.RowCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetHierarchyTable_req_TableFlags, + { "TableFlags", "mapi.GetHierarchyTable_req.TableFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetIDsFromNames_repl_count, + { "Count", "mapi.GetIDsFromNames_repl.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetIDsFromNames_repl_propID, + { "PropID", "mapi.GetIDsFromNames_repl.propID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetIDsFromNames_req_count, + { "Count", "mapi.GetIDsFromNames_req.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetIDsFromNames_req_nameid, + { "Nameid", "mapi.GetIDsFromNames_req.nameid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetIDsFromNames_req_ulFlags, + { "UlFlags", "mapi.GetIDsFromNames_req.ulFlags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetLocalReplicaIds_repl_GlobalCount, + { "GlobalCount", "mapi.GetLocalReplicaIds_repl.GlobalCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetLocalReplicaIds_repl_ReplGuid, + { "ReplGuid", "mapi.GetLocalReplicaIds_repl.ReplGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetLocalReplicaIds_req_IdCount, + { "IdCount", "mapi.GetLocalReplicaIds_req.IdCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetMessageStatus_req_msgid, + { "Msgid", "mapi.GetMessageStatus_req.msgid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetNamesFromIDs_repl_count, + { "Count", "mapi.GetNamesFromIDs_repl.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetNamesFromIDs_repl_nameid, + { "Nameid", "mapi.GetNamesFromIDs_repl.nameid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetNamesFromIDs_req_PropertyIdCount, + { "PropertyIdCount", "mapi.GetNamesFromIDs_req.PropertyIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetNamesFromIDs_req_PropertyIds, + { "PropertyIds", "mapi.GetNamesFromIDs_req.PropertyIds", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetOwningServers_repl_CheapServersCount, + { "CheapServersCount", "mapi.GetOwningServers_repl.CheapServersCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetOwningServers_repl_OwningServers, + { "OwningServers", "mapi.GetOwningServers_repl.OwningServers", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetOwningServers_repl_OwningServersCount, + { "OwningServersCount", "mapi.GetOwningServers_repl.OwningServersCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetOwningServers_req_FolderId, + { "FolderId", "mapi.GetOwningServers_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPerUserGuid_repl_DatabaseGuid, + { "DatabaseGuid", "mapi.GetPerUserGuid_repl.DatabaseGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPerUserGuid_req_LongTermId, + { "LongTermId", "mapi.GetPerUserGuid_req.LongTermId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPerUserLongTermIds_repl_LongTermIdCount, + { "LongTermIdCount", "mapi.GetPerUserLongTermIds_repl.LongTermIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPerUserLongTermIds_repl_LongTermIds, + { "LongTermIds", "mapi.GetPerUserLongTermIds_repl.LongTermIds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPerUserLongTermIds_req_DatabaseGuid, + { "DatabaseGuid", "mapi.GetPerUserLongTermIds_req.DatabaseGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPermissionsTable_req_TableFlags, + { "TableFlags", "mapi.GetPermissionsTable_req.TableFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropList_repl_count, + { "Count", "mapi.GetPropList_repl.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropList_repl_tags, + { "Tags", "mapi.GetPropList_repl.tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_repl_InputHandleIndex, + { "InputHandleIndex", "mapi.GetPropsAll_repl.InputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_repl_ReturnValue, + { "ReturnValue", "mapi.GetPropsAll_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_repl_repl, + { "Repl", "mapi.GetPropsAll_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_repl_status_Success, + { "Success", "mapi.GetPropsAll_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_repl_success_properties, + { "Properties", "mapi.GetPropsAll_repl_success.properties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_req_PropertySizeLimit, + { "PropertySizeLimit", "mapi.GetPropsAll_req.PropertySizeLimit", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetPropsAll_req_WantUnicode, + { "WantUnicode", "mapi.GetPropsAll_req.WantUnicode", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_InputHandleIndex, + { "InputHandleIndex", "mapi.GetProps_repl.InputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_ReturnValue, + { "ReturnValue", "mapi.GetProps_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_repl, + { "Repl", "mapi.GetProps_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_status_Success, + { "Success", "mapi.GetProps_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_success_layout, + { "Layout", "mapi.GetProps_repl_success.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_repl_success_prop_data, + { "Prop Data", "mapi.GetProps_repl_success.prop_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_req_PropertySizeLimit, + { "PropertySizeLimit", "mapi.GetProps_req.PropertySizeLimit", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_req_WantUnicode, + { "WantUnicode", "mapi.GetProps_req.WantUnicode", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_req_prop_count, + { "Prop Count", "mapi.GetProps_req.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetProps_req_properties, + { "Properties", "mapi.GetProps_req.properties", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_GetReceiveFolderTable_repl_cValues, + { "CValues", "mapi.GetReceiveFolderTable_repl.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetReceiveFolderTable_repl_entries, + { "Entries", "mapi.GetReceiveFolderTable_repl.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetReceiveFolder_repl_MessageClass, + { "MessageClass", "mapi.GetReceiveFolder_repl.MessageClass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetReceiveFolder_repl_folder_id, + { "Folder Id", "mapi.GetReceiveFolder_repl.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetReceiveFolder_req_MessageClass, + { "MessageClass", "mapi.GetReceiveFolder_req.MessageClass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetRulesTable_req_TableFlags, + { "TableFlags", "mapi.GetRulesTable_req.TableFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_repl_FolderIdCount, + { "FolderIdCount", "mapi.GetSearchCriteria_repl.FolderIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_repl_FolderIds, + { "FolderIds", "mapi.GetSearchCriteria_repl.FolderIds", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_repl_SearchFlags, + { "SearchFlags", "mapi.GetSearchCriteria_repl.SearchFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_repl_res, + { "Res", "mapi.GetSearchCriteria_repl.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_repl_unknown, + { "Unknown", "mapi.GetSearchCriteria_repl.unknown", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_req_IncludeFolders, + { "IncludeFolders", "mapi.GetSearchCriteria_req.IncludeFolders", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_req_IncludeRestriction, + { "IncludeRestriction", "mapi.GetSearchCriteria_req.IncludeRestriction", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetSearchCriteria_req_UseUnicode, + { "UseUnicode", "mapi.GetSearchCriteria_req.UseUnicode", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetStatus_repl_TableStatus, + { "TableStatus", "mapi.GetStatus_repl.TableStatus", FT_UINT8, BASE_DEC, VALS(mapi_TableStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_GetStoreState_repl_StoreState, + { "StoreState", "mapi.GetStoreState_repl.StoreState", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetStreamSize_repl_StreamSize, + { "StreamSize", "mapi.GetStreamSize_repl.StreamSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetTransportFolder_repl_FolderId, + { "FolderId", "mapi.GetTransportFolder_repl.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetValidAttachments_repl_AttachmentIdArray, + { "AttachmentIdArray", "mapi.GetValidAttachments_repl.AttachmentIdArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_GetValidAttachments_repl_AttachmentIdCount, + { "AttachmentIdCount", "mapi.GetValidAttachments_repl.AttachmentIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessagesAndSubfolders_repl_PartialCompletion, + { "PartialCompletion", "mapi.HardDeleteMessagesAndSubfolders_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessagesAndSubfolders_req_WantAsynchronous, + { "WantAsynchronous", "mapi.HardDeleteMessagesAndSubfolders_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated, + { "WantDeleteAssociated", "mapi.HardDeleteMessagesAndSubfolders_req.WantDeleteAssociated", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessages_repl_PartialCompletion, + { "PartialCompletion", "mapi.HardDeleteMessages_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessages_req_MessageIdCount, + { "MessageIdCount", "mapi.HardDeleteMessages_req.MessageIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessages_req_MessageIds, + { "MessageIds", "mapi.HardDeleteMessages_req.MessageIds", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessages_req_NotifyNonRead, + { "NotifyNonRead", "mapi.HardDeleteMessages_req.NotifyNonRead", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HardDeleteMessages_req_WantAsynchronous, + { "WantAsynchronous", "mapi.HardDeleteMessages_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowAddedNotification_Columns, + { "Columns", "mapi.HierarchyRowAddedNotification.Columns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowAddedNotification_FID, + { "FID", "mapi.HierarchyRowAddedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowAddedNotification_InsertAfterFID, + { "InsertAfterFID", "mapi.HierarchyRowAddedNotification.InsertAfterFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowDeletedNotification_FID, + { "FID", "mapi.HierarchyRowDeletedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowModifiedNotification_Columns, + { "Columns", "mapi.HierarchyRowModifiedNotification.Columns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowModifiedNotification_FID, + { "FID", "mapi.HierarchyRowModifiedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyRowModifiedNotification_InsertAfterFID, + { "InsertAfterFID", "mapi.HierarchyRowModifiedNotification.InsertAfterFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyTableChangeUnion_HierarchyRowAddedNotification, + { "HierarchyRowAddedNotification", "mapi.HierarchyTableChangeUnion.HierarchyRowAddedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyTableChangeUnion_HierarchyRowDeletedNotification, + { "HierarchyRowDeletedNotification", "mapi.HierarchyTableChangeUnion.HierarchyRowDeletedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyTableChangeUnion_HierarchyRowModifiedNotification, + { "HierarchyRowModifiedNotification", "mapi.HierarchyTableChangeUnion.HierarchyRowModifiedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyTableChange_HierarchyTableChangeUnion, + { "HierarchyTableChangeUnion", "mapi.HierarchyTableChange.HierarchyTableChangeUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_HierarchyTableChange_TableEvent, + { "TableEvent", "mapi.HierarchyTableChange.TableEvent", FT_UINT16, BASE_DEC, VALS(mapi_RichTableNotificationType_vals), 0, NULL, HFILL }}, + { &hf_mapi_IcsNotification_GID, + { "GID", "mapi.IcsNotification.GID", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_IcsNotification_GIDCount, + { "GIDCount", "mapi.IcsNotification.GIDCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_IcsNotification_HierChanged, + { "HierChanged", "mapi.IcsNotification.HierChanged", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_IdFromLongTermId_repl_Id, + { "Id", "mapi.IdFromLongTermId_repl.Id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_IdFromLongTermId_req_LongTermId, + { "LongTermId", "mapi.IdFromLongTermId_req.LongTermId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ImportFlag_ImportFlag_Associated, + { "ImportFlag Associated", "mapi.ImportFlag.ImportFlag_Associated", FT_BOOLEAN, 8, TFS(&ImportFlag_ImportFlag_Associated_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_ImportFlag_ImportFlag_FailOnConflict, + { "ImportFlag FailOnConflict", "mapi.ImportFlag.ImportFlag_FailOnConflict", FT_BOOLEAN, 8, TFS(&ImportFlag_ImportFlag_FailOnConflict_tfs), ( 0x40 ), NULL, HFILL }}, + { &hf_mapi_InputHandleIndex, + { "InputHandleIndex", "mapi.rop.InputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_IsGhosted_Replicas, + { "Replicas", "mapi.IsGhosted.Replicas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Kind_lid, + { "Lid", "mapi.Kind.lid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Kind_lpwstr, + { "Lpwstr", "mapi.Kind.lpwstr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LPTSTR_lpszA, + { "LpszA", "mapi.LPTSTR.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LPTSTR_lpszW, + { "LpszW", "mapi.LPTSTR.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LockRegionStream_req_LockFlags, + { "LockFlags", "mapi.LockRegionStream_req.LockFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LockRegionStream_req_RegionOffset, + { "RegionOffset", "mapi.LockRegionStream_req.RegionOffset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LockRegionStream_req_RegionSize, + { "RegionSize", "mapi.LockRegionStream_req.RegionSize", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonId, + { "LogonId", "mapi.rop.LogonId", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_LogonTime_Day, + { "Day", "mapi.LogonTime.Day", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_DayOfWeek, + { "DayOfWeek", "mapi.LogonTime.DayOfWeek", FT_UINT8, BASE_DEC, VALS(mapi_DayOfWeek_vals), 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_Hour, + { "Hour", "mapi.LogonTime.Hour", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_Minutes, + { "Minutes", "mapi.LogonTime.Minutes", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_Month, + { "Month", "mapi.LogonTime.Month", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_Seconds, + { "Seconds", "mapi.LogonTime.Seconds", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LogonTime_Year, + { "Year", "mapi.LogonTime.Year", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_FolderIds, + { "FolderIds", "mapi.Logon_repl.FolderIds", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_GwartTime, + { "GwartTime", "mapi.Logon_repl.GwartTime", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_LogonFlags, + { "LogonFlags", "mapi.Logon_repl.LogonFlags", FT_UINT8, BASE_DEC, VALS(mapi_LogonFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_LogonTime, + { "LogonTime", "mapi.Logon_repl.LogonTime", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_MailboxGuid, + { "MailboxGuid", "mapi.Logon_repl.MailboxGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.Logon_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_PerUserGuid, + { "PerUserGuid", "mapi.Logon_repl.PerUserGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ReplGuid, + { "ReplGuid", "mapi.Logon_repl.ReplGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ReplId, + { "ReplId", "mapi.Logon_repl.ReplId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ResponseFlags, + { "ResponseFlags", "mapi.Logon_repl.ResponseFlags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ReturnValue, + { "ReturnValue", "mapi.Logon_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ServerName, + { "ServerName", "mapi.Logon_repl.ServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_ServerNameSize, + { "ServerNameSize", "mapi.Logon_repl.ServerNameSize", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_repl_StoreState, + { "StoreState", "mapi.Logon_repl.StoreState", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_req_EssDN, + { "EssDN", "mapi.Logon_req.EssDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_req_EssdnSize, + { "EssdnSize", "mapi.Logon_req.EssdnSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_req_LogonFlags, + { "LogonFlags", "mapi.Logon_req.LogonFlags", FT_UINT8, BASE_DEC, VALS(mapi_LogonFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_Logon_req_OpenFlags, + { "OpenFlags", "mapi.Logon_req.OpenFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Logon_req_StoreState, + { "StoreState", "mapi.Logon_req.StoreState", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongArray_r_cValues, + { "CValues", "mapi.LongArray_r.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongArray_r_lpl, + { "Lpl", "mapi.LongArray_r.lpl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_repl_InputHandleIndex, + { "InputHandleIndex", "mapi.LongTermIdFromId_repl.InputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_repl_ReturnValue, + { "ReturnValue", "mapi.LongTermIdFromId_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_repl_Success_LongTermId, + { "LongTermId", "mapi.LongTermIdFromId_repl_Success.LongTermId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_repl_repl, + { "Repl", "mapi.LongTermIdFromId_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_repl_status_Success, + { "Success", "mapi.LongTermIdFromId_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermIdFromId_req_Id, + { "Id", "mapi.LongTermIdFromId_req.Id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermId_DatabaseGuid, + { "DatabaseGuid", "mapi.LongTermId.DatabaseGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermId_GlobalCounter, + { "GlobalCounter", "mapi.LongTermId.GlobalCounter", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_LongTermId_padding, + { "Padding", "mapi.LongTermId.padding", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MAPINAMEID_kind, + { "Kind", "mapi.MAPINAMEID.kind", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MAPINAMEID_lpguid, + { "Lpguid", "mapi.MAPINAMEID.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MAPINAMEID_ulKind, + { "UlKind", "mapi.MAPINAMEID.ulKind", FT_UINT8, BASE_DEC, VALS(mapi_ulKind_vals), 0, NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_CLEAR_NRN_PENDING, + { "CLEAR NRN PENDING", "mapi.MSGFLAG_READ.CLEAR_NRN_PENDING", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_CLEAR_NRN_PENDING_tfs), ( 0x40 ), NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_CLEAR_READ_FLAG, + { "CLEAR READ FLAG", "mapi.MSGFLAG_READ.CLEAR_READ_FLAG", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_CLEAR_READ_FLAG_tfs), ( 0x04 ), NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_CLEAR_RN_PENDING, + { "CLEAR RN PENDING", "mapi.MSGFLAG_READ.CLEAR_RN_PENDING", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_CLEAR_RN_PENDING_tfs), ( 0x20 ), NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_GENERATE_RECEIPT_ONLY, + { "GENERATE RECEIPT ONLY", "mapi.MSGFLAG_READ.GENERATE_RECEIPT_ONLY", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_GENERATE_RECEIPT_ONLY_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_MAPI_DEFERRED_ERRORS, + { "MAPI DEFERRED ERRORS", "mapi.MSGFLAG_READ.MAPI_DEFERRED_ERRORS", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_MAPI_DEFERRED_ERRORS_tfs), ( 0x08 ), NULL, HFILL }}, + { &hf_mapi_MSGFLAG_READ_SUPPRESS_RECEIPT, + { "SUPPRESS RECEIPT", "mapi.MSGFLAG_READ.SUPPRESS_RECEIPT", FT_BOOLEAN, 8, TFS(&MSGFLAG_READ_SUPPRESS_RECEIPT_tfs), ( 0x01 ), NULL, HFILL }}, + { &hf_mapi_MaximumByteCount_value, + { "Value", "mapi.MaximumByteCount.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageClass_lpszA, + { "LpszA", "mapi.MessageClass.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageClass_lpszW, + { "LpszW", "mapi.MessageClass.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageCreatedNotification_FID, + { "FID", "mapi.MessageCreatedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageCreatedNotification_MID, + { "MID", "mapi.MessageCreatedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageCreatedNotification_TagCount, + { "TagCount", "mapi.MessageCreatedNotification.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageCreatedNotification_Tags, + { "Tags", "mapi.MessageCreatedNotification.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_MessageDeletedNotification_FID, + { "FID", "mapi.MessageDeletedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageDeletedNotification_MID, + { "MID", "mapi.MessageDeletedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageModifiedNotification_FID, + { "FID", "mapi.MessageModifiedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageModifiedNotification_MID, + { "MID", "mapi.MessageModifiedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageModifiedNotification_TagCount, + { "TagCount", "mapi.MessageModifiedNotification.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageModifiedNotification_Tags, + { "Tags", "mapi.MessageModifiedNotification.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_MessageMoveCopyNotification_FID, + { "FID", "mapi.MessageMoveCopyNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageMoveCopyNotification_MID, + { "MID", "mapi.MessageMoveCopyNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageMoveCopyNotification_OldFID, + { "OldFID", "mapi.MessageMoveCopyNotification.OldFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MessageMoveCopyNotification_OldMID, + { "OldMID", "mapi.MessageMoveCopyNotification.OldMID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy, + { "ModifyPerms IncludeFreeBusy", "mapi.ModifyPermissionsFlags.ModifyPerms_IncludeFreeBusy", FT_BOOLEAN, 8, TFS(&ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy_tfs), ( 0x02 ), NULL, HFILL }}, + { &hf_mapi_ModifyPermissionsFlags_ModifyPerms_ReplaceRows, + { "ModifyPerms ReplaceRows", "mapi.ModifyPermissionsFlags.ModifyPerms_ReplaceRows", FT_BOOLEAN, 8, TFS(&ModifyPermissionsFlags_ModifyPerms_ReplaceRows_tfs), ( 0x01 ), NULL, HFILL }}, + { &hf_mapi_ModifyPermissions_req_rowList, + { "RowList", "mapi.ModifyPermissions_req.rowList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipientRow_RecipClass, + { "RecipClass", "mapi.ModifyRecipientRow.RecipClass", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipientRow_RecipientRow, + { "RecipientRow", "mapi.ModifyRecipientRow.RecipientRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipientRow_idx, + { "Idx", "mapi.ModifyRecipientRow.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipients_req_RecipientRow, + { "RecipientRow", "mapi.ModifyRecipients_req.RecipientRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipients_req_cValues, + { "CValues", "mapi.ModifyRecipients_req.cValues", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipients_req_prop_count, + { "Prop Count", "mapi.ModifyRecipients_req.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRecipients_req_properties, + { "Properties", "mapi.ModifyRecipients_req.properties", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_ModifyRulesFlag_ModifyRulesFlag_Replace, + { "ModifyRulesFlag Replace", "mapi.ModifyRulesFlag.ModifyRulesFlag_Replace", FT_BOOLEAN, 8, TFS(&ModifyRulesFlag_ModifyRulesFlag_Replace_tfs), ( 0x01 ), NULL, HFILL }}, + { &hf_mapi_ModifyRules_req_ModifyRulesFlags, + { "ModifyRulesFlags", "mapi.ModifyRules_req.ModifyRulesFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRules_req_RulesCount, + { "RulesCount", "mapi.ModifyRules_req.RulesCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ModifyRules_req_RulesData, + { "RulesData", "mapi.ModifyRules_req.RulesData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopyMessages_repl_PartialCompletion, + { "PartialCompletion", "mapi.MoveCopyMessages_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopyMessages_req_WantAsynchronous, + { "WantAsynchronous", "mapi.MoveCopyMessages_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopyMessages_req_WantCopy, + { "WantCopy", "mapi.MoveCopyMessages_req.WantCopy", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopyMessages_req_count, + { "Count", "mapi.MoveCopyMessages_req.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopyMessages_req_message_id, + { "Message Id", "mapi.MoveCopyMessages_req.message_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopy_Action_FolderEID, + { "FolderEID", "mapi.MoveCopy_Action.FolderEID", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopy_Action_FolderInThisStore, + { "FolderInThisStore", "mapi.MoveCopy_Action.FolderInThisStore", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveCopy_Action_StoreEID, + { "StoreEID", "mapi.MoveCopy_Action.StoreEID", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveFolder_repl_PartialCompletion, + { "PartialCompletion", "mapi.MoveFolder_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveFolder_req_FolderId, + { "FolderId", "mapi.MoveFolder_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveFolder_req_NewFolderName, + { "NewFolderName", "mapi.MoveFolder_req.NewFolderName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveFolder_req_UseUnicode, + { "UseUnicode", "mapi.MoveFolder_req.UseUnicode", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MoveFolder_req_WantAsynchronous, + { "WantAsynchronous", "mapi.MoveFolder_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_ASSOCIATED, + { "MSGFLAG ASSOCIATED", "mapi.MsgFlags.MSGFLAG_ASSOCIATED", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_ASSOCIATED_tfs), ( 0x40 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_FROMME, + { "MSGFLAG FROMME", "mapi.MsgFlags.MSGFLAG_FROMME", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_FROMME_tfs), ( 0x20 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_HASATTACH, + { "MSGFLAG HASATTACH", "mapi.MsgFlags.MSGFLAG_HASATTACH", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_HASATTACH_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_NRN_PENDING, + { "MSGFLAG NRN PENDING", "mapi.MsgFlags.MSGFLAG_NRN_PENDING", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_NRN_PENDING_tfs), ( 0x200 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_READ, + { "MSGFLAG READ", "mapi.MsgFlags.MSGFLAG_READ", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_READ_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_RESEND, + { "MSGFLAG RESEND", "mapi.MsgFlags.MSGFLAG_RESEND", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_RESEND_tfs), ( 0x80 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_RN_PENDING, + { "MSGFLAG RN PENDING", "mapi.MsgFlags.MSGFLAG_RN_PENDING", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_RN_PENDING_tfs), ( 0x100 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_SUBMIT, + { "MSGFLAG SUBMIT", "mapi.MsgFlags.MSGFLAG_SUBMIT", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_SUBMIT_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_UNMODIFIED, + { "MSGFLAG UNMODIFIED", "mapi.MsgFlags.MSGFLAG_UNMODIFIED", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_UNMODIFIED_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_MsgFlags_MSGFLAG_UNSENT, + { "MSGFLAG UNSENT", "mapi.MsgFlags.MSGFLAG_UNSENT", FT_BOOLEAN, 32, TFS(&MsgFlags_MSGFLAG_UNSENT_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_NewMailNotification_FID, + { "FID", "mapi.NewMailNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NewMailNotification_MID, + { "MID", "mapi.NewMailNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NewMailNotification_MessageClass, + { "MessageClass", "mapi.NewMailNotification.MessageClass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NewMailNotification_MessageFlags, + { "MessageFlags", "mapi.NewMailNotification.MessageFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NewMailNotification_UnicodeFlag, + { "UnicodeFlag", "mapi.NewMailNotification.UnicodeFlag", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_ContentsTableChange, + { "ContentsTableChange", "mapi.NotificationData.ContentsTableChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderCopyNotification, + { "FolderCopyNotification", "mapi.NotificationData.FolderCopyNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderCreatedNotification, + { "FolderCreatedNotification", "mapi.NotificationData.FolderCreatedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderDeletedNotification, + { "FolderDeletedNotification", "mapi.NotificationData.FolderDeletedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderModifiedNotification_10, + { "FolderModifiedNotification 10", "mapi.NotificationData.FolderModifiedNotification_10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderModifiedNotification_1010, + { "FolderModifiedNotification 1010", "mapi.NotificationData.FolderModifiedNotification_1010", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderModifiedNotification_2010, + { "FolderModifiedNotification 2010", "mapi.NotificationData.FolderModifiedNotification_2010", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderModifiedNotification_3010, + { "FolderModifiedNotification 3010", "mapi.NotificationData.FolderModifiedNotification_3010", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_FolderMoveNotification, + { "FolderMoveNotification", "mapi.NotificationData.FolderMoveNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_HierarchyTableChange, + { "HierarchyTableChange", "mapi.NotificationData.HierarchyTableChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_IcsNotification, + { "IcsNotification", "mapi.NotificationData.IcsNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_MessageCopyNotification, + { "MessageCopyNotification", "mapi.NotificationData.MessageCopyNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_MessageCreatedNotification, + { "MessageCreatedNotification", "mapi.NotificationData.MessageCreatedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_MessageDeletedNotification, + { "MessageDeletedNotification", "mapi.NotificationData.MessageDeletedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_MessageModifiedNotification, + { "MessageModifiedNotification", "mapi.NotificationData.MessageModifiedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_MessageMoveNotification, + { "MessageMoveNotification", "mapi.NotificationData.MessageMoveNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_NewMailNotification, + { "NewMailNotification", "mapi.NotificationData.NewMailNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_NewMessageNotification, + { "NewMessageNotification", "mapi.NotificationData.NewMessageNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_SearchCompleteNotification, + { "SearchCompleteNotification", "mapi.NotificationData.SearchCompleteNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_SearchMessageCreatedNotification, + { "SearchMessageCreatedNotification", "mapi.NotificationData.SearchMessageCreatedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_SearchMessageModifiedNotification, + { "SearchMessageModifiedNotification", "mapi.NotificationData.SearchMessageModifiedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_SearchMessageRemovedNotification, + { "SearchMessageRemovedNotification", "mapi.NotificationData.SearchMessageRemovedNotification", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_NotificationData_SearchTableChange, + { "SearchTableChange", "mapi.NotificationData.SearchTableChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Notify_repl_LogonId, + { "LogonId", "mapi.Notify_repl.LogonId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Notify_repl_NotificationData, + { "NotificationData", "mapi.Notify_repl.NotificationData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Notify_repl_NotificationHandle, + { "NotificationHandle", "mapi.Notify_repl.NotificationHandle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Notify_repl_NotificationType, + { "NotificationType", "mapi.Notify_repl.NotificationType", FT_UINT16, BASE_DEC, VALS(mapi_NotificationFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenAttach_req_AttachmentID, + { "AttachmentID", "mapi.OpenAttach_req.AttachmentID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenAttach_req_OpenAttachmentFlags, + { "OpenAttachmentFlags", "mapi.OpenAttach_req.OpenAttachmentFlags", FT_UINT8, BASE_DEC, VALS(mapi_OpenAttachmentFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_ColumnCount, + { "ColumnCount", "mapi.OpenEmbeddedMessage_repl.ColumnCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_HasNamedProperties, + { "HasNamedProperties", "mapi.OpenEmbeddedMessage_repl.HasNamedProperties", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_MessageId, + { "MessageId", "mapi.OpenEmbeddedMessage_repl.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_NormalizedSubject, + { "NormalizedSubject", "mapi.OpenEmbeddedMessage_repl.NormalizedSubject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_RecipientColumns, + { "RecipientColumns", "mapi.OpenEmbeddedMessage_repl.RecipientColumns", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_RecipientCount, + { "RecipientCount", "mapi.OpenEmbeddedMessage_repl.RecipientCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_RecipientRows, + { "RecipientRows", "mapi.OpenEmbeddedMessage_repl.RecipientRows", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_Reserved, + { "Reserved", "mapi.OpenEmbeddedMessage_repl.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_RowCount, + { "RowCount", "mapi.OpenEmbeddedMessage_repl.RowCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_repl_SubjectPrefix, + { "SubjectPrefix", "mapi.OpenEmbeddedMessage_repl.SubjectPrefix", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_req_CodePageId, + { "CodePageId", "mapi.OpenEmbeddedMessage_req.CodePageId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenEmbeddedMessage_req_OpenModeFlags, + { "OpenModeFlags", "mapi.OpenEmbeddedMessage_req.OpenModeFlags", FT_UINT8, BASE_DEC, VALS(mapi_OpenEmbeddedMessage_OpenModeFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenFlags_ALTERNATE_SERVER, + { "ALTERNATE SERVER", "mapi.OpenFlags.ALTERNATE_SERVER", FT_BOOLEAN, 32, TFS(&OpenFlags_ALTERNATE_SERVER_tfs), ( 0x100 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_HOME_LOGON, + { "HOME LOGON", "mapi.OpenFlags.HOME_LOGON", FT_BOOLEAN, 32, TFS(&OpenFlags_HOME_LOGON_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_IGNORE_HOME_MDB, + { "IGNORE HOME MDB", "mapi.OpenFlags.IGNORE_HOME_MDB", FT_BOOLEAN, 32, TFS(&OpenFlags_IGNORE_HOME_MDB_tfs), ( 0x200 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_NO_MAIL, + { "NO MAIL", "mapi.OpenFlags.NO_MAIL", FT_BOOLEAN, 32, TFS(&OpenFlags_NO_MAIL_tfs), ( 0x400 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_PUBLIC, + { "PUBLIC", "mapi.OpenFlags.PUBLIC", FT_BOOLEAN, 32, TFS(&OpenFlags_PUBLIC_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_TAKE_OWNERSHIP, + { "TAKE OWNERSHIP", "mapi.OpenFlags.TAKE_OWNERSHIP", FT_BOOLEAN, 32, TFS(&OpenFlags_TAKE_OWNERSHIP_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_OpenFlags_USE_PER_MDB_REPLID_MAPPING, + { "USE PER MDB REPLID MAPPING", "mapi.OpenFlags.USE_PER_MDB_REPLID_MAPPING", FT_BOOLEAN, 32, TFS(&OpenFlags_USE_PER_MDB_REPLID_MAPPING_tfs), ( 0x010000000 ), NULL, HFILL }}, + { &hf_mapi_OpenFolder_Replicas_CheapServerCount, + { "CheapServerCount", "mapi.OpenFolder_Replicas.CheapServerCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_Replicas_ServerCount, + { "ServerCount", "mapi.OpenFolder_Replicas.ServerCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_Replicas_Servers, + { "Servers", "mapi.OpenFolder_Replicas.Servers", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_Success_Ghost, + { "Ghost", "mapi.OpenFolder_Success.Ghost", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_Success_HasRules, + { "HasRules", "mapi.OpenFolder_Success.HasRules", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_Success_IsGhosted, + { "IsGhosted", "mapi.OpenFolder_Success.IsGhosted", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.OpenFolder_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_repl_ReturnValue, + { "ReturnValue", "mapi.OpenFolder_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_repl_repl, + { "Repl", "mapi.OpenFolder_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_repl_status_Success, + { "Success", "mapi.OpenFolder_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_req_FolderId, + { "FolderId", "mapi.OpenFolder_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenFolder_req_OpenModeFlags, + { "OpenModeFlags", "mapi.OpenFolder_req.OpenModeFlags", FT_UINT8, BASE_DEC, VALS(mapi_OpenFolder_OpenModeFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_ColumnCount, + { "ColumnCount", "mapi.OpenMessage_Success.ColumnCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_HasNamedProperties, + { "HasNamedProperties", "mapi.OpenMessage_Success.HasNamedProperties", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_NormalizedSubject, + { "NormalizedSubject", "mapi.OpenMessage_Success.NormalizedSubject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_RecipientColumns, + { "RecipientColumns", "mapi.OpenMessage_Success.RecipientColumns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_RecipientCount, + { "RecipientCount", "mapi.OpenMessage_Success.RecipientCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_RowCount, + { "RowCount", "mapi.OpenMessage_Success.RowCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_SubjectPrefix, + { "SubjectPrefix", "mapi.OpenMessage_Success.SubjectPrefix", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_Success_recipients, + { "Recipients", "mapi.OpenMessage_Success.recipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_mapi_OpenMessage_recipients_RecipClass, { "RecipClass", "mapi.OpenMessage_recipients.RecipClass", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_recipients_RecipientRow, + { "RecipientRow", "mapi.OpenMessage_recipients.RecipientRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_recipients_Reserved, + { "Reserved", "mapi.OpenMessage_recipients.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_OpenMessage_recipients_codepage, - { "Codepage", "mapi.OpenMessage_recipients.codepage", FT_UINT32, BASE_DEC, VALS(mapi_CODEPAGEID_vals), 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_recipients_recipients_headers, - { "Recipients Headers", "mapi.OpenMessage_recipients.recipients_headers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_recipients_recipients_headers_, - { "Subcontext length", "mapi.OpenMessage_recipients.subcontext", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_req_folder_handle_idx, - { "Folder Handle Idx", "mapi.OpenMessage_req.folder_handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_req_folder_id, - { "Folder Id", "mapi.OpenMessage_req.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_req_max_data, - { "Max Data", "mapi.OpenMessage_req.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_req_message_id, - { "Message Id", "mapi.OpenMessage_req.message_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_OpenMessage_req_message_permissions, - { "Message Permissions", "mapi.OpenMessage_req.message_permissions", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { "Codepage", "mapi.OpenMessage_recipients.codepage", FT_UINT16, BASE_DEC, VALS(mapi_CODEPAGEID_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_repl_OutputHandleIndex, + { "OutputHandleIndex", "mapi.OpenMessage_repl.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_repl_ReturnValue, + { "ReturnValue", "mapi.OpenMessage_repl.ReturnValue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_repl_repl, + { "Repl", "mapi.OpenMessage_repl.repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_repl_status_Success, + { "Success", "mapi.OpenMessage_repl_status.Success", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_req_CodePageId, + { "CodePageId", "mapi.OpenMessage_req.CodePageId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_req_FolderId, + { "FolderId", "mapi.OpenMessage_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_req_MessageId, + { "MessageId", "mapi.OpenMessage_req.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenMessage_req_OpenModeFlags, + { "OpenModeFlags", "mapi.OpenMessage_req.OpenModeFlags", FT_UINT8, BASE_DEC, VALS(mapi_OpenMessage_OpenModeFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenPublicFolderByName_repl_Ghost, + { "Ghost", "mapi.OpenPublicFolderByName_repl.Ghost", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenPublicFolderByName_repl_HasRules, + { "HasRules", "mapi.OpenPublicFolderByName_repl.HasRules", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenPublicFolderByName_repl_IsGhosted, + { "IsGhosted", "mapi.OpenPublicFolderByName_repl.IsGhosted", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenPublicFolderByName_req_handle_idx, + { "Handle Idx", "mapi.OpenPublicFolderByName_req.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenPublicFolderByName_req_name, + { "Name", "mapi.OpenPublicFolderByName_req.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_CodePageId, + { "CodePageId", "mapi.OpenRecipientRow.CodePageId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_InputHandleIndex, + { "InputHandleIndex", "mapi.OpenRecipientRow.InputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_LogonId, + { "LogonId", "mapi.OpenRecipientRow.LogonId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_RecipientRow, + { "RecipientRow", "mapi.OpenRecipientRow.RecipientRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_RecipientType, + { "RecipientType", "mapi.OpenRecipientRow.RecipientType", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenRecipientRow_Reserved, + { "Reserved", "mapi.OpenRecipientRow.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenStream_repl_StreamSize, + { "StreamSize", "mapi.OpenStream_repl.StreamSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OpenStream_req_OpenModeFlags, + { "OpenModeFlags", "mapi.OpenStream_req.OpenModeFlags", FT_UINT8, BASE_DEC, VALS(mapi_OpenStream_OpenModeFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_OpenStream_req_PropertyTag, + { "PropertyTag", "mapi.OpenStream_req.PropertyTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_HelpFileName_HelpFileName, + { "HelpFileName", "mapi.OptionsData_HelpFileName.HelpFileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_repl_HelpFile, + { "HelpFile", "mapi.OptionsData_repl.HelpFile", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_repl_HelpFileName, + { "HelpFileName", "mapi.OptionsData_repl.HelpFileName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_repl_HelpFileSize, + { "HelpFileSize", "mapi.OptionsData_repl.HelpFileSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_repl_OptionsInfo, + { "OptionsInfo", "mapi.OptionsData_repl.OptionsInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_repl_Reserved, + { "Reserved", "mapi.OptionsData_repl.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_req_AddressType, + { "AddressType", "mapi.OptionsData_req.AddressType", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OptionsData_req_WantWin32, + { "WantWin32", "mapi.OptionsData_req.WantWin32", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_OutputHandleIndex, + { "OutputHandleIndex", "mapi.rop.OutputHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_Pending_repl_SessionIndex, + { "SessionIndex", "mapi.Pending_repl.SessionIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PermissionData_PermissionDataFlags, + { "PermissionDataFlags", "mapi.PermissionData.PermissionDataFlags", FT_UINT8, BASE_DEC, VALS(mapi_ulRowFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_PermissionData_lpProps, + { "LpProps", "mapi.PermissionData.lpProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PermissionsTableFlags_IncludeFreeBusy, + { "IncludeFreeBusy", "mapi.PermissionsTableFlags.IncludeFreeBusy", FT_BOOLEAN, 8, TFS(&PermissionsTableFlags_IncludeFreeBusy_tfs), ( 0x02 ), NULL, HFILL }}, + { &hf_mapi_Progress_repl_CompletedTaskCount, + { "CompletedTaskCount", "mapi.Progress_repl.CompletedTaskCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Progress_repl_TotalTaskCount, + { "TotalTaskCount", "mapi.Progress_repl.TotalTaskCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Progress_req_WantCancel, + { "WantCancel", "mapi.Progress_req.WantCancel", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PropertyProblem_error_code, + { "Error Code", "mapi.PropertyProblem.error_code", FT_UINT32, BASE_DEC, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }}, + { &hf_mapi_PropertyProblem_index, + { "Index", "mapi.PropertyProblem.index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PropertyProblem_property_tag, + { "Property Tag", "mapi.PropertyProblem.property_tag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_PublicFolderIsGhosted_repl_Ghost, + { "Ghost", "mapi.PublicFolderIsGhosted_repl.Ghost", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PublicFolderIsGhosted_repl_IsGhosted, + { "IsGhosted", "mapi.PublicFolderIsGhosted_repl.IsGhosted", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_PublicFolderIsGhosted_req_FolderId, + { "FolderId", "mapi.PublicFolderIsGhosted_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryColumnsAll_repl_PropertyTagCount, + { "PropertyTagCount", "mapi.QueryColumnsAll_repl.PropertyTagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryColumnsAll_repl_PropertyTags, + { "PropertyTags", "mapi.QueryColumnsAll_repl.PropertyTags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_QueryFlags_NoIds, + { "NoIds", "mapi.QueryFlags.NoIds", FT_BOOLEAN, 8, TFS(&QueryFlags_NoIds_tfs), ( 0x02 ), NULL, HFILL }}, + { &hf_mapi_QueryFlags_NoStrings, + { "NoStrings", "mapi.QueryFlags.NoStrings", FT_BOOLEAN, 8, TFS(&QueryFlags_NoStrings_tfs), ( 0x01 ), NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_guid_guid, + { "Guid", "mapi.QueryNamedProperties_guid.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_repl_IdCount, + { "IdCount", "mapi.QueryNamedProperties_repl.IdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_repl_PropertyIds, + { "PropertyIds", "mapi.QueryNamedProperties_repl.PropertyIds", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_repl_PropertyNames, + { "PropertyNames", "mapi.QueryNamedProperties_repl.PropertyNames", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_req_HasGuid, + { "HasGuid", "mapi.QueryNamedProperties_req.HasGuid", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_req_PropertyGuid, + { "PropertyGuid", "mapi.QueryNamedProperties_req.PropertyGuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryNamedProperties_req_QueryFlags, + { "QueryFlags", "mapi.QueryNamedProperties_req.QueryFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryPosition_repl_Denominator, + { "Denominator", "mapi.QueryPosition_repl.Denominator", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryPosition_repl_Numerator, + { "Numerator", "mapi.QueryPosition_repl.Numerator", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_repl_Origin, + { "Origin", "mapi.QueryRows_repl.Origin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_repl_RowCount, + { "RowCount", "mapi.QueryRows_repl.RowCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_repl_RowData, + { "RowData", "mapi.QueryRows_repl.RowData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_req_ForwardRead, + { "ForwardRead", "mapi.QueryRows_req.ForwardRead", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_req_QueryRowsFlags, + { "QueryRowsFlags", "mapi.QueryRows_req.QueryRowsFlags", FT_UINT8, BASE_DEC, VALS(mapi_QueryRowsFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_QueryRows_req_RowCount, + { "RowCount", "mapi.QueryRows_req.RowCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPInputBuffer_objectHandles, + { "ObjectHandles", "mapi.ROPInputBuffer.objectHandles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPInputBuffer_rop, + { "Rop", "mapi.ROPInputBuffer.rop", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPInputBuffer_ropSize, + { "RopSize", "mapi.ROPInputBuffer.ropSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPOutputBuffer_objectHandles, + { "ObjectHandles", "mapi.ROPOutputBuffer.objectHandles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPOutputBuffer_rop, + { "Rop", "mapi.ROPOutputBuffer.rop", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ROPOutputBuffer_ropSize, + { "RopSize", "mapi.ROPOutputBuffer.ropSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Flags, + { "Flags", "mapi.RPC_HEADER_EXT.Flags", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed, + { "RHEF Compressed", "mapi.RPC_HEADER_EXT_Flags.RHEF_Compressed", FT_BOOLEAN, 16, TFS(&RPC_HEADER_EXT_Flags_RHEF_Compressed_tfs), ( 0x0001 ), NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last, + { "RHEF Last", "mapi.RPC_HEADER_EXT_Flags.RHEF_Last", FT_BOOLEAN, 16, TFS(&RPC_HEADER_EXT_Flags_RHEF_Last_tfs), ( 0x0004 ), NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic, + { "RHEF XorMagic", "mapi.RPC_HEADER_EXT_Flags.RHEF_XorMagic", FT_BOOLEAN, 16, TFS(&RPC_HEADER_EXT_Flags_RHEF_XorMagic_tfs), ( 0x0002 ), NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Size, + { "Size", "mapi.RPC_HEADER_EXT.Size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_SizeActual, + { "SizeActual", "mapi.RPC_HEADER_EXT.SizeActual", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RPC_HEADER_EXT_Version, + { "Version", "mapi.RPC_HEADER_EXT.Version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_repl_Data, + { "Data", "mapi.ReadPerUserInformation_repl.Data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_repl_HasFinished, + { "HasFinished", "mapi.ReadPerUserInformation_repl.HasFinished", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_req_DataOffset, + { "DataOffset", "mapi.ReadPerUserInformation_req.DataOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_req_FolderId, + { "FolderId", "mapi.ReadPerUserInformation_req.FolderId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_req_MaxDataSize, + { "MaxDataSize", "mapi.ReadPerUserInformation_req.MaxDataSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadPerUserInformation_req_WhatIfChanged, + { "WhatIfChanged", "mapi.ReadPerUserInformation_req.WhatIfChanged", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipientRow_CodePageId, + { "CodePageId", "mapi.ReadRecipientRow.CodePageId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipientRow_RecipientRow, + { "RecipientRow", "mapi.ReadRecipientRow.RecipientRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipientRow_RecipientType, + { "RecipientType", "mapi.ReadRecipientRow.RecipientType", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipientRow_RowId, + { "RowId", "mapi.ReadRecipientRow.RowId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipientRow_ulReserved, + { "UlReserved", "mapi.ReadRecipientRow.ulReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipients_repl_RecipientRows, + { "RecipientRows", "mapi.ReadRecipients_repl.RecipientRows", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipients_repl_RowCount, + { "RowCount", "mapi.ReadRecipients_repl.RowCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipients_req_RowId, + { "RowId", "mapi.ReadRecipients_req.RowId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadRecipients_req_ulReserved, + { "UlReserved", "mapi.ReadRecipients_req.ulReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadStream_repl_data, + { "Data", "mapi.ReadStream_repl.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadStream_req_ByteCount, + { "ByteCount", "mapi.ReadStream_req.ByteCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReadStream_req_MaximumByteCount, + { "MaximumByteCount", "mapi.ReadStream_req.MaximumByteCount", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReceiveFolder_fid, + { "Fid", "mapi.ReceiveFolder.fid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReceiveFolder_lpszMessageClass, + { "LpszMessageClass", "mapi.ReceiveFolder.lpszMessageClass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReceiveFolder_modiftime, + { "Modiftime", "mapi.ReceiveFolder.modiftime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReceiveFolder_unknown, + { "Unknown", "mapi.ReceiveFolder.unknown", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_mapi_RecipExchange_addr_type, { "Addr Type", "mapi.RecipExchange.addr_type", FT_UINT8, BASE_DEC, VALS(mapi_addr_type_vals), 0, NULL, HFILL }}, { &hf_mapi_RecipExchange_organization_length, { "Organization Length", "mapi.RecipExchange.organization_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_b, - { "B", "mapi.SPropValue_CTR.b", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_d, - { "D", "mapi.SPropValue_CTR.d", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_dbl, - { "Dbl", "mapi.SPropValue_CTR.dbl", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_err, - { "Err", "mapi.SPropValue_CTR.err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_ft, - { "Ft", "mapi.SPropValue_CTR.ft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_i, - { "I", "mapi.SPropValue_CTR.i", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_l, - { "L", "mapi.SPropValue_CTR.l", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_lpguid, - { "Lpguid", "mapi.SPropValue_CTR.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_lpszA, - { "LpszA", "mapi.SPropValue_CTR.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_CTR_lpszW, - { "LpszW", "mapi.SPropValue_CTR.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_SPropValue_ulPropTag, - { "UlPropTag", "mapi.SPropValue.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, - { &hf_mapi_SRow_ulRowFlags, - { "UlRowFlags", "mapi.SRow.ulRowFlags", FT_UINT8, BASE_DEC, VALS(mapi_ulRowFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_RecipExchange_username, + { "Username", "mapi.RecipExchange.username", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientBlock_PropertyValue, + { "PropertyValue", "mapi.RecipientBlock.PropertyValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientBlock_Reserved, + { "Reserved", "mapi.RecipientBlock.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_DisplayName, + { "DisplayName", "mapi.RecipientRow.DisplayName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_EmailAddress, + { "EmailAddress", "mapi.RecipientRow.EmailAddress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_RecipientFlags, + { "RecipientFlags", "mapi.RecipientRow.RecipientFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_SimpleDisplayName, + { "SimpleDisplayName", "mapi.RecipientRow.SimpleDisplayName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_TransmittableDisplayName, + { "TransmittableDisplayName", "mapi.RecipientRow.TransmittableDisplayName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_layout, + { "Layout", "mapi.RecipientRow.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_prop_count, + { "Prop Count", "mapi.RecipientRow.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_prop_values, + { "Prop Values", "mapi.RecipientRow.prop_values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RecipientRow_type, + { "Type", "mapi.RecipientRow.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RegisterNotification_req_layout, + { "Layout", "mapi.RegisterNotification_req.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RegisterNotification_req_notificationFlags, + { "NotificationFlags", "mapi.RegisterNotification_req.notificationFlags", FT_UINT16, BASE_DEC, VALS(mapi_NotificationFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_RegisterNotification_req_u, + { "U", "mapi.RegisterNotification_req.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_HasNamedProperties, + { "HasNamedProperties", "mapi.ReloadCachedInformation_repl.HasNamedProperties", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_NormalizedSubject, + { "NormalizedSubject", "mapi.ReloadCachedInformation_repl.NormalizedSubject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_RecipientColumns, + { "RecipientColumns", "mapi.ReloadCachedInformation_repl.RecipientColumns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_RecipientCount, + { "RecipientCount", "mapi.ReloadCachedInformation_repl.RecipientCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_RecipientRows, + { "RecipientRows", "mapi.ReloadCachedInformation_repl.RecipientRows", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_RowCount, + { "RowCount", "mapi.ReloadCachedInformation_repl.RowCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_repl_SubjectPrefix, + { "SubjectPrefix", "mapi.ReloadCachedInformation_repl.SubjectPrefix", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReloadCachedInformation_req_Reserved, + { "Reserved", "mapi.ReloadCachedInformation_req.Reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RemoveAllRecipients_req_ulReserved, + { "UlReserved", "mapi.RemoveAllRecipients_req.ulReserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReplyOOF_Action_ReplyTemplateFID, + { "ReplyTemplateFID", "mapi.ReplyOOF_Action.ReplyTemplateFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReplyOOF_Action_ReplyTemplateGUID, + { "ReplyTemplateGUID", "mapi.ReplyOOF_Action.ReplyTemplateGUID", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ReplyOOF_Action_ReplyTemplateMID, + { "ReplyTemplateMID", "mapi.ReplyOOF_Action.ReplyTemplateMID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ResponseFlags_ResponseFlags_OOF, + { "ResponseFlags OOF", "mapi.ResponseFlags.ResponseFlags_OOF", FT_BOOLEAN, 8, TFS(&ResponseFlags_ResponseFlags_OOF_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_ResponseFlags_ResponseFlags_OwnerRight, + { "ResponseFlags OwnerRight", "mapi.ResponseFlags.ResponseFlags_OwnerRight", FT_BOOLEAN, 8, TFS(&ResponseFlags_ResponseFlags_OwnerRight_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_ResponseFlags_ResponseFlags_Reserved, + { "ResponseFlags Reserved", "mapi.ResponseFlags.ResponseFlags_Reserved", FT_BOOLEAN, 8, TFS(&ResponseFlags_ResponseFlags_Reserved_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_ResponseFlags_ResponseFlags_SendAsRight, + { "ResponseFlags SendAsRight", "mapi.ResponseFlags.ResponseFlags_SendAsRight", FT_BOOLEAN, 8, TFS(&ResponseFlags_ResponseFlags_SendAsRight_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_ResponseHandleIndex, + { "ResponseHandleIndex", "mapi.rop.ResponseHandleIndex", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_Restrict_repl_TableStatus, + { "TableStatus", "mapi.Restrict_repl.TableStatus", FT_UINT8, BASE_DEC, VALS(mapi_TableStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_Restrict_req_handle_idx, + { "Handle Idx", "mapi.Restrict_req.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_Restrict_req_restrictions, + { "Restrictions", "mapi.Restrict_req.restrictions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RestrictionVariable_res, + { "Res", "mapi.RestrictionVariable.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RgbInSize, + { "RgbInSize", "mapi.RgbIn.RgbInSize", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_RgbIn_RpcHeaderExtension, + { "RpcHeaderExtension", "mapi.RgbIn.RpcHeaderExtension", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RgbIn_ropIn, + { "RopIn", "mapi.RgbIn.ropIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RgbOutSize, + { "RgbOutSize", "mapi.RgbOut.RgbOutSize", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_RgbOut_RpcHeaderExtension, + { "RpcHeaderExtension", "mapi.RgbOut.RpcHeaderExtension", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RgbOut_ropOut, + { "RopOut", "mapi.RgbOut.ropOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopBufferTooSmall_repl_SizeNeeded, + { "SizeNeeded", "mapi.RopBufferTooSmall_repl.SizeNeeded", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopInput_RopId, + { "RopId", "mapi.RopInput.RopId", FT_UINT8, BASE_DEC, VALS(mapi_ROP_OPNUM_vals), 0, NULL, HFILL }}, + { &hf_mapi_RopInput_u, + { "U", "mapi.RopInput.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopOutput_RopId, + { "RopId", "mapi.RopOutput.RopId", FT_UINT8, BASE_DEC, VALS(mapi_ROP_OPNUM_vals), 0, NULL, HFILL }}, + { &hf_mapi_RopOutput_u, + { "U", "mapi.RopOutput.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Abort, + { "Abort", "mapi.RopReply.Abort", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_AbortSubmit, + { "AbortSubmit", "mapi.RopReply.AbortSubmit", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_AddressTypes, + { "AddressTypes", "mapi.RopReply.AddressTypes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Advise, + { "Advise", "mapi.RopReply.Advise", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CloneStream, + { "CloneStream", "mapi.RopReply.CloneStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CollapseRow, + { "CollapseRow", "mapi.RopReply.CollapseRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CommitStream, + { "CommitStream", "mapi.RopReply.CommitStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CopyFolder, + { "CopyFolder", "mapi.RopReply.CopyFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CopyProperties, + { "CopyProperties", "mapi.RopReply.CopyProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CopyTo, + { "CopyTo", "mapi.RopReply.CopyTo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CopyToStream, + { "CopyToStream", "mapi.RopReply.CopyToStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CreateAttach, + { "CreateAttach", "mapi.RopReply.CreateAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CreateBookmark, + { "CreateBookmark", "mapi.RopReply.CreateBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CreateFolder, + { "CreateFolder", "mapi.RopReply.CreateFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_CreateMessage, + { "CreateMessage", "mapi.RopReply.CreateMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_DeleteAttach, + { "DeleteAttach", "mapi.RopReply.DeleteAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_DeleteFolder, + { "DeleteFolder", "mapi.RopReply.DeleteFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_DeleteMessages, + { "DeleteMessages", "mapi.RopReply.DeleteMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_DeletePropertiesNoReplicate, + { "DeletePropertiesNoReplicate", "mapi.RopReply.DeletePropertiesNoReplicate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_DeleteProps, + { "DeleteProps", "mapi.RopReply.DeleteProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_EmptyFolder, + { "EmptyFolder", "mapi.RopReply.EmptyFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ExpandRow, + { "ExpandRow", "mapi.RopReply.ExpandRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_FastTransferSourceGetBuffer, + { "FastTransferSourceGetBuffer", "mapi.RopReply.FastTransferSourceGetBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_FindRow, + { "FindRow", "mapi.RopReply.FindRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_FreeBookmark, + { "FreeBookmark", "mapi.RopReply.FreeBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetAttachmentTable, + { "GetAttachmentTable", "mapi.RopReply.GetAttachmentTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetCollapseState, + { "GetCollapseState", "mapi.RopReply.GetCollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetContentsTable, + { "GetContentsTable", "mapi.RopReply.GetContentsTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetHierarchyTable, + { "GetHierarchyTable", "mapi.RopReply.GetHierarchyTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetIDsFromNames, + { "GetIDsFromNames", "mapi.RopReply.GetIDsFromNames", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetLocalReplicaIds, + { "GetLocalReplicaIds", "mapi.RopReply.GetLocalReplicaIds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetNamesFromIDs, + { "GetNamesFromIDs", "mapi.RopReply.GetNamesFromIDs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetOwningServers, + { "GetOwningServers", "mapi.RopReply.GetOwningServers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetPerUserGuid, + { "GetPerUserGuid", "mapi.RopReply.GetPerUserGuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetPerUserLongTermIds, + { "GetPerUserLongTermIds", "mapi.RopReply.GetPerUserLongTermIds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetPermissionsTable, + { "GetPermissionsTable", "mapi.RopReply.GetPermissionsTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetPropList, + { "GetPropList", "mapi.RopReply.GetPropList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetProps, + { "GetProps", "mapi.RopReply.GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetPropsAll, + { "GetPropsAll", "mapi.RopReply.GetPropsAll", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetReceiveFolder, + { "GetReceiveFolder", "mapi.RopReply.GetReceiveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetReceiveFolderTable, + { "GetReceiveFolderTable", "mapi.RopReply.GetReceiveFolderTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetRulesTable, + { "GetRulesTable", "mapi.RopReply.GetRulesTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetSearchCriteria, + { "GetSearchCriteria", "mapi.RopReply.GetSearchCriteria", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetStatus, + { "GetStatus", "mapi.RopReply.GetStatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetStoreState, + { "GetStoreState", "mapi.RopReply.GetStoreState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetStreamSize, + { "GetStreamSize", "mapi.RopReply.GetStreamSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetTransportFolder, + { "GetTransportFolder", "mapi.RopReply.GetTransportFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_GetValidAttachments, + { "GetValidAttachments", "mapi.RopReply.GetValidAttachments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_HardDeleteMessages, + { "HardDeleteMessages", "mapi.RopReply.HardDeleteMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_HardDeleteMessagesAndSubfolders, + { "HardDeleteMessagesAndSubfolders", "mapi.RopReply.HardDeleteMessagesAndSubfolders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_IdFromLongTermId, + { "IdFromLongTermId", "mapi.RopReply.IdFromLongTermId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_LockRegionStream, + { "LockRegionStream", "mapi.RopReply.LockRegionStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Logon, + { "Logon", "mapi.RopReply.Logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_LongTermIdFromId, + { "LongTermIdFromId", "mapi.RopReply.LongTermIdFromId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ModifyPermissions, + { "ModifyPermissions", "mapi.RopReply.ModifyPermissions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ModifyRecipients, + { "ModifyRecipients", "mapi.RopReply.ModifyRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ModifyRules, + { "ModifyRules", "mapi.RopReply.ModifyRules", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_MoveCopyMessages, + { "MoveCopyMessages", "mapi.RopReply.MoveCopyMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_MoveFolder, + { "MoveFolder", "mapi.RopReply.MoveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Notify, + { "Notify", "mapi.RopReply.Notify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenAttach, + { "OpenAttach", "mapi.RopReply.OpenAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenEmbeddedMessage, + { "OpenEmbeddedMessage", "mapi.RopReply.OpenEmbeddedMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenFolder, + { "OpenFolder", "mapi.RopReply.OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenMessage, + { "OpenMessage", "mapi.RopReply.OpenMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenPublicFolderByName, + { "OpenPublicFolderByName", "mapi.RopReply.OpenPublicFolderByName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OpenStream, + { "OpenStream", "mapi.RopReply.OpenStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_OptionsData, + { "OptionsData", "mapi.RopReply.OptionsData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Pending, + { "Pending", "mapi.RopReply.Pending", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Progress, + { "Progress", "mapi.RopReply.Progress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_PublicFolderIsGhosted, + { "PublicFolderIsGhosted", "mapi.RopReply.PublicFolderIsGhosted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_QueryColumnsAll, + { "QueryColumnsAll", "mapi.RopReply.QueryColumnsAll", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_QueryNamedProperties, + { "QueryNamedProperties", "mapi.RopReply.QueryNamedProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_QueryPosition, + { "QueryPosition", "mapi.RopReply.QueryPosition", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_QueryRows, + { "QueryRows", "mapi.RopReply.QueryRows", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ReadPerUserInformation, + { "ReadPerUserInformation", "mapi.RopReply.ReadPerUserInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ReadRecipients, + { "ReadRecipients", "mapi.RopReply.ReadRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ReadStream, + { "ReadStream", "mapi.RopReply.ReadStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Release, + { "Release", "mapi.RopReply.Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ReloadCachedInformation, + { "ReloadCachedInformation", "mapi.RopReply.ReloadCachedInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_RemoveAllRecipients, + { "RemoveAllRecipients", "mapi.RopReply.RemoveAllRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_ResetTable, + { "ResetTable", "mapi.RopReply.ResetTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_Restrict, + { "Restrict", "mapi.RopReply.Restrict", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_RopBufferTooSmall, + { "RopBufferTooSmall", "mapi.RopReply.RopBufferTooSmall", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SaveChangesAttachment, + { "SaveChangesAttachment", "mapi.RopReply.SaveChangesAttachment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SaveChangesMessage, + { "SaveChangesMessage", "mapi.RopReply.SaveChangesMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SeekRow, + { "SeekRow", "mapi.RopReply.SeekRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SeekRowApprox, + { "SeekRowApprox", "mapi.RopReply.SeekRowApprox", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SeekRowBookmark, + { "SeekRowBookmark", "mapi.RopReply.SeekRowBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SeekStream, + { "SeekStream", "mapi.RopReply.SeekStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetCollapseState, + { "SetCollapseState", "mapi.RopReply.SetCollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetColumns, + { "SetColumns", "mapi.RopReply.SetColumns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetMessageReadFlag, + { "SetMessageReadFlag", "mapi.RopReply.SetMessageReadFlag", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetMessageStatus, + { "SetMessageStatus", "mapi.RopReply.SetMessageStatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetPropertiesNoReplicate, + { "SetPropertiesNoReplicate", "mapi.RopReply.SetPropertiesNoReplicate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetProps, + { "SetProps", "mapi.RopReply.SetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetReadFlags, + { "SetReadFlags", "mapi.RopReply.SetReadFlags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetReceiveFolder, + { "SetReceiveFolder", "mapi.RopReply.SetReceiveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetSearchCriteria, + { "SetSearchCriteria", "mapi.RopReply.SetSearchCriteria", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetSpooler, + { "SetSpooler", "mapi.RopReply.SetSpooler", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetStreamSize, + { "SetStreamSize", "mapi.RopReply.SetStreamSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SetSyncNotificationGuid, + { "SetSyncNotificationGuid", "mapi.RopReply.SetSyncNotificationGuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SortTable, + { "SortTable", "mapi.RopReply.SortTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SpoolerLockMessage, + { "SpoolerLockMessage", "mapi.RopReply.SpoolerLockMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SubmitMessage, + { "SubmitMessage", "mapi.RopReply.SubmitMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncConfigure, + { "SyncConfigure", "mapi.RopReply.SyncConfigure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncGetTransferState, + { "SyncGetTransferState", "mapi.RopReply.SyncGetTransferState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncImportDeletes, + { "SyncImportDeletes", "mapi.RopReply.SyncImportDeletes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncImportHierarchyChange, + { "SyncImportHierarchyChange", "mapi.RopReply.SyncImportHierarchyChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncImportMessageChange, + { "SyncImportMessageChange", "mapi.RopReply.SyncImportMessageChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncImportMessageMove, + { "SyncImportMessageMove", "mapi.RopReply.SyncImportMessageMove", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncImportReadStateChanges, + { "SyncImportReadStateChanges", "mapi.RopReply.SyncImportReadStateChanges", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncOpenCollector, + { "SyncOpenCollector", "mapi.RopReply.SyncOpenCollector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncUploadStateStreamBegin, + { "SyncUploadStateStreamBegin", "mapi.RopReply.SyncUploadStateStreamBegin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncUploadStateStreamContinue, + { "SyncUploadStateStreamContinue", "mapi.RopReply.SyncUploadStateStreamContinue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_SyncUploadStateStreamEnd, + { "SyncUploadStateStreamEnd", "mapi.RopReply.SyncUploadStateStreamEnd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_TransportNewMail, + { "TransportNewMail", "mapi.RopReply.TransportNewMail", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_TransportSend, + { "TransportSend", "mapi.RopReply.TransportSend", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_UnlockRegionStream, + { "UnlockRegionStream", "mapi.RopReply.UnlockRegionStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_UpdateDeferredActionMessages, + { "UpdateDeferredActionMessages", "mapi.RopReply.UpdateDeferredActionMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_WriteAndCommitStream, + { "WriteAndCommitStream", "mapi.RopReply.WriteAndCommitStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopReply_WriteStream, + { "WriteStream", "mapi.RopReply.WriteStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Abort, + { "Abort", "mapi.RopRequest.Abort", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_AbortSubmit, + { "AbortSubmit", "mapi.RopRequest.AbortSubmit", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_AddressTypes, + { "AddressTypes", "mapi.RopRequest.AddressTypes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Advise, + { "Advise", "mapi.RopRequest.Advise", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CloneStream, + { "CloneStream", "mapi.RopRequest.CloneStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CollapseRow, + { "CollapseRow", "mapi.RopRequest.CollapseRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CommitStream, + { "CommitStream", "mapi.RopRequest.CommitStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CopyFolder, + { "CopyFolder", "mapi.RopRequest.CopyFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CopyProperties, + { "CopyProperties", "mapi.RopRequest.CopyProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CopyTo, + { "CopyTo", "mapi.RopRequest.CopyTo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CopyToStream, + { "CopyToStream", "mapi.RopRequest.CopyToStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CreateAttach, + { "CreateAttach", "mapi.RopRequest.CreateAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CreateBookmark, + { "CreateBookmark", "mapi.RopRequest.CreateBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CreateFolder, + { "CreateFolder", "mapi.RopRequest.CreateFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_CreateMessage, + { "CreateMessage", "mapi.RopRequest.CreateMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_DeleteAttach, + { "DeleteAttach", "mapi.RopRequest.DeleteAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_DeleteFolder, + { "DeleteFolder", "mapi.RopRequest.DeleteFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_DeleteMessages, + { "DeleteMessages", "mapi.RopRequest.DeleteMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_DeletePropertiesNoReplicate, + { "DeletePropertiesNoReplicate", "mapi.RopRequest.DeletePropertiesNoReplicate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_DeleteProps, + { "DeleteProps", "mapi.RopRequest.DeleteProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_EmptyFolder, + { "EmptyFolder", "mapi.RopRequest.EmptyFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ExpandRow, + { "ExpandRow", "mapi.RopRequest.ExpandRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_FastTransferSourceGetBuffer, + { "FastTransferSourceGetBuffer", "mapi.RopRequest.FastTransferSourceGetBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_FindRow, + { "FindRow", "mapi.RopRequest.FindRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_FreeBookmark, + { "FreeBookmark", "mapi.RopRequest.FreeBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetAttachmentTable, + { "GetAttachmentTable", "mapi.RopRequest.GetAttachmentTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetCollapseState, + { "GetCollapseState", "mapi.RopRequest.GetCollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetContentsTable, + { "GetContentsTable", "mapi.RopRequest.GetContentsTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetHierarchyTable, + { "GetHierarchyTable", "mapi.RopRequest.GetHierarchyTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetIDsFromNames, + { "GetIDsFromNames", "mapi.RopRequest.GetIDsFromNames", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetLocalReplicaIds, + { "GetLocalReplicaIds", "mapi.RopRequest.GetLocalReplicaIds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetMessageStatus, + { "GetMessageStatus", "mapi.RopRequest.GetMessageStatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetNamesFromIDs, + { "GetNamesFromIDs", "mapi.RopRequest.GetNamesFromIDs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetOwningServers, + { "GetOwningServers", "mapi.RopRequest.GetOwningServers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetPerUserGuid, + { "GetPerUserGuid", "mapi.RopRequest.GetPerUserGuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetPerUserLongTermIds, + { "GetPerUserLongTermIds", "mapi.RopRequest.GetPerUserLongTermIds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetPermissionsTable, + { "GetPermissionsTable", "mapi.RopRequest.GetPermissionsTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetPropList, + { "GetPropList", "mapi.RopRequest.GetPropList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetProps, + { "GetProps", "mapi.RopRequest.GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetPropsAll, + { "GetPropsAll", "mapi.RopRequest.GetPropsAll", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetReceiveFolder, + { "GetReceiveFolder", "mapi.RopRequest.GetReceiveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetReceiveFolderTable, + { "GetReceiveFolderTable", "mapi.RopRequest.GetReceiveFolderTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetRulesTable, + { "GetRulesTable", "mapi.RopRequest.GetRulesTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetSearchCriteria, + { "GetSearchCriteria", "mapi.RopRequest.GetSearchCriteria", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetStatus, + { "GetStatus", "mapi.RopRequest.GetStatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetStoreState, + { "GetStoreState", "mapi.RopRequest.GetStoreState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetStreamSize, + { "GetStreamSize", "mapi.RopRequest.GetStreamSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetTransportFolder, + { "GetTransportFolder", "mapi.RopRequest.GetTransportFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_GetValidAttachments, + { "GetValidAttachments", "mapi.RopRequest.GetValidAttachments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_HardDeleteMessages, + { "HardDeleteMessages", "mapi.RopRequest.HardDeleteMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_HardDeleteMessagesAndSubfolders, + { "HardDeleteMessagesAndSubfolders", "mapi.RopRequest.HardDeleteMessagesAndSubfolders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_IdFromLongTermId, + { "IdFromLongTermId", "mapi.RopRequest.IdFromLongTermId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_LockRegionStream, + { "LockRegionStream", "mapi.RopRequest.LockRegionStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Logon, + { "Logon", "mapi.RopRequest.Logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_LongTermIdFromId, + { "LongTermIdFromId", "mapi.RopRequest.LongTermIdFromId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ModifyPermissions, + { "ModifyPermissions", "mapi.RopRequest.ModifyPermissions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ModifyRecipients, + { "ModifyRecipients", "mapi.RopRequest.ModifyRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ModifyRules, + { "ModifyRules", "mapi.RopRequest.ModifyRules", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_MoveCopyMessages, + { "MoveCopyMessages", "mapi.RopRequest.MoveCopyMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_MoveFolder, + { "MoveFolder", "mapi.RopRequest.MoveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenAttach, + { "OpenAttach", "mapi.RopRequest.OpenAttach", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenEmbeddedMessage, + { "OpenEmbeddedMessage", "mapi.RopRequest.OpenEmbeddedMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenFolder, + { "OpenFolder", "mapi.RopRequest.OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenMessage, + { "OpenMessage", "mapi.RopRequest.OpenMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenPublicFolderByName, + { "OpenPublicFolderByName", "mapi.RopRequest.OpenPublicFolderByName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OpenStream, + { "OpenStream", "mapi.RopRequest.OpenStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_OptionsData, + { "OptionsData", "mapi.RopRequest.OptionsData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Progress, + { "Progress", "mapi.RopRequest.Progress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_PublicFolderIsGhosted, + { "PublicFolderIsGhosted", "mapi.RopRequest.PublicFolderIsGhosted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_QueryColumnsAll, + { "QueryColumnsAll", "mapi.RopRequest.QueryColumnsAll", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_QueryNamedProperties, + { "QueryNamedProperties", "mapi.RopRequest.QueryNamedProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_QueryPosition, + { "QueryPosition", "mapi.RopRequest.QueryPosition", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_QueryRows, + { "QueryRows", "mapi.RopRequest.QueryRows", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ReadPerUserInformation, + { "ReadPerUserInformation", "mapi.RopRequest.ReadPerUserInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ReadRecipients, + { "ReadRecipients", "mapi.RopRequest.ReadRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ReadStream, + { "ReadStream", "mapi.RopRequest.ReadStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Release, + { "Release", "mapi.RopRequest.Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ReloadCachedInformation, + { "ReloadCachedInformation", "mapi.RopRequest.ReloadCachedInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_RemoveAllRecipients, + { "RemoveAllRecipients", "mapi.RopRequest.RemoveAllRecipients", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_ResetTable, + { "ResetTable", "mapi.RopRequest.ResetTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_Restrict, + { "Restrict", "mapi.RopRequest.Restrict", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SaveChangesAttachment, + { "SaveChangesAttachment", "mapi.RopRequest.SaveChangesAttachment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SaveChangesMessage, + { "SaveChangesMessage", "mapi.RopRequest.SaveChangesMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SeekRow, + { "SeekRow", "mapi.RopRequest.SeekRow", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SeekRowApprox, + { "SeekRowApprox", "mapi.RopRequest.SeekRowApprox", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SeekRowBookmark, + { "SeekRowBookmark", "mapi.RopRequest.SeekRowBookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SeekStream, + { "SeekStream", "mapi.RopRequest.SeekStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetCollapseState, + { "SetCollapseState", "mapi.RopRequest.SetCollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetColumns, + { "SetColumns", "mapi.RopRequest.SetColumns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetMessageReadFlag, + { "SetMessageReadFlag", "mapi.RopRequest.SetMessageReadFlag", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetMessageStatus, + { "SetMessageStatus", "mapi.RopRequest.SetMessageStatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetPropertiesNoReplicate, + { "SetPropertiesNoReplicate", "mapi.RopRequest.SetPropertiesNoReplicate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetProps, + { "SetProps", "mapi.RopRequest.SetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetReadFlags, + { "SetReadFlags", "mapi.RopRequest.SetReadFlags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetReceiveFolder, + { "SetReceiveFolder", "mapi.RopRequest.SetReceiveFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetSearchCriteria, + { "SetSearchCriteria", "mapi.RopRequest.SetSearchCriteria", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetSpooler, + { "SetSpooler", "mapi.RopRequest.SetSpooler", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetStreamSize, + { "SetStreamSize", "mapi.RopRequest.SetStreamSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SetSyncNotificationGuid, + { "SetSyncNotificationGuid", "mapi.RopRequest.SetSyncNotificationGuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SortTable, + { "SortTable", "mapi.RopRequest.SortTable", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SpoolerLockMessage, + { "SpoolerLockMessage", "mapi.RopRequest.SpoolerLockMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SubmitMessage, + { "SubmitMessage", "mapi.RopRequest.SubmitMessage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncConfigure, + { "SyncConfigure", "mapi.RopRequest.SyncConfigure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncGetTransferState, + { "SyncGetTransferState", "mapi.RopRequest.SyncGetTransferState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncImportDeletes, + { "SyncImportDeletes", "mapi.RopRequest.SyncImportDeletes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncImportHierarchyChange, + { "SyncImportHierarchyChange", "mapi.RopRequest.SyncImportHierarchyChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncImportMessageChange, + { "SyncImportMessageChange", "mapi.RopRequest.SyncImportMessageChange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncImportMessageMove, + { "SyncImportMessageMove", "mapi.RopRequest.SyncImportMessageMove", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncImportReadStateChanges, + { "SyncImportReadStateChanges", "mapi.RopRequest.SyncImportReadStateChanges", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncOpenCollector, + { "SyncOpenCollector", "mapi.RopRequest.SyncOpenCollector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncUploadStateStreamBegin, + { "SyncUploadStateStreamBegin", "mapi.RopRequest.SyncUploadStateStreamBegin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncUploadStateStreamContinue, + { "SyncUploadStateStreamContinue", "mapi.RopRequest.SyncUploadStateStreamContinue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_SyncUploadStateStreamEnd, + { "SyncUploadStateStreamEnd", "mapi.RopRequest.SyncUploadStateStreamEnd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_TransportNewMail, + { "TransportNewMail", "mapi.RopRequest.TransportNewMail", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_TransportSend, + { "TransportSend", "mapi.RopRequest.TransportSend", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_UnlockRegionStream, + { "UnlockRegionStream", "mapi.RopRequest.UnlockRegionStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_UpdateDeferredActionMessages, + { "UpdateDeferredActionMessages", "mapi.RopRequest.UpdateDeferredActionMessages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_WriteAndCommitStream, + { "WriteAndCommitStream", "mapi.RopRequest.WriteAndCommitStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RopRequest_WriteStream, + { "WriteStream", "mapi.RopRequest.WriteStream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RpcExt2Flags_Chain, + { "Chain", "mapi.RpcExt2Flags.Chain", FT_BOOLEAN, 32, TFS(&RpcExt2Flags_Chain_tfs), ( 0x00000004 ), NULL, HFILL }}, + { &hf_mapi_RpcExt2Flags_NoCompression, + { "NoCompression", "mapi.RpcExt2Flags.NoCompression", FT_BOOLEAN, 32, TFS(&RpcExt2Flags_NoCompression_tfs), ( 0x00000001 ), NULL, HFILL }}, + { &hf_mapi_RpcExt2Flags_NoXorMagic, + { "NoXorMagic", "mapi.RpcExt2Flags.NoXorMagic", FT_BOOLEAN, 32, TFS(&RpcExt2Flags_NoXorMagic_tfs), ( 0x00000002 ), NULL, HFILL }}, + { &hf_mapi_RuleAction_ActionBlock, + { "ActionBlock", "mapi.RuleAction.ActionBlock", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RuleAction_count, + { "Count", "mapi.RuleAction.count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RuleData_PropertyValues, + { "PropertyValues", "mapi.RuleData.PropertyValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_RuleData_RuleDataFlags, + { "RuleDataFlags", "mapi.RuleData.RuleDataFlags", FT_UINT8, BASE_DEC, VALS(mapi_ulRowFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_RulesTableFlags_RulesTableFlags_Unicode, + { "RulesTableFlags Unicode", "mapi.RulesTableFlags.RulesTableFlags_Unicode", FT_BOOLEAN, 8, TFS(&RulesTableFlags_RulesTableFlags_Unicode_tfs), ( 0x40 ), NULL, HFILL }}, + { &hf_mapi_SBinary_short_cb, + { "Cb", "mapi.SBinary_short.cb", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SBinary_short_lpb, + { "Lpb", "mapi.SBinary_short.lpb", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_and_res, + { "Res", "mapi.SRestriction_and.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_and_rt, + { "Rt", "mapi.SRestriction_and.rt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_comment_res, + { "Res", "mapi.SRestriction_comment.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_comment_rt, + { "Rt", "mapi.SRestriction_comment.rt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_or_res, + { "Res", "mapi.SRestriction_or.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_or_rt, + { "Rt", "mapi.SRestriction_or.rt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_sub_res, + { "Res", "mapi.SRestriction_sub.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SRestriction_sub_rt, + { "Rt", "mapi.SRestriction_sub.rt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SSortOrderSet_aSort, + { "ASort", "mapi.SSortOrderSet.aSort", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SSortOrderSet_cCategories, + { "CCategories", "mapi.SSortOrderSet.cCategories", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SSortOrderSet_cExpanded, + { "CExpanded", "mapi.SSortOrderSet.cExpanded", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SSortOrderSet_cSorts, + { "CSorts", "mapi.SSortOrderSet.cSorts", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SSortOrder_ulOrder, + { "UlOrder", "mapi.SSortOrder.ulOrder", FT_UINT8, BASE_DEC, VALS(mapi_TABLE_SORT_vals), 0, NULL, HFILL }}, + { &hf_mapi_SSortOrder_ulPropTag, + { "UlPropTag", "mapi.SSortOrder.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_SaveChangesAttachment_req_SaveFlags, + { "SaveFlags", "mapi.SaveChangesAttachment_req.SaveFlags", FT_UINT8, BASE_DEC, VALS(mapi_SaveFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_SaveChangesMessage_repl_MessageId, + { "MessageId", "mapi.SaveChangesMessage_repl.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SaveChangesMessage_repl_handle_idx, + { "Handle Idx", "mapi.SaveChangesMessage_repl.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SaveChangesMessage_req_SaveFlags, + { "SaveFlags", "mapi.SaveChangesMessage_req.SaveFlags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchCompleteNotification_FID, + { "FID", "mapi.SearchCompleteNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchFlags_BACKGROUND_SEARCH, + { "BACKGROUND SEARCH", "mapi.SearchFlags.BACKGROUND_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_BACKGROUND_SEARCH_tfs), ( 0x00000020 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_CONTENT_INDEXED_SEARCH, + { "CONTENT INDEXED SEARCH", "mapi.SearchFlags.CONTENT_INDEXED_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_CONTENT_INDEXED_SEARCH_tfs), ( 0x00010000 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_FOREGROUND_SEARCH, + { "FOREGROUND SEARCH", "mapi.SearchFlags.FOREGROUND_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_FOREGROUND_SEARCH_tfs), ( 0x00000010 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_NON_CONTENT_INDEXED_SEARCH, + { "NON CONTENT INDEXED SEARCH", "mapi.SearchFlags.NON_CONTENT_INDEXED_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_NON_CONTENT_INDEXED_SEARCH_tfs), ( 0x00020000 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_RECURSIVE_SEARCH, + { "RECURSIVE SEARCH", "mapi.SearchFlags.RECURSIVE_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_RECURSIVE_SEARCH_tfs), ( 0x00000004 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_RESTART_SEARCH, + { "RESTART SEARCH", "mapi.SearchFlags.RESTART_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_RESTART_SEARCH_tfs), ( 0x00000002 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_SHALLOW_SEARCH, + { "SHALLOW SEARCH", "mapi.SearchFlags.SHALLOW_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_SHALLOW_SEARCH_tfs), ( 0x00000008 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_STATIC_SEARCH, + { "STATIC SEARCH", "mapi.SearchFlags.STATIC_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_STATIC_SEARCH_tfs), ( 0x00040000 ), NULL, HFILL }}, + { &hf_mapi_SearchFlags_STOP_SEARCH, + { "STOP SEARCH", "mapi.SearchFlags.STOP_SEARCH", FT_BOOLEAN, 32, TFS(&SearchFlags_STOP_SEARCH_tfs), ( 0x00000001 ), NULL, HFILL }}, + { &hf_mapi_SearchMessageCreatedNotification_FID, + { "FID", "mapi.SearchMessageCreatedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageCreatedNotification_MID, + { "MID", "mapi.SearchMessageCreatedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageCreatedNotification_SearchFID, + { "SearchFID", "mapi.SearchMessageCreatedNotification.SearchFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageCreatedNotification_TagCount, + { "TagCount", "mapi.SearchMessageCreatedNotification.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageCreatedNotification_Tags, + { "Tags", "mapi.SearchMessageCreatedNotification.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageModifiedNotification_FID, + { "FID", "mapi.SearchMessageModifiedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageModifiedNotification_MID, + { "MID", "mapi.SearchMessageModifiedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageModifiedNotification_TagCount, + { "TagCount", "mapi.SearchMessageModifiedNotification.TagCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageModifiedNotification_Tags, + { "Tags", "mapi.SearchMessageModifiedNotification.Tags", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageRemovedNotification_FID, + { "FID", "mapi.SearchMessageRemovedNotification.FID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageRemovedNotification_MID, + { "MID", "mapi.SearchMessageRemovedNotification.MID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SearchMessageRemovedNotification_SearchFID, + { "SearchFID", "mapi.SearchMessageRemovedNotification.SearchFID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowApprox_req_ulDenominator, + { "UlDenominator", "mapi.SeekRowApprox_req.ulDenominator", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowApprox_req_ulNumerator, + { "UlNumerator", "mapi.SeekRowApprox_req.ulNumerator", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_repl_HasSoughtLess, + { "HasSoughtLess", "mapi.SeekRowBookmark_repl.HasSoughtLess", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_repl_RowNoLongerVisible, + { "RowNoLongerVisible", "mapi.SeekRowBookmark_repl.RowNoLongerVisible", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_repl_RowsSought, + { "RowsSought", "mapi.SeekRowBookmark_repl.RowsSought", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_req_Bookmark, + { "Bookmark", "mapi.SeekRowBookmark_req.Bookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_req_RowCount, + { "RowCount", "mapi.SeekRowBookmark_req.RowCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRowBookmark_req_WantRowMovedCount, + { "WantRowMovedCount", "mapi.SeekRowBookmark_req.WantRowMovedCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRow_repl_HasSoughtLess, + { "HasSoughtLess", "mapi.SeekRow_repl.HasSoughtLess", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRow_repl_RowsSought, + { "RowsSought", "mapi.SeekRow_repl.RowsSought", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRow_req_WantRowMovedCount, + { "WantRowMovedCount", "mapi.SeekRow_req.WantRowMovedCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRow_req_offset, + { "Offset", "mapi.SeekRow_req.offset", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekRow_req_origin, + { "Origin", "mapi.SeekRow_req.origin", FT_UINT8, BASE_DEC, VALS(mapi_BOOKMARK_vals), 0, NULL, HFILL }}, + { &hf_mapi_SeekStream_repl_NewPosition, + { "NewPosition", "mapi.SeekStream_repl.NewPosition", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekStream_req_Offset, + { "Offset", "mapi.SeekStream_req.Offset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SeekStream_req_Origin, + { "Origin", "mapi.SeekStream_req.Origin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SendOptions_SendOptions_ForUpload, + { "SendOptions ForUpload", "mapi.SendOptions.SendOptions_ForUpload", FT_BOOLEAN, 8, TFS(&SendOptions_SendOptions_ForUpload_tfs), ( 0x3 ), NULL, HFILL }}, + { &hf_mapi_SendOptions_SendOptions_ForceUnicode, + { "SendOptions ForceUnicode", "mapi.SendOptions.SendOptions_ForceUnicode", FT_BOOLEAN, 8, TFS(&SendOptions_SendOptions_ForceUnicode_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_SendOptions_SendOptions_Partial, + { "SendOptions Partial", "mapi.SendOptions.SendOptions_Partial", FT_BOOLEAN, 8, TFS(&SendOptions_SendOptions_Partial_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_SendOptions_SendOptions_RecoverMode, + { "SendOptions RecoverMode", "mapi.SendOptions.SendOptions_RecoverMode", FT_BOOLEAN, 8, TFS(&SendOptions_SendOptions_RecoverMode_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_SendOptions_SendOptions_Unicode, + { "SendOptions Unicode", "mapi.SendOptions.SendOptions_Unicode", FT_BOOLEAN, 8, TFS(&SendOptions_SendOptions_Unicode_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_SetCollapseState_repl_bookmark, + { "Bookmark", "mapi.SetCollapseState_repl.bookmark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetCollapseState_req_CollapseState, + { "CollapseState", "mapi.SetCollapseState_req.CollapseState", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetColumns_repl_TableStatus, + { "TableStatus", "mapi.SetColumns_repl.TableStatus", FT_UINT8, BASE_DEC, VALS(mapi_TableStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_SetColumns_req_SetColumnsFlags, + { "SetColumnsFlags", "mapi.SetColumns_req.SetColumnsFlags", FT_UINT8, BASE_DEC, VALS(mapi_SetColumnsFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_SetColumns_req_prop_count, + { "Prop Count", "mapi.SetColumns_req.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetColumns_req_properties, + { "Properties", "mapi.SetColumns_req.properties", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_ClientData_ClientData, + { "ClientData", "mapi.SetMessageReadFlag_ClientData.ClientData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_LogonId_LogonId, + { "LogonId", "mapi.SetMessageReadFlag_LogonId.LogonId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_repl_ClientData, + { "ClientData", "mapi.SetMessageReadFlag_repl.ClientData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_repl_LogonId, + { "LogonId", "mapi.SetMessageReadFlag_repl.LogonId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_repl_ReadStatusChanged, + { "ReadStatusChanged", "mapi.SetMessageReadFlag_repl.ReadStatusChanged", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_req_ReadFlags, + { "ReadFlags", "mapi.SetMessageReadFlag_req.ReadFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageReadFlag_req_clientdata, + { "Clientdata", "mapi.SetMessageReadFlag_req.clientdata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageStatus_repl_ulOldStatus, + { "UlOldStatus", "mapi.SetMessageStatus_repl.ulOldStatus", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageStatus_req_msgid, + { "Msgid", "mapi.SetMessageStatus_req.msgid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageStatus_req_ulNewStatus, + { "UlNewStatus", "mapi.SetMessageStatus_req.ulNewStatus", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetMessageStatus_req_ulNewStatusMask, + { "UlNewStatusMask", "mapi.SetMessageStatus_req.ulNewStatusMask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblem, + { "PropertyProblem", "mapi.SetPropertiesNoReplicate_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.SetPropertiesNoReplicate_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetPropertiesNoReplicate_req_values, + { "Values", "mapi.SetPropertiesNoReplicate_req.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetProps_repl_PropertyProblem, + { "PropertyProblem", "mapi.SetProps_repl.PropertyProblem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetProps_repl_PropertyProblemCount, + { "PropertyProblemCount", "mapi.SetProps_repl.PropertyProblemCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetProps_req_values, + { "Values", "mapi.SetProps_req.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReadFlags_repl_PartialCompletion, + { "PartialCompletion", "mapi.SetReadFlags_repl.PartialCompletion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReadFlags_req_MessageIdCount, + { "MessageIdCount", "mapi.SetReadFlags_req.MessageIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReadFlags_req_MessageIds, + { "MessageIds", "mapi.SetReadFlags_req.MessageIds", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReadFlags_req_ReadFlags, + { "ReadFlags", "mapi.SetReadFlags_req.ReadFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReadFlags_req_WantAsynchronous, + { "WantAsynchronous", "mapi.SetReadFlags_req.WantAsynchronous", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReceiveFolder_req_fid, + { "Fid", "mapi.SetReceiveFolder_req.fid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetReceiveFolder_req_lpszMessageClass, + { "LpszMessageClass", "mapi.SetReceiveFolder_req.lpszMessageClass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetSearchCriteria_req_FolderIdCount, + { "FolderIdCount", "mapi.SetSearchCriteria_req.FolderIdCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetSearchCriteria_req_FolderIds, + { "FolderIds", "mapi.SetSearchCriteria_req.FolderIds", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetSearchCriteria_req_SearchFlags, + { "SearchFlags", "mapi.SetSearchCriteria_req.SearchFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetSearchCriteria_req_res, + { "Res", "mapi.SetSearchCriteria_req.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetStreamSize_req_SizeStream, + { "SizeStream", "mapi.SetStreamSize_req.SizeStream", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SetSyncNotificationGuid_req_NotificationGuid, + { "NotificationGuid", "mapi.SetSyncNotificationGuid_req.NotificationGuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ShortArray_r_cValues, + { "CValues", "mapi.ShortArray_r.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_ShortArray_r_lpi, + { "Lpi", "mapi.ShortArray_r.lpi", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SortTable_repl_TableStatus, + { "TableStatus", "mapi.SortTable_repl.TableStatus", FT_UINT8, BASE_DEC, VALS(mapi_TableStatus_vals), 0, NULL, HFILL }}, + { &hf_mapi_SortTable_req_SortTableFlags, + { "SortTableFlags", "mapi.SortTable_req.SortTableFlags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SortTable_req_lpSortCriteria, + { "LpSortCriteria", "mapi.SortTable_req.lpSortCriteria", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SpoolerLockMessage_req_LockState, + { "LockState", "mapi.SpoolerLockMessage_req.LockState", FT_UINT8, BASE_DEC, VALS(mapi_LockState_vals), 0, NULL, HFILL }}, + { &hf_mapi_SpoolerLockMessage_req_MessageId, + { "MessageId", "mapi.SpoolerLockMessage_req.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_StoreState_STORE_HAS_SEARCHES, + { "STORE HAS SEARCHES", "mapi.StoreState.STORE_HAS_SEARCHES", FT_BOOLEAN, 32, TFS(&StoreState_STORE_HAS_SEARCHES_tfs), ( 0x010000000 ), NULL, HFILL }}, + { &hf_mapi_String_lpszA, + { "LpszA", "mapi.String.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_String_lpszW, + { "LpszW", "mapi.String.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_String_lpszW_reduced, + { "LpszW Reduced", "mapi.String.lpszW_reduced", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SubmitMessage_req_SubmitFlags, + { "SubmitFlags", "mapi.SubmitMessage_req.SubmitFlags", FT_UINT8, BASE_DEC, VALS(mapi_SubmitFlags_vals), 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_PropertyTags, + { "PropertyTags", "mapi.SyncConfigure_req.PropertyTags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_RestrictionData, + { "RestrictionData", "mapi.SyncConfigure_req.RestrictionData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_SendOptions, + { "SendOptions", "mapi.SyncConfigure_req.SendOptions", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_SynchronizationExtraFlags, + { "SynchronizationExtraFlags", "mapi.SyncConfigure_req.SynchronizationExtraFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_SynchronizationFlag, + { "SynchronizationFlag", "mapi.SyncConfigure_req.SynchronizationFlag", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncConfigure_req_SynchronizationType, + { "SynchronizationType", "mapi.SyncConfigure_req.SynchronizationType", FT_UINT8, BASE_DEC, VALS(mapi_SynchronizationType_vals), 0, NULL, HFILL }}, + { &hf_mapi_SyncImportDeletes_req_IsHierarchy, + { "IsHierarchy", "mapi.SyncImportDeletes_req.IsHierarchy", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportDeletes_req_PropertyValues, + { "PropertyValues", "mapi.SyncImportDeletes_req.PropertyValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportHierarchyChange_repl_FolderId, + { "FolderId", "mapi.SyncImportHierarchyChange_repl.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportHierarchyChange_req_HierarchyValues, + { "HierarchyValues", "mapi.SyncImportHierarchyChange_req.HierarchyValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportHierarchyChange_req_PropertyValues, + { "PropertyValues", "mapi.SyncImportHierarchyChange_req.PropertyValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageChange_repl_MessageId, + { "MessageId", "mapi.SyncImportMessageChange_repl.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageChange_req_ImportFlag, + { "ImportFlag", "mapi.SyncImportMessageChange_req.ImportFlag", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageChange_req_PropertyValues, + { "PropertyValues", "mapi.SyncImportMessageChange_req.PropertyValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_repl_MessageId, + { "MessageId", "mapi.SyncImportMessageMove_repl.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_ChangeNumberSize, + { "ChangeNumberSize", "mapi.SyncImportMessageMove_req.ChangeNumberSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_ChangeNumberValue, + { "ChangeNumber", "mapi.SyncImportMessageMove_req.ChangeNumber", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_DestinationMessageIdSize, + { "DestinationMessageIdSize", "mapi.SyncImportMessageMove_req.DestinationMessageIdSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_DestinationMessageIdValue, + { "DestinationMessageId", "mapi.SyncImportMessageMove_req.DestinationMessageId", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_PredecessorChangeListSize, + { "PredecessorChangeListSize", "mapi.SyncImportMessageMove_req.PredecessorChangeListSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_PredecessorChangeListValue, + { "PredecessorChangeList", "mapi.SyncImportMessageMove_req.PredecessorChangeList", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_SourceFolderIdSize, + { "SourceFolderIdSize", "mapi.SyncImportMessageMove_req.SourceFolderIdSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_SourceFolderIdValue, + { "SourceFolderId", "mapi.SyncImportMessageMove_req.SourceFolderId", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_SourceMessageIdSize, + { "SourceMessageIdSize", "mapi.SyncImportMessageMove_req.SourceMessageIdSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncImportMessageMove_req_SourceMessageIdValue, + { "SourceMessageId", "mapi.SyncImportMessageMove_req.SourceMessageId", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SyncImportReadStateChanges_req_MessageStates, + { "MessageStates", "mapi.SyncImportReadStateChanges_req.MessageStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncOpenCollector_req_IsContentsCollector, + { "IsContentsCollector", "mapi.SyncOpenCollector_req.IsContentsCollector", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncUploadStateStreamBegin_req_StateProperty, + { "StateProperty", "mapi.SyncUploadStateStreamBegin_req.StateProperty", FT_UINT32, BASE_DEC, VALS(mapi_StateProperty_vals), 0, NULL, HFILL }}, + { &hf_mapi_SyncUploadStateStreamBegin_req_TransferBufferSize, + { "TransferBufferSize", "mapi.SyncUploadStateStreamBegin_req.TransferBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncUploadStateStreamContinue_req_StreamDataSize, + { "StreamDataSize", "mapi.SyncUploadStateStreamContinue_req.StreamDataSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_SyncUploadStateStreamContinue_req_StreamDataValue, + { "StreamData", "mapi.SyncUploadStateStreamContinue_req.StreamData", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_SynchronizationExtraFlags_Cn, + { "Cn", "mapi.SynchronizationExtraFlags.Cn", FT_BOOLEAN, 32, TFS(&SynchronizationExtraFlags_Cn_tfs), ( 0x00000004 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationExtraFlags_Eid, + { "Eid", "mapi.SynchronizationExtraFlags.Eid", FT_BOOLEAN, 32, TFS(&SynchronizationExtraFlags_Eid_tfs), ( 0x00000001 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationExtraFlags_MessageSize, + { "MessageSize", "mapi.SynchronizationExtraFlags.MessageSize", FT_BOOLEAN, 32, TFS(&SynchronizationExtraFlags_MessageSize_tfs), ( 0x00000002 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationExtraFlags_OrderByDeliveryTime, + { "OrderByDeliveryTime", "mapi.SynchronizationExtraFlags.OrderByDeliveryTime", FT_BOOLEAN, 32, TFS(&SynchronizationExtraFlags_OrderByDeliveryTime_tfs), ( 0x00000008 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_BestBody, + { "SynchronizationFlag BestBody", "mapi.SynchronizationFlag.SynchronizationFlag_BestBody", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_BestBody_tfs), ( 0x2000 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_FAI, + { "SynchronizationFlag FAI", "mapi.SynchronizationFlag.SynchronizationFlag_FAI", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_FAI_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI, + { "SynchronizationFlag IgnoreSpecifiedOnFAI", "mapi.SynchronizationFlag.SynchronizationFlag_IgnoreSpecifiedOnFAI", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI_tfs), ( 0x4000 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoDeletions, + { "SynchronizationFlag NoDeletions", "mapi.SynchronizationFlag.SynchronizationFlag_NoDeletions", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_NoDeletions_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers, + { "SynchronizationFlag NoForeignIdentifiers", "mapi.SynchronizationFlag.SynchronizationFlag_NoForeignIdentifiers", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers_tfs), ( 0x100 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_NoSoftDeletions, + { "SynchronizationFlag NoSoftDeletions", "mapi.SynchronizationFlag.SynchronizationFlag_NoSoftDeletions", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_NoSoftDeletions_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_Normal, + { "SynchronizationFlag Normal", "mapi.SynchronizationFlag.SynchronizationFlag_Normal", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_Normal_tfs), ( 0x20 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties, + { "SynchronizationFlag OnlySpecifiedProperties", "mapi.SynchronizationFlag.SynchronizationFlag_OnlySpecifiedProperties", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties_tfs), ( 0x80 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_Progress, + { "SynchronizationFlag Progress", "mapi.SynchronizationFlag.SynchronizationFlag_Progress", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_Progress_tfs), ( 0x8000 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_ReadState, + { "SynchronizationFlag ReadState", "mapi.SynchronizationFlag.SynchronizationFlag_ReadState", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_ReadState_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_Reserved, + { "SynchronizationFlag Reserved", "mapi.SynchronizationFlag.SynchronizationFlag_Reserved", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_Reserved_tfs), ( 0x1000 ), NULL, HFILL }}, + { &hf_mapi_SynchronizationFlag_SynchronizationFlag_Unicode, + { "SynchronizationFlag Unicode", "mapi.SynchronizationFlag.SynchronizationFlag_Unicode", FT_BOOLEAN, 16, TFS(&SynchronizationFlag_SynchronizationFlag_Unicode_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_DeferredErrors, + { "TableFlags DeferredErrors", "mapi.TableFlags.TableFlags_DeferredErrors", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_DeferredErrors_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_Depth, + { "TableFlags Depth", "mapi.TableFlags.TableFlags_Depth", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_Depth_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_NoNotifications, + { "TableFlags NoNotifications", "mapi.TableFlags.TableFlags_NoNotifications", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_NoNotifications_tfs), ( 0x10 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_SoftDeletes, + { "TableFlags SoftDeletes", "mapi.TableFlags.TableFlags_SoftDeletes", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_SoftDeletes_tfs), ( 0x20 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_SuppressNotifications, + { "TableFlags SuppressNotifications", "mapi.TableFlags.TableFlags_SuppressNotifications", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_SuppressNotifications_tfs), ( 0x80 ), NULL, HFILL }}, + { &hf_mapi_TableFlags_TableFlags_UseUnicode, + { "TableFlags UseUnicode", "mapi.TableFlags.TableFlags_UseUnicode", FT_BOOLEAN, 8, TFS(&TableFlags_TableFlags_UseUnicode_tfs), ( 0x40 ), NULL, HFILL }}, + { &hf_mapi_TransportNewMail_req_FolderId, + { "FolderId", "mapi.TransportNewMail_req.FolderId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportNewMail_req_MessageClass, + { "MessageClass", "mapi.TransportNewMail_req.MessageClass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportNewMail_req_MessageFlags, + { "MessageFlags", "mapi.TransportNewMail_req.MessageFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportNewMail_req_MessageId, + { "MessageId", "mapi.TransportNewMail_req.MessageId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportSend_lpProps_lpProps, + { "LpProps", "mapi.TransportSend_lpProps.lpProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportSend_repl_NoPropertiesReturned, + { "NoPropertiesReturned", "mapi.TransportSend_repl.NoPropertiesReturned", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TransportSend_repl_properties, + { "Properties", "mapi.TransportSend_repl.properties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TypedString_String, + { "String", "mapi.TypedString.String", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_TypedString_StringType, + { "StringType", "mapi.TypedString.StringType", FT_UINT8, BASE_DEC, VALS(mapi_StringType_vals), 0, NULL, HFILL }}, + { &hf_mapi_UnlockRegionStream_req_LockFlags, + { "LockFlags", "mapi.UnlockRegionStream_req.LockFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_UnlockRegionStream_req_RegionOffset, + { "RegionOffset", "mapi.UnlockRegionStream_req.RegionOffset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_UnlockRegionStream_req_RegionSize, + { "RegionSize", "mapi.UnlockRegionStream_req.RegionSize", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_UpdateDeferredActionMessages_req_ClientEntryId, + { "ClientEntryId", "mapi.UpdateDeferredActionMessages_req.ClientEntryId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_UpdateDeferredActionMessages_req_ServerEntryId, + { "ServerEntryId", "mapi.UpdateDeferredActionMessages_req.ServerEntryId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_WriteAndCommitStream_repl_WrittenSize, + { "WrittenSize", "mapi.WriteAndCommitStream_repl.WrittenSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_WriteAndCommitStream_req_data, + { "Data", "mapi.WriteAndCommitStream_req.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_WriteStream_repl_WrittenSize, + { "WrittenSize", "mapi.WriteStream_repl.WrittenSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_WriteStream_req_data, + { "Data", "mapi.WriteStream_req.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_mapi_decrypted_data, { "Decrypted data", "mapi.decrypted.data", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_handle, - { "Handle", "mapi.handle", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }}, - { &hf_mapi_input_locale_language, - { "Language", "mapi.input_locale.language", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_input_locale_method, - { "Method", "mapi.input_locale.method", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_mapi_request_mapi_req, - { "Mapi Req", "mapi.mapi_request.mapi_req", FT_NONE, BASE_NONE, NULL, 0, "HFILL", HFILL }}, - { &hf_mapi_mapi_response_mapi_repl, - { "Mapi Repl", "mapi.mapi_response.mapi_repl", FT_NONE, BASE_NONE, NULL, 0, "NULL", HFILL }}, + { &hf_mapi_fuzzyLevel_FL_IGNORECASE, + { "FL IGNORECASE", "mapi.fuzzyLevel.FL_IGNORECASE", FT_BOOLEAN, 32, TFS(&fuzzyLevel_FL_IGNORECASE_tfs), ( 0x10000 ), NULL, HFILL }}, + { &hf_mapi_fuzzyLevel_FL_IGNORENONSPACE, + { "FL IGNORENONSPACE", "mapi.fuzzyLevel.FL_IGNORENONSPACE", FT_BOOLEAN, 32, TFS(&fuzzyLevel_FL_IGNORENONSPACE_tfs), ( 0x20000 ), NULL, HFILL }}, + { &hf_mapi_fuzzyLevel_FL_LOOSE, + { "FL LOOSE", "mapi.fuzzyLevel.FL_LOOSE", FT_BOOLEAN, 32, TFS(&fuzzyLevel_FL_LOOSE_tfs), ( 0x40000 ), NULL, HFILL }}, + { &hf_mapi_fuzzyLevel_FL_PREFIX, + { "FL PREFIX", "mapi.fuzzyLevel.FL_PREFIX", FT_BOOLEAN, 32, TFS(&fuzzyLevel_FL_PREFIX_tfs), ( 0x00002 ), NULL, HFILL }}, + { &hf_mapi_fuzzyLevel_FL_SUBSTRING, + { "FL SUBSTRING", "mapi.fuzzyLevel.FL_SUBSTRING", FT_BOOLEAN, 32, TFS(&fuzzyLevel_FL_SUBSTRING_tfs), ( 0x00001 ), NULL, HFILL }}, + { &hf_mapi_hyperbool_ID, + { "ID", "mapi.hyperbool.ID", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncConnectEx_cxh, + { "Cxh", "mapi.mapi_EcDoAsyncConnectEx.cxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncConnectEx_pacxh, + { "Pacxh", "mapi.mapi_EcDoAsyncConnectEx.pacxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncConnect_cxh, + { "Cxh", "mapi.mapi_EcDoAsyncConnect.cxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncConnect_pacxh, + { "Pacxh", "mapi.mapi_EcDoAsyncConnect.pacxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncWait_cxh, + { "Cxh", "mapi.mapi_EcDoAsyncWait.cxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut, + { "PulFlagsOut", "mapi.mapi_EcDoAsyncWait.pulFlagsOut", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoAsyncWait_ulFlagsIn, + { "UlFlagsIn", "mapi.mapi_EcDoAsyncWait.ulFlagsIn", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_cbAuxIn, + { "CbAuxIn", "mapi.mapi_EcDoConnectEx.cbAuxIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_cbLimit, + { "CbLimit", "mapi.mapi_EcDoConnectEx.cbLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_handle, + { "Handle", "mapi.mapi_EcDoConnectEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_pcRetry, + { "PcRetry", "mapi.mapi_EcDoConnectEx.pcRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_pcbAuxOut, + { "PcbAuxOut", "mapi.mapi_EcDoConnectEx.pcbAuxOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax, + { "PcmsPollsMax", "mapi.mapi_EcDoConnectEx.pcmsPollsMax", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay, + { "PcmsRetryDelay", "mapi.mapi_EcDoConnectEx.pcmsRetryDelay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_picxr, + { "Picxr", "mapi.mapi_EcDoConnectEx.picxr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_pulTimeStamp, + { "PulTimeStamp", "mapi.mapi_EcDoConnectEx.pulTimeStamp", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_rgbAuxIn, + { "RgbAuxIn", "mapi.mapi_EcDoConnectEx.rgbAuxIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_rgbAuxOut, + { "RgbAuxOut", "mapi.mapi_EcDoConnectEx.rgbAuxOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_rgwBestVersion, + { "RgwBestVersion", "mapi.mapi_EcDoConnectEx.rgwBestVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_rgwClientVersion, + { "RgwClientVersion", "mapi.mapi_EcDoConnectEx.rgwClientVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_rgwServerVersion, + { "RgwServerVersion", "mapi.mapi_EcDoConnectEx.rgwServerVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_szDNPrefix, + { "SzDNPrefix", "mapi.mapi_EcDoConnectEx.szDNPrefix", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_szDisplayName, + { "SzDisplayName", "mapi.mapi_EcDoConnectEx.szDisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_szUserDN, + { "SzUserDN", "mapi.mapi_EcDoConnectEx.szUserDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulConMod, + { "UlConMod", "mapi.mapi_EcDoConnectEx.ulConMod", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulCpid, + { "UlCpid", "mapi.mapi_EcDoConnectEx.ulCpid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulFlags, + { "UlFlags", "mapi.mapi_EcDoConnectEx.ulFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulIcxrLink, + { "UlIcxrLink", "mapi.mapi_EcDoConnectEx.ulIcxrLink", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulLcidSort, + { "UlLcidSort", "mapi.mapi_EcDoConnectEx.ulLcidSort", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_ulLcidString, + { "UlLcidString", "mapi.mapi_EcDoConnectEx.ulLcidString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnectEx_usFCanConvertCodePages, + { "UsFCanConvertCodePages", "mapi.mapi_EcDoConnectEx.usFCanConvertCodePages", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_cbLimit, + { "CbLimit", "mapi.mapi_EcDoConnect.cbLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_hBinding, + { "HBinding", "mapi.mapi_EcDoConnect.hBinding", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_pcRetry, + { "PcRetry", "mapi.mapi_EcDoConnect.pcRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_pcmsPollsMax, + { "PcmsPollsMax", "mapi.mapi_EcDoConnect.pcmsPollsMax", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_pcmsRetryDelay, + { "PcmsRetryDelay", "mapi.mapi_EcDoConnect.pcmsRetryDelay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_picxr, + { "Picxr", "mapi.mapi_EcDoConnect.picxr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_pullTimeStamp, + { "PullTimeStamp", "mapi.mapi_EcDoConnect.pullTimeStamp", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_rgwBestVersion, + { "RgwBestVersion", "mapi.mapi_EcDoConnect.rgwBestVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_rgwClientVersion, + { "RgwClientVersion", "mapi.mapi_EcDoConnect.rgwClientVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_rgwServerVersion, + { "RgwServerVersion", "mapi.mapi_EcDoConnect.rgwServerVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_szDNPrefix, + { "SzDNPrefix", "mapi.mapi_EcDoConnect.szDNPrefix", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_szDisplayName, + { "SzDisplayName", "mapi.mapi_EcDoConnect.szDisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_szUserDN, + { "SzUserDN", "mapi.mapi_EcDoConnect.szUserDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulConMod, + { "UlConMod", "mapi.mapi_EcDoConnect.ulConMod", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulCpid, + { "UlCpid", "mapi.mapi_EcDoConnect.ulCpid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulFlags, + { "UlFlags", "mapi.mapi_EcDoConnect.ulFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulIcxrLink, + { "UlIcxrLink", "mapi.mapi_EcDoConnect.ulIcxrLink", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulLcidSort, + { "UlLcidSort", "mapi.mapi_EcDoConnect.ulLcidSort", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_ulLcidString, + { "UlLcidString", "mapi.mapi_EcDoConnect.ulLcidString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoConnect_usFCanConvertCodePages, + { "UsFCanConvertCodePages", "mapi.mapi_EcDoConnect.usFCanConvertCodePages", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoDisconnect_pcxh, + { "Pcxh", "mapi.mapi_EcDoDisconnect.pcxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_cbAuxIn, + { "CbAuxIn", "mapi.mapi_EcDoRpcExt2.cbAuxIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_cbIn, + { "CbIn", "mapi.mapi_EcDoRpcExt2.cbIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut, + { "PcbAuxOut", "mapi.mapi_EcDoRpcExt2.pcbAuxOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_pcbOut, + { "PcbOut", "mapi.mapi_EcDoRpcExt2.pcbOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_pcxh, + { "Pcxh", "mapi.mapi_EcDoRpcExt2.pcxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_pulFlags, + { "PulFlags", "mapi.mapi_EcDoRpcExt2.pulFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_pulTransTime, + { "PulTransTime", "mapi.mapi_EcDoRpcExt2.pulTransTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn, + { "RgbAuxIn", "mapi.mapi_EcDoRpcExt2.rgbAuxIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut, + { "RgbAuxOut", "mapi.mapi_EcDoRpcExt2.rgbAuxOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_rgbIn, + { "RgbIn", "mapi.mapi_EcDoRpcExt2.rgbIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt2_rgbOut, + { "RgbOut", "mapi.mapi_EcDoRpcExt2.rgbOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_cbAuxIn, + { "CbAuxIn", "mapi.mapi_EcDoRpcExt.cbAuxIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_cbIn, + { "CbIn", "mapi.mapi_EcDoRpcExt.cbIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_pcbOut, + { "PcbOut", "mapi.mapi_EcDoRpcExt.pcbOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_pcxh, + { "Pcxh", "mapi.mapi_EcDoRpcExt.pcxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_pulFlags, + { "PulFlags", "mapi.mapi_EcDoRpcExt.pulFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_pulTransTime, + { "PulTransTime", "mapi.mapi_EcDoRpcExt.pulTransTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_rgbAuxIn, + { "RgbAuxIn", "mapi.mapi_EcDoRpcExt.rgbAuxIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_rgbIn, + { "RgbIn", "mapi.mapi_EcDoRpcExt.rgbIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpcExt_rgbOut, + { "RgbOut", "mapi.mapi_EcDoRpcExt.rgbOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_handle, + { "Handle", "mapi.mapi_EcDoRpc.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_length, + { "Length", "mapi.mapi_EcDoRpc.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_mapi_request, + { "Mapi Request", "mapi.mapi_EcDoRpc.mapi_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_mapi_response, + { "Mapi Response", "mapi.mapi_EcDoRpc.mapi_response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_max_data, + { "Max Data", "mapi.mapi_EcDoRpc.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_offset, + { "Offset", "mapi.mapi_EcDoRpc.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcDoRpc_size, + { "Size", "mapi.mapi_EcDoRpc.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcGetMoreRpc_pcxh, + { "Pcxh", "mapi.mapi_EcGetMoreRpc.pcxh", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcGetMoreRpc_pusLength, + { "PusLength", "mapi.mapi_EcGetMoreRpc.pusLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcGetMoreRpc_rgb, + { "Rgb", "mapi.mapi_EcGetMoreRpc.rgb", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcGetMoreRpc_usSize, + { "UsSize", "mapi.mapi_EcGetMoreRpc.usSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRGetDCName_handle, + { "Handle", "mapi.mapi_EcRGetDCName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRGetDCName_rgchDomainController, + { "RgchDomainController", "mapi.mapi_EcRGetDCName.rgchDomainController", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRGetDCName_szDomainName, + { "SzDomainName", "mapi.mapi_EcRGetDCName.szDomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRNetGetDCName_rgchDomainController, + { "RgchDomainController", "mapi.mapi_EcRNetGetDCName.rgchDomainController", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRNetGetDCName_szDomainName, + { "SzDomainName", "mapi.mapi_EcRNetGetDCName.szDomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_cbCallbackAddress, + { "CbCallbackAddress", "mapi.mapi_EcRRegisterPushNotification.cbCallbackAddress", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_cbContext, + { "CbContext", "mapi.mapi_EcRRegisterPushNotification.cbContext", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_grbitMapiAdviseBits, + { "GrbitMapiAdviseBits", "mapi.mapi_EcRRegisterPushNotification.grbitMapiAdviseBits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_hNotification, + { "HNotification", "mapi.mapi_EcRRegisterPushNotification.hNotification", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_handle, + { "Handle", "mapi.mapi_EcRRegisterPushNotification.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_iRpc, + { "IRpc", "mapi.mapi_EcRRegisterPushNotification.iRpc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress, + { "RgbCallbackAddress", "mapi.mapi_EcRRegisterPushNotification.rgbCallbackAddress", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRRegisterPushNotification_rgbContext, + { "RgbContext", "mapi.mapi_EcRRegisterPushNotification.rgbContext", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRUnregisterPushNotification_hNotification, + { "HNotification", "mapi.mapi_EcRUnregisterPushNotification.hNotification", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRUnregisterPushNotification_handle, + { "Handle", "mapi.mapi_EcRUnregisterPushNotification.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_EcRUnregisterPushNotification_iRpc, + { "IRpc", "mapi.mapi_EcRUnregisterPushNotification.iRpc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_LPSTR_lppszA, + { "LppszA", "mapi.mapi_LPSTR.lppszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_LPWSTR_lppszW, + { "LppszW", "mapi.mapi_LPWSTR.lppszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_MV_LONG_STRUCT_cValues, + { "CValues", "mapi.mapi_MV_LONG_STRUCT.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_MV_LONG_STRUCT_lpl, + { "Lpl", "mapi.mapi_MV_LONG_STRUCT.lpl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_PermissionsData_ModifyCount, + { "ModifyCount", "mapi.mapi_PermissionsData.ModifyCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_PermissionsData_ModifyFlags, + { "ModifyFlags", "mapi.mapi_PermissionsData.ModifyFlags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_PermissionsData_PermissionsData, + { "PermissionsData", "mapi.mapi_PermissionsData.PermissionsData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SAndRestriction_cRes, + { "CRes", "mapi.mapi_SAndRestriction.cRes", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SAndRestriction_res, + { "Res", "mapi.mapi_SAndRestriction.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SBinaryArray_bin, + { "Bin", "mapi.mapi_SBinaryArray.bin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SBinaryArray_cValues, + { "CValues", "mapi.mapi_SBinaryArray.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SBitmaskRestriction_relMBR, + { "RelMBR", "mapi.mapi_SBitmaskRestriction.relMBR", FT_UINT8, BASE_DEC, VALS(mapi_relMBR_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SBitmaskRestriction_ulMask, + { "UlMask", "mapi.mapi_SBitmaskRestriction.ulMask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SBitmaskRestriction_ulPropTag, + { "UlPropTag", "mapi.mapi_SBitmaskRestriction.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCommentRestriction_Restriction, + { "Restriction", "mapi.mapi_SCommentRestriction.Restriction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCommentRestriction_RestrictionPresent, + { "RestrictionPresent", "mapi.mapi_SCommentRestriction.RestrictionPresent", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCommentRestriction_TaggedValues, + { "TaggedValues", "mapi.mapi_SCommentRestriction.TaggedValues", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCommentRestriction_TaggedValuesCount, + { "TaggedValuesCount", "mapi.mapi_SCommentRestriction.TaggedValuesCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCompareProps_relop, + { "Relop", "mapi.mapi_SCompareProps.relop", FT_UINT8, BASE_DEC, VALS(mapi_CompareRelop_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCompareProps_ulPropTag1, + { "UlPropTag1", "mapi.mapi_SCompareProps.ulPropTag1", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SCompareProps_ulPropTag2, + { "UlPropTag2", "mapi.mapi_SCompareProps.ulPropTag2", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SContentRestriction_fuzzy, + { "Fuzzy", "mapi.mapi_SContentRestriction.fuzzy", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SContentRestriction_lpProp, + { "LpProp", "mapi.mapi_SContentRestriction.lpProp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SContentRestriction_ulPropTag, + { "UlPropTag", "mapi.mapi_SContentRestriction.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SExistRestriction_ulPropTag, + { "UlPropTag", "mapi.mapi_SExistRestriction.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SGuidArray_cValues, + { "CValues", "mapi.mapi_SGuidArray.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SGuidArray_lpguid, + { "Lpguid", "mapi.mapi_SGuidArray.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SLPSTRArray_cValues, + { "CValues", "mapi.mapi_SLPSTRArray.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SLPSTRArray_strings, + { "Strings", "mapi.mapi_SLPSTRArray.strings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SNotRestriction_res, + { "Res", "mapi.mapi_SNotRestriction.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SOrRestriction_cRes, + { "CRes", "mapi.mapi_SOrRestriction.cRes", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SOrRestriction_res, + { "Res", "mapi.mapi_SOrRestriction.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPLSTRArrayW_cValues, + { "CValues", "mapi.mapi_SPLSTRArrayW.cValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPLSTRArrayW_strings, + { "Strings", "mapi.mapi_SPLSTRArrayW.strings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropTagArray_aulPropTag, + { "AulPropTag", "mapi.mapi_SPropTagArray.aulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropTagArray_cValues, + { "CValues", "mapi.mapi_SPropTagArray.cValues", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVbin, + { "MVbin", "mapi.mapi_SPropValue_CTR.MVbin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVft, + { "MVft", "mapi.mapi_SPropValue_CTR.MVft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVguid, + { "MVguid", "mapi.mapi_SPropValue_CTR.MVguid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVi, + { "MVi", "mapi.mapi_SPropValue_CTR.MVi", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVl, + { "MVl", "mapi.mapi_SPropValue_CTR.MVl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVszA, + { "MVszA", "mapi.mapi_SPropValue_CTR.MVszA", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_MVszW, + { "MVszW", "mapi.mapi_SPropValue_CTR.MVszW", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_Restrictions, + { "Restrictions", "mapi.mapi_SPropValue_CTR.Restrictions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_RuleAction, + { "RuleAction", "mapi.mapi_SPropValue_CTR.RuleAction", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_b, + { "B", "mapi.mapi_SPropValue_CTR.b", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_bin, + { "Bin", "mapi.mapi_SPropValue_CTR.bin", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_d, + { "D", "mapi.mapi_SPropValue_CTR.d", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_dbl, + { "Dbl", "mapi.mapi_SPropValue_CTR.dbl", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_err, + { "Err", "mapi.mapi_SPropValue_CTR.err", FT_UINT32, BASE_DEC, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_ft, + { "Ft", "mapi.mapi_SPropValue_CTR.ft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_i, + { "I", "mapi.mapi_SPropValue_CTR.i", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_l, + { "L", "mapi.mapi_SPropValue_CTR.l", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_lpguid, + { "Lpguid", "mapi.mapi_SPropValue_CTR.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_lpszA, + { "LpszA", "mapi.mapi_SPropValue_CTR.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_lpszW, + { "LpszW", "mapi.mapi_SPropValue_CTR.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_null, + { "Null", "mapi.mapi_SPropValue_CTR.null", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_object, + { "Object", "mapi.mapi_SPropValue_CTR.object", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_CTR_svreid, + { "Svreid", "mapi.mapi_SPropValue_CTR.svreid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_array_cValues, + { "CValues", "mapi.mapi_SPropValue_array.cValues", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_array_lpProps, + { "LpProps", "mapi.mapi_SPropValue_array.lpProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_array_wrap_wrap, + { "Wrap", "mapi.mapi_SPropValue_array_wrap.wrap", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_ulPropTag, + { "UlPropTag", "mapi.mapi_SPropValue.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_value, + { "Value", "mapi.mapi_SPropValue.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropValue_wrap_wrap, + { "Wrap", "mapi.mapi_SPropValue_wrap.wrap", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropertyRestriction_lpProp, + { "LpProp", "mapi.mapi_SPropertyRestriction.lpProp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropertyRestriction_relop, + { "Relop", "mapi.mapi_SPropertyRestriction.relop", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SPropertyRestriction_ulPropTag, + { "UlPropTag", "mapi.mapi_SPropertyRestriction.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resAnd, + { "ResAnd", "mapi.mapi_SRestriction_CTR.resAnd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resBitmask, + { "ResBitmask", "mapi.mapi_SRestriction_CTR.resBitmask", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resComment, + { "ResComment", "mapi.mapi_SRestriction_CTR.resComment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resCompareProps, + { "ResCompareProps", "mapi.mapi_SRestriction_CTR.resCompareProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resContent, + { "ResContent", "mapi.mapi_SRestriction_CTR.resContent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resExist, + { "ResExist", "mapi.mapi_SRestriction_CTR.resExist", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resNot, + { "ResNot", "mapi.mapi_SRestriction_CTR.resNot", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resOr, + { "ResOr", "mapi.mapi_SRestriction_CTR.resOr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resProperty, + { "ResProperty", "mapi.mapi_SRestriction_CTR.resProperty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resSize, + { "ResSize", "mapi.mapi_SRestriction_CTR.resSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_CTR_resSub, + { "ResSub", "mapi.mapi_SRestriction_CTR.resSub", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_res, + { "Res", "mapi.mapi_SRestriction.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_rt, + { "Rt", "mapi.mapi_SRestriction.rt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SRestriction_wrap_wrap, + { "Wrap", "mapi.mapi_SRestriction_wrap.wrap", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SSizeRestriction_relop, + { "Relop", "mapi.mapi_SSizeRestriction.relop", FT_UINT8, BASE_DEC, VALS(mapi_CompareRelop_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SSizeRestriction_size, + { "Size", "mapi.mapi_SSizeRestriction.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SSizeRestriction_ulPropTag, + { "UlPropTag", "mapi.mapi_SSizeRestriction.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_SSubRestriction_res, + { "Res", "mapi.mapi_SSubRestriction.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_SSubRestriction_ulSubObject, + { "UlSubObject", "mapi.mapi_SSubRestriction.ulSubObject", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }}, + { &hf_mapi_mapi_name_Name, + { "Name", "mapi.mapi_name.Name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_name_NameSize, + { "NameSize", "mapi.mapi_name.NameSize", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_request_handles, + { "Handles", "mapi.mapi_request.handles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_request_length, + { "Length", "mapi.mapi_request.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_request_mapi_len, + { "Mapi Len", "mapi.mapi_request.mapi_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_request_rpcRequest, + { "RpcRequest", "mapi.mapi_request.rpcRequest", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_response_handles, + { "Handles", "mapi.mapi_response.handles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_response_length, + { "Length", "mapi.mapi_response.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_response_mapi_len, + { "Mapi Len", "mapi.mapi_response.mapi_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_mapi_mapi_response_rpcResponse, + { "RpcResponse", "mapi.mapi_response.rpcResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_mapi_opnum, { "Operation", "mapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_pdu_len, - { "Length", "mapi.pdu.len", FT_UINT16, BASE_HEX, NULL, 0x0, "Size of the command PDU", HFILL }}, - { &hf_mapi_property_types, - { "Value", "mapi.SPropValue.value", FT_UINT32, BASE_HEX, VALS(mapi_property_types_vals), 0, "NULL", HFILL }}, - { &hf_mapi_recipient_displayname_7bit_lpszA, - { "LpszA", "mapi.recipient_displayname_7bit.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipient_type, - { "Recipient Type", "mapi.recipients_headers.type", FT_UINT16, BASE_HEX, VALS(mapi_OM_recipient_type_vals), 0, "NULL", HFILL }}, + { &hf_mapi_recipient_DisplayName_lpszA, + { "LpszA", "mapi.recipient_DisplayName.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_DisplayName_lpszW, + { "LpszW", "mapi.recipient_DisplayName.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_EmailAddress_lpszA, + { "LpszA", "mapi.recipient_EmailAddress.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_EmailAddress_lpszW, + { "LpszW", "mapi.recipient_EmailAddress.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_SimpleDisplayName_lpszA, + { "LpszA", "mapi.recipient_SimpleDisplayName.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_SimpleDisplayName_lpszW, + { "LpszW", "mapi.recipient_SimpleDisplayName.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_TransmittableDisplayName_lpszA, + { "LpszA", "mapi.recipient_TransmittableDisplayName.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_mapi_recipient_TransmittableDisplayName_lpszW, + { "LpszW", "mapi.recipient_TransmittableDisplayName.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_mapi_recipient_type_EXCHANGE, { "EXCHANGE", "mapi.recipient_type.EXCHANGE", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_mapi_recipient_type_SMTP, { "SMTP", "mapi.recipient_type.SMTP", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipients_headers_bitmask, - { "Bitmask", "mapi.recipients_headers.bitmask", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipients_headers_layout, - { "Layout", "mapi.recipients_headers.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipients_headers_prop_count, - { "Prop Count", "mapi.recipients_headers.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipients_headers_prop_values, - { "Prop Values", "mapi.recipients_headers.prop_values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_recipients_headers_username, - { "Username", "mapi.recipients_headers.username", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevCriticalError, - { "FnevCriticalError", "mapi.ulEventType.fnevCriticalError", FT_BOOLEAN, 16, TFS(&ulEventType_fnevCriticalError_tfs), ( 0x00000001 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevExtended, - { "FnevExtended", "mapi.ulEventType.fnevExtended", FT_BOOLEAN, 16, TFS(&ulEventType_fnevExtended_tfs), ( 0x80000000 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevNewMail, - { "FnevNewMail", "mapi.ulEventType.fnevNewMail", FT_BOOLEAN, 16, TFS(&ulEventType_fnevNewMail_tfs), ( 0x00000002 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevObjectCopied, - { "FnevObjectCopied", "mapi.ulEventType.fnevObjectCopied", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCopied_tfs), ( 0x00000040 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevObjectCreated, - { "FnevObjectCreated", "mapi.ulEventType.fnevObjectCreated", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCreated_tfs), ( 0x00000004 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevObjectDeleted, - { "FnevObjectDeleted", "mapi.ulEventType.fnevObjectDeleted", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectDeleted_tfs), ( 0x00000008 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevObjectModified, - { "FnevObjectModified", "mapi.ulEventType.fnevObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectModified_tfs), ( 0x00000010 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevObjectMoved, - { "FnevObjectMoved", "mapi.ulEventType.fnevObjectMoved", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectMoved_tfs), ( 0x00000020 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevReservedForMapi, - { "FnevReservedForMapi", "mapi.ulEventType.fnevReservedForMapi", FT_BOOLEAN, 16, TFS(&ulEventType_fnevReservedForMapi_tfs), ( 0x40000000 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevSearchComplete, - { "FnevSearchComplete", "mapi.ulEventType.fnevSearchComplete", FT_BOOLEAN, 16, TFS(&ulEventType_fnevSearchComplete_tfs), ( 0x00000080 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevStatusObjectModified, - { "FnevStatusObjectModified", "mapi.ulEventType.fnevStatusObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevStatusObjectModified_tfs), ( 0x00000200 ), NULL, HFILL }}, - { &hf_mapi_ulEventType_fnevTableModified, - { "FnevTableModified", "mapi.ulEventType.fnevTableModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevTableModified_tfs), ( 0x00000100 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_DELMARKED, + { "MSGSTATUS DELMARKED", "mapi.ulMessageStatus.MSGSTATUS_DELMARKED", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_DELMARKED_tfs), ( 0x8 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_HIDDEN, + { "MSGSTATUS HIDDEN", "mapi.ulMessageStatus.MSGSTATUS_HIDDEN", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_HIDDEN_tfs), ( 0x4 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_HIGHLIGHTED, + { "MSGSTATUS HIGHLIGHTED", "mapi.ulMessageStatus.MSGSTATUS_HIGHLIGHTED", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_HIGHLIGHTED_tfs), ( 0x1 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DELETE, + { "MSGSTATUS REMOTE DELETE", "mapi.ulMessageStatus.MSGSTATUS_REMOTE_DELETE", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_REMOTE_DELETE_tfs), ( 0x2000 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD, + { "MSGSTATUS REMOTE DOWNLOAD", "mapi.ulMessageStatus.MSGSTATUS_REMOTE_DOWNLOAD", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD_tfs), ( 0x1000 ), NULL, HFILL }}, + { &hf_mapi_ulMessageStatus_MSGSTATUS_TAGGED, + { "MSGSTATUS TAGGED", "mapi.ulMessageStatus.MSGSTATUS_TAGGED", FT_BOOLEAN, 32, TFS(&ulMessageStatus_MSGSTATUS_TAGGED_tfs), ( 0x2 ), NULL, HFILL }}, + { &hf_mapi_werror, + { "Windows Error", "mapi.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }}, }; static gint *ett[] = { - &ett_mapi_mapi_request, - &ett_mapi_EcDoRpc_MAPI_REQ, - &ett_mapi_OpenFolder_req, - &ett_mapi_GetProps_req, - &ett_mapi_OpenMsgStore_req, - &ett_mapi_mapi_response, - &ett_mapi_EcDoRpc_MAPI_REPL, - &ett_mapi_OpenFolder_repl, - &ett_mapi_GetProps_repl, + &ett_mapi_connect_request, + &ett_ServerObjectHandleTable, &ett_dcerpc_mapi, &ett_mapi_DATA_BLOB, - &ett_mapi_input_locale, - &ett_mapi_FILETIME, - &ett_mapi_LPSTR, - &ett_mapi_SPropValue_CTR, - &ett_mapi_SPropValue, - &ett_mapi_SRow, + &ett_mapi_SBinary_short, + &ett_mapi_mapi_MV_LONG_STRUCT, + &ett_mapi_mapi_LPSTR, + &ett_mapi_mapi_SLPSTRArray, + &ett_mapi_mapi_LPWSTR, + &ett_mapi_mapi_SPLSTRArrayW, + &ett_mapi_mapi_SBinaryArray, + &ett_mapi_mapi_SGuidArray, + &ett_mapi_mapi_SRestriction_wrap, + &ett_mapi_mapi_SPropValue_wrap, + &ett_mapi_mapi_SPropValue_array_wrap, + &ett_mapi_MoveCopy_Action, + &ett_mapi_ReplyOOF_Action, + &ett_mapi_RecipientBlock, + &ett_mapi_ForwardDelegate_Action, + &ett_mapi_ActionData, + &ett_mapi_ActionBlockData, + &ett_mapi_ActionBlock, + &ett_mapi_RuleAction, + &ett_mapi_ShortArray_r, + &ett_mapi_LongArray_r, + &ett_mapi_BinaryArray_r, + &ett_mapi_DateTimeArray_r, + &ett_mapi_Binary_r, + &ett_mapi_mapi_SPropValue_CTR, + &ett_mapi_mapi_SPropValue, + &ett_mapi_mapi_SPropValue_array, + &ett_mapi_mapi_SPropTagArray, &ett_mapi_Release_req, &ett_mapi_Release_repl, + &ett_mapi_OpenFolder_req, + &ett_mapi_OpenFolder_Replicas, + &ett_mapi_IsGhosted, + &ett_mapi_OpenFolder_Success, + &ett_mapi_OpenFolder_repl_status, + &ett_mapi_OpenFolder_repl, + &ett_mapi_String, + &ett_mapi_TypedString, &ett_mapi_OpenMessage_req, &ett_mapi_RecipExchange, &ett_mapi_RecipSMTP, &ett_mapi_recipient_type, - &ett_mapi_recipient_displayname_7bit, - &ett_mapi_recipients_headers, + &ett_mapi_recipient_SimpleDisplayName, + &ett_mapi_recipient_TransmittableDisplayName, + &ett_mapi_recipient_DisplayName, + &ett_mapi_recipient_EmailAddress, + &ett_mapi_RecipientRow, &ett_mapi_OpenMessage_recipients, - &ett_mapi_ulEventType, - &ett_mapi_EcDoRpc_MAPI_REQ_UNION, - &ett_mapi_EcDoRpc_MAPI_REPL_UNION, + &ett_mapi_OpenMessage_Success, + &ett_mapi_OpenMessage_repl_status, + &ett_mapi_OpenMessage_repl, + &ett_mapi_TableFlags, + &ett_mapi_GetHierarchyTable_req, + &ett_mapi_GetHierarchyTable_repl_success, + &ett_mapi_GetHierarchyTable_repl_status, + &ett_mapi_GetHierarchyTable_repl, + &ett_mapi_GetContentsTable_req, + &ett_mapi_GetContentsTable_repl_success, + &ett_mapi_GetContentsTable_repl_status, + &ett_mapi_GetContentsTable_repl, + &ett_mapi_CreateMessage_req, + &ett_mapi_CreateMessage_MessageId, + &ett_mapi_CreateMessage_repl_success, + &ett_mapi_CreateMessage_repl_status, + &ett_mapi_CreateMessage_repl, + &ett_mapi_GetProps_req, + &ett_mapi_GetProps_repl_success, + &ett_mapi_GetProps_repl_status, + &ett_mapi_GetProps_repl, + &ett_mapi_GetPropsAll_req, + &ett_mapi_GetPropsAll_repl_success, + &ett_mapi_GetPropsAll_repl_status, + &ett_mapi_GetPropsAll_repl, + &ett_mapi_GetPropList_req, + &ett_mapi_GetPropList_repl, + &ett_mapi_PropertyProblem, + &ett_mapi_SetProps_req, + &ett_mapi_SetProps_repl, + &ett_mapi_DeleteProps_req, + &ett_mapi_DeleteProps_repl, + &ett_mapi_SaveChangesMessage_req, + &ett_mapi_SaveChangesMessage_repl, + &ett_mapi_RemoveAllRecipients_req, + &ett_mapi_RemoveAllRecipients_repl, + &ett_mapi_ModifyRecipientRow, + &ett_mapi_ModifyRecipients_req, + &ett_mapi_ModifyRecipients_repl, + &ett_mapi_ReadRecipients_req, + &ett_mapi_ReadRecipientRow, + &ett_mapi_ReadRecipients_repl, + &ett_mapi_OpenRecipientRow, + &ett_mapi_ReloadCachedInformation_req, + &ett_mapi_ReloadCachedInformation_repl, + &ett_mapi_MSGFLAG_READ, + &ett_mapi_SetMessageReadFlag_req, + &ett_mapi_SetMessageReadFlag_LogonId, + &ett_mapi_SetMessageReadFlag_ClientData, + &ett_mapi_SetMessageReadFlag_repl, + &ett_mapi_SetColumns_req, + &ett_mapi_SetColumns_repl, + &ett_mapi_SSortOrder, + &ett_mapi_SSortOrderSet, + &ett_mapi_SortTable_req, + &ett_mapi_SortTable_repl, + &ett_mapi_mapi_SAndRestriction, + &ett_mapi_mapi_SOrRestriction, + &ett_mapi_mapi_SNotRestriction, + &ett_mapi_fuzzyLevel, + &ett_mapi_mapi_SContentRestriction, + &ett_mapi_mapi_SBitmaskRestriction, + &ett_mapi_mapi_SSizeRestriction, + &ett_mapi_mapi_SPropertyRestriction, + &ett_mapi_mapi_SCompareProps, + &ett_mapi_mapi_SExistRestriction, + &ett_mapi_mapi_SSubRestriction, + &ett_mapi_RestrictionVariable, + &ett_mapi_mapi_SCommentRestriction, + &ett_mapi_mapi_SRestriction_CTR, + &ett_mapi_mapi_SRestriction, + &ett_mapi_SRestriction_and, + &ett_mapi_SRestriction_or, + &ett_mapi_SRestriction_sub, + &ett_mapi_SRestriction_comment, + &ett_mapi_Restrict_req, + &ett_mapi_Restrict_repl, + &ett_mapi_QueryRows_req, + &ett_mapi_QueryRows_repl, + &ett_mapi_GetStatus_req, + &ett_mapi_GetStatus_repl, + &ett_mapi_QueryPosition_req, + &ett_mapi_QueryPosition_repl, + &ett_mapi_SeekRow_req, + &ett_mapi_SeekRow_repl, + &ett_mapi_SeekRowBookmark_req, + &ett_mapi_SeekRowBookmark_repl, + &ett_mapi_SeekRowApprox_req, + &ett_mapi_SeekRowApprox_repl, + &ett_mapi_CreateBookmark_req, + &ett_mapi_CreateBookmark_repl, + &ett_mapi_LPTSTR, + &ett_mapi_CreateFolder_req, + &ett_mapi_CreateFolder_GhostInfo, + &ett_mapi_CreateFolder_GhostUnion, + &ett_mapi_CreateFolder_repl, + &ett_mapi_DeleteFolderFlags, + &ett_mapi_DeleteFolder_req, + &ett_mapi_DeleteFolder_repl, + &ett_mapi_DeleteMessages_req, + &ett_mapi_DeleteMessages_repl, + &ett_mapi_GetMessageStatus_req, + &ett_mapi_ulMessageStatus, + &ett_mapi_SetMessageStatus_req, + &ett_mapi_SetMessageStatus_repl, + &ett_mapi_GetAttachmentTable_req, + &ett_mapi_GetAttachmentTable_repl, + &ett_mapi_OpenAttach_req, + &ett_mapi_OpenAttach_repl, + &ett_mapi_CreateAttach_req, + &ett_mapi_CreateAttach_repl, + &ett_mapi_DeleteAttach_req, + &ett_mapi_DeleteAttach_repl, + &ett_mapi_SaveChangesAttachment_req, + &ett_mapi_SaveChangesAttachment_repl, + &ett_mapi_SetReceiveFolder_req, + &ett_mapi_SetReceiveFolder_repl, + &ett_mapi_GetReceiveFolder_req, + &ett_mapi_GetReceiveFolder_repl, + &ett_mapi_hyperbool, + &ett_mapi_RegisterNotification_req, + &ett_mapi_RegisterNotification_repl, + &ett_mapi_MsgFlags, + &ett_mapi_MessageClass, + &ett_mapi_GID, + &ett_mapi_NewMailNotification, + &ett_mapi_FolderCreatedNotification, + &ett_mapi_FolderDeletedNotification, + &ett_mapi_FolderModifiedNotification_10, + &ett_mapi_FolderMoveCopyNotification, + &ett_mapi_SearchCompleteNotification, + &ett_mapi_HierarchyRowAddedNotification, + &ett_mapi_HierarchyRowDeletedNotification, + &ett_mapi_HierarchyRowModifiedNotification, + &ett_mapi_HierarchyTableChangeUnion, + &ett_mapi_HierarchyTableChange, + &ett_mapi_IcsNotification, + &ett_mapi_FolderModifiedNotification_1010, + &ett_mapi_FolderModifiedNotification_2010, + &ett_mapi_FolderModifiedNotification_3010, + &ett_mapi_MessageCreatedNotification, + &ett_mapi_MessageDeletedNotification, + &ett_mapi_MessageModifiedNotification, + &ett_mapi_MessageMoveCopyNotification, + &ett_mapi_ContentsRowAddedNotification, + &ett_mapi_ContentsRowDeletedNotification, + &ett_mapi_ContentsRowModifiedNotification, + &ett_mapi_ContentsTableChangeUnion, + &ett_mapi_ContentsTableChange, + &ett_mapi_SearchMessageCreatedNotification, + &ett_mapi_SearchMessageRemovedNotification, + &ett_mapi_SearchMessageModifiedNotification, + &ett_mapi_NotificationData, + &ett_mapi_Notify_repl, + &ett_mapi_OpenStream_req, + &ett_mapi_OpenStream_repl, + &ett_mapi_MaximumByteCount, + &ett_mapi_ReadStream_req, + &ett_mapi_ReadStream_repl, + &ett_mapi_WriteStream_req, + &ett_mapi_WriteStream_repl, + &ett_mapi_SeekStream_req, + &ett_mapi_SeekStream_repl, + &ett_mapi_SetStreamSize_req, + &ett_mapi_SetStreamSize_repl, + &ett_mapi_SearchFlags, + &ett_mapi_SetSearchCriteria_req, + &ett_mapi_SetSearchCriteria_repl, + &ett_mapi_GetSearchCriteria_req, + &ett_mapi_GetSearchCriteria_repl, + &ett_mapi_SubmitMessage_req, + &ett_mapi_SubmitMessage_repl, + &ett_mapi_MoveCopyMessages_req, + &ett_mapi_MoveCopyMessages_repl, + &ett_mapi_AbortSubmit_req, + &ett_mapi_AbortSubmit_repl, + &ett_mapi_Folder_name, + &ett_mapi_MoveFolder_req, + &ett_mapi_MoveFolder_repl, + &ett_mapi_CopyFolder_req, + &ett_mapi_CopyFolder_repl, + &ett_mapi_QueryColumnsAll_req, + &ett_mapi_QueryColumnsAll_repl, + &ett_mapi_Abort_req, + &ett_mapi_Abort_repl, + &ett_mapi_CopyFlags, + &ett_mapi_CopyTo_req, + &ett_mapi_CopyTo_repl, + &ett_mapi_CopyToStream_req, + &ett_mapi_CopyToStream_repl, + &ett_mapi_CloneStream_req, + &ett_mapi_CloneStream_repl, + &ett_mapi_PermissionsTableFlags, + &ett_mapi_GetPermissionsTable_req, + &ett_mapi_GetPermissionsTable_repl, + &ett_mapi_RulesTableFlags, + &ett_mapi_GetRulesTable_req, + &ett_mapi_GetRulesTable_repl, + &ett_mapi_ModifyPermissionsFlags, + &ett_mapi_PermissionData, + &ett_mapi_mapi_PermissionsData, + &ett_mapi_ModifyPermissions_req, + &ett_mapi_ModifyPermissions_repl, + &ett_mapi_RuleData, + &ett_mapi_ModifyRulesFlag, + &ett_mapi_ModifyRules_req, + &ett_mapi_ModifyRules_repl, + &ett_mapi_GetOwningServers_req, + &ett_mapi_GetOwningServers_repl, + &ett_mapi_LongTermIdFromId_req, + &ett_mapi_LongTermId, + &ett_mapi_LongTermIdFromId_repl_Success, + &ett_mapi_LongTermIdFromId_repl_status, + &ett_mapi_LongTermIdFromId_repl, + &ett_mapi_IdFromLongTermId_req, + &ett_mapi_IdFromLongTermId_repl, + &ett_mapi_PublicFolderIsGhosted_req, + &ett_mapi_PublicFolderIsGhosted_repl, + &ett_mapi_OpenEmbeddedMessage_req, + &ett_mapi_OpenEmbeddedMessage_repl, + &ett_mapi_SetSpooler_req, + &ett_mapi_SetSpooler_repl, + &ett_mapi_SpoolerLockMessage_req, + &ett_mapi_SpoolerLockMessage_repl, + &ett_mapi_AddressTypes_req, + &ett_mapi_AddressTypes_repl, + &ett_mapi_TransportSend_req, + &ett_mapi_TransportSend_lpProps, + &ett_mapi_TransportSend_repl, + &ett_mapi_FastTransferSourceGetBuffer_req, + &ett_mapi_FastTransferSourceGetBuffer_repl, + &ett_mapi_FindRow_req, + &ett_mapi_FindRow_repl, + &ett_mapi_Progress_req, + &ett_mapi_Progress_repl, + &ett_mapi_TransportNewMail_req, + &ett_mapi_TransportNewMail_repl, + &ett_mapi_GetValidAttachments_req, + &ett_mapi_GetValidAttachments_repl, + &ett_mapi_mapi_name, + &ett_mapi_Kind, + &ett_mapi_MAPINAMEID, + &ett_mapi_GetNamesFromIDs_req, + &ett_mapi_GetNamesFromIDs_repl, + &ett_mapi_GetIDsFromNames_req, + &ett_mapi_GetIDsFromNames_repl, + &ett_mapi_UpdateDeferredActionMessages_req, + &ett_mapi_UpdateDeferredActionMessages_repl, + &ett_mapi_EmptyFolder_req, + &ett_mapi_EmptyFolder_repl, + &ett_mapi_ExpandRow_req, + &ett_mapi_ExpandRow_repl, + &ett_mapi_CollapseRow_req, + &ett_mapi_CollapseRow_repl, + &ett_mapi_LockRegionStream_req, + &ett_mapi_LockRegionStream_repl, + &ett_mapi_UnlockRegionStream_req, + &ett_mapi_UnlockRegionStream_repl, + &ett_mapi_CommitStream_req, + &ett_mapi_CommitStream_repl, + &ett_mapi_GetStreamSize_req, + &ett_mapi_GetStreamSize_repl, + &ett_mapi_QueryFlags, + &ett_mapi_QueryNamedProperties_guid, + &ett_mapi_QueryNamedProperties_req, + &ett_mapi_QueryNamedProperties_repl, + &ett_mapi_GetPerUserLongTermIds_req, + &ett_mapi_GetPerUserLongTermIds_repl, + &ett_mapi_GetPerUserGuid_req, + &ett_mapi_GetPerUserGuid_repl, + &ett_mapi_ReadPerUserInformation_req, + &ett_mapi_ReadPerUserInformation_repl, + &ett_mapi_SetReadFlags_req, + &ett_mapi_SetReadFlags_repl, + &ett_mapi_CopyProperties_req, + &ett_mapi_CopyProperties_repl, + &ett_mapi_FILETIME, + &ett_mapi_ReceiveFolder, + &ett_mapi_GetReceiveFolderTable_req, + &ett_mapi_GetReceiveFolderTable_repl, + &ett_mapi_GetCollapseState_req, + &ett_mapi_GetCollapseState_repl, + &ett_mapi_SetCollapseState_req, + &ett_mapi_SetCollapseState_repl, + &ett_mapi_GetTransportFolder_req, + &ett_mapi_GetTransportFolder_repl, + &ett_mapi_Pending_repl, + &ett_mapi_OptionsData_req, + &ett_mapi_OptionsData_HelpFileName, + &ett_mapi_OptionsData_repl, + &ett_mapi_SendOptions, + &ett_mapi_SynchronizationFlag, + &ett_mapi_SynchronizationExtraFlags, + &ett_mapi_SyncConfigure_req, + &ett_mapi_SyncConfigure_repl, + &ett_mapi_ImportFlag, + &ett_mapi_SyncImportMessageChange_req, + &ett_mapi_SyncImportMessageChange_repl, + &ett_mapi_SyncImportHierarchyChange_req, + &ett_mapi_SyncImportHierarchyChange_repl, + &ett_mapi_SyncImportDeletes_req, + &ett_mapi_SyncImportDeletes_repl, + &ett_mapi_SyncUploadStateStreamBegin_req, + &ett_mapi_SyncUploadStateStreamBegin_repl, + &ett_mapi_SyncUploadStateStreamContinue_req, + &ett_mapi_SyncUploadStateStreamContinue_repl, + &ett_mapi_SyncUploadStateStreamEnd_req, + &ett_mapi_SyncUploadStateStreamEnd_repl, + &ett_mapi_SyncImportMessageMove_req, + &ett_mapi_SyncImportMessageMove_repl, + &ett_mapi_SetPropertiesNoReplicate_req, + &ett_mapi_SetPropertiesNoReplicate_repl, + &ett_mapi_DeletePropertiesNoReplicate_req, + &ett_mapi_DeletePropertiesNoReplicate_repl, + &ett_mapi_StoreState, + &ett_mapi_GetStoreState_req, + &ett_mapi_GetStoreState_repl, + &ett_mapi_SyncOpenCollector_req, + &ett_mapi_SyncOpenCollector_repl, + &ett_mapi_GetLocalReplicaIds_req, + &ett_mapi_GetLocalReplicaIds_repl, + &ett_mapi_SyncImportReadStateChanges_req, + &ett_mapi_SyncImportReadStateChanges_repl, + &ett_mapi_ResetTable_req, + &ett_mapi_ResetTable_repl, + &ett_mapi_SyncGetTransferState_req, + &ett_mapi_SyncGetTransferState_repl, + &ett_mapi_OpenPublicFolderByName_req, + &ett_mapi_OpenPublicFolderByName_repl, + &ett_mapi_SetSyncNotificationGuid_req, + &ett_mapi_SetSyncNotificationGuid_repl, + &ett_mapi_FreeBookmark_req, + &ett_mapi_FreeBookmark_repl, + &ett_mapi_WriteAndCommitStream_req, + &ett_mapi_WriteAndCommitStream_repl, + &ett_mapi_HardDeleteMessages_req, + &ett_mapi_HardDeleteMessages_repl, + &ett_mapi_HardDeleteMessagesAndSubfolders_req, + &ett_mapi_HardDeleteMessagesAndSubfolders_repl, + &ett_mapi_OpenFlags, + &ett_mapi_LogonTime, + &ett_mapi_ResponseFlags, + &ett_mapi_Logon_req, + &ett_mapi_Logon_repl, + &ett_mapi_RopBufferTooSmall_repl, + &ett_mapi_RopRequest, + &ett_mapi_RopReply, + &ett_mapi_EcDoRpcMapiRequest, + &ett_mapi_EcDoRpcMapiResponse, + &ett_mapi_mapi_request, + &ett_mapi_mapi_response, + &ett_mapi_AUX_HEADER_TYPE_ENUM, + &ett_mapi_AUX_PERF_REQUESTID, + &ett_mapi_AUX_PERF_CLIENTINFO, + &ett_mapi_AUX_PERF_SERVERINFO, + &ett_mapi_AUX_PERF_SESSIONINFO, + &ett_mapi_AUX_PERF_SESSIONINFO_V2, + &ett_mapi_AUX_PERF_DEFMDB_SUCCESS, + &ett_mapi_AUX_PERF_DEFGC_SUCCESS, + &ett_mapi_AUX_PERF_MDB_SUCCESS, + &ett_mapi_AUX_PERF_MDB_SUCCESS_V2, + &ett_mapi_AUX_PERF_GC_SUCCESS, + &ett_mapi_AUX_PERF_GC_SUCCESS_V2, + &ett_mapi_AUX_PERF_FAILURE, + &ett_mapi_AUX_PERF_FAILURE_V2, + &ett_mapi_CLIENT_CONTROL_EnableFlags, + &ett_mapi_AUX_CLIENT_CONTROL, + &ett_mapi_AUX_PERF_PROCESSINFO, + &ett_mapi_AUX_OSVERSIONINFO, + &ett_mapi_EXORGINFO_OrgFlags, + &ett_mapi_AUX_EXORGINFO, + &ett_mapi_AuxDataVersion1, + &ett_mapi_AuxDataVersion2, + &ett_mapi_AUX_DATA, + &ett_mapi_AUX_HEADER, + &ett_mapi_RPC_HEADER_EXT_Flags, + &ett_mapi_RPC_HEADER_EXT, + &ett_mapi_AuxInfo, + &ett_mapi_AuxInfoOut, + &ett_mapi_RpcExt2Flags, + &ett_mapi_RopInput, + &ett_mapi_ROPInputBuffer, + &ett_mapi_RgbIn, + &ett_mapi_RopOutput, + &ett_mapi_ROPOutputBuffer, + &ett_mapi_RgbOut, }; - proto_dcerpc_mapi = proto_register_protocol("Exchange 5.5 EMSMDB", "MAPI", "mapi"); + proto_dcerpc_mapi = proto_register_protocol("MAPI", "MAPI", "mapi"); proto_register_field_array(proto_dcerpc_mapi, hf, array_length (hf)); proto_register_subtree_array(ett, array_length(ett)); } |