/Verified_Build_Branch/NPL/Windows/etl_usbport.events.npl

# · Unknown · 4505 lines · 4447 code · 58 blank · 0 comment · 0 complexity · fede3a142b71759d44c2c5bff1180060 MD5 · raw file

  1. //# (c) 2010 Outercurve Foundation
  2. //#
  3. //# Title: Microsoft-Windows-usbport.events
  4. //#
  5. //# Details:
  6. //#
  7. //# Public References: usbport.events.man
  8. //#
  9. //# Comments:
  10. //#
  11. //# Revision Class and Date:Major, 08/10/2012
  12. //# Minor, 10/19/2012
  13. //#
  14. //####
  15. const IRP_MJ_DEVICE_CONTROL = 0xe;
  16. const IRP_MJ_INTERNAL_DEVICE_CONTROL = 0xf;
  17. [RegisterBefore(NetEvent.UserData, USBPort, "{c88a4ef5-d048-4013-9408-e04b7db2814a}")]
  18. [RegisterBefore(NetEvent.UserData, USBHub, "{7426a56b-e2d5-4b30-bdef-b31815c1a74a}")]
  19. Protocol USB = Property.ETLSummary
  20. {
  21. // Properties
  22. // "USB Summary" property is an alias of "ETL Summary", and will be visible
  23. // to anyone searching for USB-related columns in the column chooser
  24. [Post.Property.USBSummary = Property.ETLSummary]
  25. [Post.Property.USBPortPath = IsValueNone(UsbPortPath.ToString) ? "-" : UsbPortPath.ToString]
  26. // USB Error Events, Hub Exceptions, or URB Errors
  27. [Post.Property.USBIsError =
  28. ((
  29. (USBPort AND NetEvent.Header.Descriptor.Opcode == 34)
  30. OR
  31. (USBHub AND NetEvent.Header.Descriptor.Opcode == 11)
  32. OR
  33. (NetEvent.Header.Descriptor.Level == 0x2)
  34. OR
  35. (USBHub AND NetEvent.Header.Descriptor.Id == 210)
  36. OR
  37. (Property.USBDStatus != "success" && Property.USBDStatus != "" && Property.USBDStatus != "canceled")
  38. OR
  39. (Property.USBNtStatus != "success" && Property.USBNtStatus != "" && Property.USBNtStatus != "0xC0000120 - STATUS_CANCELLED")
  40. ) ? 1 : 0)]
  41. // Conversations
  42. // First level of tree: a node for each host controller
  43. // Key it to the HC identifier string
  44. [Post.ProxyBuildConversationWithParent("USB", USBPort_HostController.ToString)]
  45. // Compact host controller string. Gets data from the HC conversation.
  46. [Post.Property.USBHostController = FormatString("%x-%x%s", USBPort_HostController.PciDevice, USBPort_HostController.PciFunction, Conversation.USBIsEhci ? " e" : "")]
  47. // Name of host controller node
  48. // Due to the Protocol name of "USB", "Controller" becomes "USB Controller" as intended.
  49. [Post.Conversation.ConversationDescription =
  50. FormatString("Controller: (%s) PCI bus %d, device %d, function %d%s",
  51. Property.USBHostController,
  52. USBPort_HostController.PciBus, USBPort_HostController.PciDevice, USBPort_HostController.PciFunction, Conversation.USBIsEhci ? " (EHCI)" : ""
  53. )]
  54. // Proxy to UsbPort in case this is a UsbHub event
  55. [Post.ProxyBuildConversationWithParent("UsbPort", Property.USBPortPath)]
  56. [Post.Conversation.EventCount = ((IsValueNone(Conversation.EventCount) ? 0 : Conversation.EventCount) + 1)]
  57. [Post.Conversation.ErrorCount = ((IsValueNone(Conversation.ErrorCount) ? 0 : Conversation.ErrorCount) + Property.USBIsError)]
  58. // Name of port path node
  59. // Due to protocol name of "USBPort", this will read "USBPort Path: ..."
  60. [Post.Conversation.ConversationDescription = (FormatString("%s (Events: %d, Errors: %d)", (IsValueNone(Property.USBPortPath) ? "-" : FormatString("Path: %s", Property.USBPortPath)), Conversation.EventCount, Conversation.ErrorCount))]
  61. switch(Property.ETLProviderGUID)
  62. {
  63. case "{c88a4ef5-d048-4013-9408-e04b7db2814a}": USBPort UsbPort;
  64. case "{7426a56b-e2d5-4b30-bdef-b31815c1a74a}": USBHub UsbHub;
  65. }
  66. }
  67. Protocol USBPort = property.ETLSummary
  68. {
  69. [BuildConversationWithParent, conversation.ConversationDescription = ""]
  70. //
  71. // All URBs logged by Usbport *do not* include NTSTATUS
  72. //
  73. [Property.InternalUsbNtstatusUrbs = 0]
  74. switch(property.EventID)
  75. {
  76. case 1: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_ADD USBPORT_ETW_EVENT_HC_ADD;
  77. case 2: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_REMOVAL USBPORT_ETW_EVENT_HC_REMOVAL;
  78. case 3: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_INFORMATION USBPORT_ETW_EVENT_HC_INFORMATION;
  79. case 4: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_START USBPORT_ETW_EVENT_HC_START;
  80. case 5: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_STOP USBPORT_ETW_EVENT_HC_STOP;
  81. case 6: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_SUSPEND USBPORT_ETW_EVENT_HC_SUSPEND;
  82. case 7: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_RESUME USBPORT_ETW_EVENT_HC_RESUME;
  83. case 8: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_ENABLE USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_ENABLE;
  84. case 9: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_DISABLE USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_DISABLE;
  85. case 10: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_ENABLE USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_ENABLE;
  86. case 11: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_DISABLE USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_DISABLE;
  87. case 12: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_CREATE USBPORT_ETW_EVENT_DEVICE_CREATE;
  88. case 13: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_INITIALIZE USBPORT_ETW_EVENT_DEVICE_INITIALIZE;
  89. case 14: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_REMOVAL USBPORT_ETW_EVENT_DEVICE_REMOVAL;
  90. case 15: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_INFORMATION USBPORT_ETW_EVENT_DEVICE_INFORMATION;
  91. case 16: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_SET USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_SET;
  92. case 17: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_CLEAR USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_CLEAR;
  93. case 18: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_ENDPOINT_OPEN USBPORT_ETW_EVENT_ENDPOINT_OPEN;
  94. case 19: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_ENDPOINT_CLOSE USBPORT_ETW_EVENT_ENDPOINT_CLOSE;
  95. case 20: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_ENDPOINT_INFORMATION USBPORT_ETW_EVENT_ENDPOINT_INFORMATION;
  96. case 21: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_CONFIGURATION USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_CONFIGURATION;
  97. case 22: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_INTERFACE;
  98. case 23: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CURRENT_FRAME_NUMBER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CURRENT_FRAME_NUMBER;
  99. case 24: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER;
  100. case 25: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER_EX USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER_EX;
  101. case 26: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER;
  102. case 27: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ISOCH_TRANSFER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ISOCH_TRANSFER;
  103. case 28: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE;
  104. case 29: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE;
  105. case 30: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT;
  106. case 31: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT;
  107. case 32: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE;
  108. case 33: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE;
  109. case 34: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_DEVICE;
  110. case 35: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_INTERFACE;
  111. case 36: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_ENDPOINT;
  112. case 37: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE;
  113. case 38: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE;
  114. case 39: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT;
  115. case 40: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_OTHER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_OTHER;
  116. case 41: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_OTHER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_OTHER;
  117. case 42: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_DEVICE;
  118. case 43: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_INTERFACE;
  119. case 44: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_ENDPOINT;
  120. case 45: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_OTHER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_OTHER;
  121. case 46: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_DEVICE;
  122. case 47: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_INTERFACE;
  123. case 48: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_ENDPOINT;
  124. case 49: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_DEVICE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_DEVICE;
  125. case 50: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_INTERFACE;
  126. case 51: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_ENDPOINT;
  127. case 52: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_OTHER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_OTHER;
  128. case 53: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_OTHER USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_OTHER;
  129. case 54: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ABORT_PIPE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ABORT_PIPE;
  130. case 55: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL;
  131. case 56: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE;
  132. case 57: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_CLEAR_STALL USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_CLEAR_STALL;
  133. case 58: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CONFIGURATION USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CONFIGURATION;
  134. case 59: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_INTERFACE USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_INTERFACE;
  135. case 60: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR;
  136. case 61: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL;
  137. case 62: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL;
  138. case 63: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_FRAME_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_FRAME_LENGTH;
  139. case 64: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FRAME_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FRAME_LENGTH;
  140. case 65: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RESERVED USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RESERVED;
  141. case 66: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER;
  142. case 67: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX;
  143. case 68: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_DATA USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_DATA;
  144. case 69: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX_DATA USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX_DATA;
  145. case 70: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER;
  146. case 71: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_DATA USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_DATA;
  147. case 72: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER;
  148. case 73: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER_DATA USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER_DATA;
  149. case 74: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER USBPORT_ETW_EVENT_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER;
  150. case 75: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER;
  151. case 76: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER_DATA USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER_DATA;
  152. case 77: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ABORT_PIPE USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ABORT_PIPE;
  153. case 78: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH_WARNING USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH_WARNING;
  154. case 79: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION;
  155. case 80: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH;
  156. case 81: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DEVICE_HANDLE USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DEVICE_HANDLE;
  157. case 82: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_NOT_SUPPORTED USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_NOT_SUPPORTED;
  158. case 83: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_RESERVED USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_RESERVED;
  159. case 84: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DUE_TO_HC_SUSPEND USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DUE_TO_HC_SUSPEND;
  160. case 85: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_URB_LINK USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_URB_LINK;
  161. case 86: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_PIPE_HANDLE USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_PIPE_HANDLE;
  162. case 87: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ZERO_BW_PIPE_HANDLE USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ZERO_BW_PIPE_HANDLE;
  163. case 88: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ZERO_BW_PIPE_HANDLE_REQUEST USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ZERO_BW_PIPE_HANDLE_REQUEST;
  164. case 89: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_ENDPOINT;
  165. case 90: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_BUFFER_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_BUFFER_LENGTH;
  166. case 91: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_ENDPOINT;
  167. case 92: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_BUFFER_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_BUFFER_LENGTH;
  168. case 93: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_TRANSFER_ENDPOINT USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_TRANSFER_ENDPOINT;
  169. case 94: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NULL_TRANSFER_BUFFER_AND_MDL USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NULL_TRANSFER_BUFFER_AND_MDL;
  170. case 95: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NON_NULL_TRANSFER_BUFFER_MDL USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NON_NULL_TRANSFER_BUFFER_MDL;
  171. case 96: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_MDL_FAILURE USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_MDL_FAILURE;
  172. case 97: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_TRANSFER_CONTEXT_FAILURE USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_TRANSFER_CONTEXT_FAILURE;
  173. case 98: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ROOTHUB_PIPE_HANDLE_REQUEST USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ROOTHUB_PIPE_HANDLE_REQUEST;
  174. case 99: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_ZERO_LENGTH USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_ZERO_LENGTH;
  175. case 100: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_NUM_PACKETS USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_NUM_PACKETS;
  176. case 101: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_START_FRAME USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_START_FRAME;
  177. case 102: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_IRP_CANCEL USBPORT_ETW_EVENT_IRP_CANCEL;
  178. case 103: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_DISPATCH USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_DISPATCH;
  179. case 104: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS1 USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS1;
  180. case 105: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS2 USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS2;
  181. case 106: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS3 USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS3;
  182. case 107: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_COMPLETE USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_COMPLETE;
  183. case 108: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH;
  184. case 109: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH_DATA USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH_DATA;
  185. case 110: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_TIMEOUT USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_TIMEOUT;
  186. case 111: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE;
  187. case 112: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE_DATA USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE_DATA;
  188. case 113: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_CODE_EXECUTION_TIME USBPORT_ETW_EVENT_CODE_EXECUTION_TIME;
  189. case 114: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_PUT_SGLIST_EXECUTION_TIME USBPORT_ETW_EVENT_PUT_SGLIST_EXECUTION_TIME;
  190. case 115: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_BUILD_SGLIST_EXECUTION_TIME USBPORT_ETW_EVENT_BUILD_SGLIST_EXECUTION_TIME;
  191. case 1024: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_DISPATCH USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_DISPATCH;
  192. case 1025: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE;
  193. case 1026: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_1;
  194. case 1027: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_2;
  195. case 1028: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_3;
  196. case 1029: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_4;
  197. case 1030: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_5 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_5;
  198. case 1031: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_DISPATCH USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_DISPATCH;
  199. case 1032: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_COMPLETE USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_COMPLETE;
  200. case 1033: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_DISPATCH USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_DISPATCH;
  201. case 1034: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_COMPLETE USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_COMPLETE;
  202. case 1035: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_DISPATCH USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_DISPATCH;
  203. case 1036: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE;
  204. case 1037: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_1;
  205. case 1038: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_2;
  206. case 1039: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_3;
  207. case 1040: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_4;
  208. case 1041: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_5;
  209. case 1042: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_6 USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_6;
  210. case 2048: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_DISPATCH USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_DISPATCH;
  211. case 2049: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE;
  212. case 2050: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_1;
  213. case 2051: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_2;
  214. case 2052: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_3;
  215. case 2053: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_4;
  216. case 2054: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_5 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_5;
  217. case 2055: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_DISPATCH USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_DISPATCH;
  218. case 2056: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_COMPLETE USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_COMPLETE;
  219. case 2057: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_DISPATCH USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_DISPATCH;
  220. case 2058: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_COMPLETE USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_COMPLETE;
  221. case 2059: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_DISPATCH USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_DISPATCH;
  222. case 2060: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE;
  223. case 2061: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_1;
  224. case 2062: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_2;
  225. case 2063: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_3;
  226. case 2064: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_4;
  227. case 2065: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_5;
  228. case 3072: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_DISPATCH USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_DISPATCH;
  229. case 3073: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE;
  230. case 3074: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_1;
  231. case 3075: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_2;
  232. case 3076: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_3;
  233. case 3077: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_4;
  234. case 3078: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_DISPATCH USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_DISPATCH;
  235. case 3079: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_COMPLETE USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_COMPLETE;
  236. case 3080: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_DISPATCH USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_DISPATCH;
  237. case 3081: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_COMPLETE USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_COMPLETE;
  238. case 3082: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_DISPATCH USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_DISPATCH;
  239. case 3083: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE;
  240. case 3084: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_1;
  241. case 3085: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_2;
  242. case 3086: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_3;
  243. case 3087: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_4;
  244. case 3088: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_5;
  245. case 3089: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_RTPM_TRANSITION USBPORT_ETW_EVENT_RTPM_TRANSITION;
  246. case 3090: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_DISPATCH_WAIT_WAKE USBPORT_ETW_EVENT_DISPATCH_WAIT_WAKE;
  247. case 3091: [property.ETLSummary = this.ToString] USBPort_USBPORT_ETW_EVENT_COMPLETE_WAIT_WAKE USBPORT_ETW_EVENT_COMPLETE_WAIT_WAKE;
  248. default: [property.ETLSummary = "Not exist EventID"]struct{};
  249. }
  250. }
  251. Table RunTimePmSetupStatus(value)
  252. {
  253. switch(value)
  254. {
  255. case 0: "Successful";
  256. case 1: "FailedDueToCompanionController";
  257. case 2: "FailedDueToNoS0WakeSupport";
  258. case 3: "FailedDueToFailedPoRegistration";
  259. default:
  260. FormatString("Unknown value: %d", value);
  261. }
  262. }
  263. Table RunTimePmEvent(value)
  264. {
  265. switch(value)
  266. {
  267. case 0: "PowerRequiredCallbackInvoked";
  268. case 1: "PowerNotRequiredCallbackInvoked";
  269. case 2: "ActiveCallbackInvoked";
  270. case 3: "IdleCallbackInvoked";
  271. case 4: "EnteredD0";
  272. case 5: "EnteredD2";
  273. case 6: "EnteredD3";
  274. default:
  275. FormatString("Unknown value: %d", value);
  276. }
  277. }
  278. Struct USBPort_USBPORT_ETW_EVENT_HC_ADD = FormatString("Host Controller Add")
  279. {
  280. USBPort_HostController2 HostController;
  281. }
  282. Struct USBPort_USBPORT_ETW_EVENT_HC_REMOVAL = FormatString("Host Controller Removal")
  283. {
  284. USBPort_HostController2 HostController;
  285. }
  286. Struct USBPort_USBPORT_ETW_EVENT_HC_INFORMATION = FormatString("Host Controller Information")
  287. {
  288. // Get to the host controller conversation just so we can modify the USBIsEhci property of the conversation (not sure how this works exactly)
  289. [Post.ProxyBuildConversationWithParent("USB", USBPort_HostController.ToString)]
  290. USBPort_HostController2 HostController;
  291. struct fid_USBPORT_HC_Idle_Status
  292. {
  293. [Conversation.USBIsEhci = this]
  294. UINT8 fid_HC_HighSpeed;
  295. UINT8 fid_HC_Run;
  296. UINT8 fid_HC_AsyncScheduleEnable;
  297. UINT8 fid_HC_PeriodicScheduleEnable;
  298. }
  299. UnicodeString fid_USBPORT_HC_Pdo_Name;
  300. UINT32 fid_RunTimePmSetupStatus = RunTimePmSetupStatus(this);
  301. UINT32 fid_DevicePowerState;
  302. }
  303. Struct USBPort_USBPORT_ETW_EVENT_HC_START = FormatString("Host Controller Start")
  304. {
  305. USBPort_HostController2 HostController;
  306. }
  307. Struct USBPort_USBPORT_ETW_EVENT_HC_STOP = FormatString("Host Controller Stop")
  308. {
  309. USBPort_HostController2 HostController;
  310. }
  311. Struct USBPort_USBPORT_ETW_EVENT_HC_SUSPEND = FormatString("Host Controller Suspend")
  312. {
  313. USBPort_HostController2 HostController;
  314. }
  315. Struct USBPort_USBPORT_ETW_EVENT_HC_RESUME = FormatString("Host Controller Resume")
  316. {
  317. USBPort_HostController2 HostController;
  318. }
  319. Struct USBPort_USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_ENABLE = FormatString("Host Controller Async Schedule Enable")
  320. {
  321. USBPort_HostController2 HostController;
  322. }
  323. Struct USBPort_USBPORT_ETW_EVENT_HC_ASYNC_SCHEDULE_DISABLE = FormatString("Host Controller Async Schedule Disable")
  324. {
  325. USBPort_HostController2 HostController;
  326. }
  327. Struct USBPort_USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_ENABLE = FormatString("Host Controller Periodic Schedule Enable")
  328. {
  329. USBPort_HostController2 HostController;
  330. }
  331. Struct USBPort_USBPORT_ETW_EVENT_HC_PERIODIC_SCHEDULE_DISABLE = FormatString("Host Controller Periodic Schedule Disable")
  332. {
  333. USBPort_HostController2 HostController;
  334. }
  335. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_CREATE = FormatString("Device Create")
  336. {
  337. USBPort_HostController2 HostController;
  338. struct fid_USBPORT_Device
  339. {
  340. EtlPtr DeviceHandle;
  341. UINT16 idVendor;
  342. UINT16 idProduct;
  343. UsbPortPath PortPath;
  344. UINT32 DeviceSpeed;
  345. UINT32 DeviceAddress;
  346. }
  347. USB_DEVICE_DESCRIPTOR fid_USBPORT_Device_Descriptor;
  348. }
  349. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_INITIALIZE = FormatString("Device Initialize")
  350. {
  351. USBPort_HostController2 HostController;
  352. struct fid_USBPORT_Device
  353. {
  354. EtlPtr DeviceHandle;
  355. UINT16 idVendor;
  356. UINT16 idProduct;
  357. UsbPortPath PortPath;
  358. UINT32 DeviceSpeed;
  359. UINT32 DeviceAddress;
  360. }
  361. USB_DEVICE_DESCRIPTOR fid_USBPORT_Device_Descriptor;
  362. }
  363. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_REMOVAL = FormatString("Device Removal")
  364. {
  365. USBPort_HostController2 HostController;
  366. struct fid_USBPORT_Device
  367. {
  368. EtlPtr DeviceHandle;
  369. UINT16 idVendor;
  370. UINT16 idProduct;
  371. UsbPortPath PortPath;
  372. UINT32 DeviceSpeed;
  373. UINT32 DeviceAddress;
  374. }
  375. }
  376. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_INFORMATION = FormatString("Device Information")
  377. {
  378. USBPort_HostController2 HostController;
  379. struct fid_USBPORT_Device
  380. {
  381. EtlPtr DeviceHandle;
  382. UINT16 idVendor;
  383. UINT16 idProduct;
  384. UsbPortPath PortPath;
  385. UINT32 DeviceSpeed;
  386. UINT32 DeviceAddress;
  387. }
  388. USB_DEVICE_DESCRIPTOR fid_USBPORT_Device_Descriptor;
  389. UnicodeString(16) fid_USBPORT_Device_Driver_Name;
  390. UINT32 fid_USBPORT_Device_Idle_State;
  391. UnicodeString fid_USBPORT_Device_Pdo_Name;
  392. }
  393. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_SET = FormatString("Device Idle State Set")
  394. {
  395. USBPort_HostController2 HostController;
  396. struct fid_USBPORT_Device
  397. {
  398. EtlPtr DeviceHandle;
  399. UINT16 idVendor;
  400. UINT16 idProduct;
  401. UsbPortPath PortPath;
  402. UINT32 DeviceSpeed;
  403. UINT32 DeviceAddress;
  404. }
  405. UINT32 fid_USBPORT_Device_Idle_Previous_State;
  406. UINT32 fid_USBPORT_Device_Idle_New_State;
  407. }
  408. Struct USBPort_USBPORT_ETW_EVENT_DEVICE_IDLE_STATE_CLEAR = FormatString("Device Idle State Clear")
  409. {
  410. USBPort_HostController2 HostController;
  411. struct fid_USBPORT_Device
  412. {
  413. EtlPtr DeviceHandle;
  414. UINT16 idVendor;
  415. UINT16 idProduct;
  416. UsbPortPath PortPath;
  417. UINT32 DeviceSpeed;
  418. UINT32 DeviceAddress;
  419. }
  420. UINT32 fid_USBPORT_Device_Idle_Previous_State;
  421. UINT32 fid_USBPORT_Device_Idle_New_State;
  422. }
  423. Struct USBPort_USBPORT_ETW_EVENT_ENDPOINT_OPEN = FormatString("Endpoint Open")
  424. {
  425. USBPort_HostController2 HostController;
  426. struct fid_USBPORT_Device
  427. {
  428. EtlPtr DeviceHandle;
  429. UINT16 idVendor;
  430. UINT16 idProduct;
  431. UsbPortPath PortPath;
  432. UINT32 DeviceSpeed;
  433. UINT32 DeviceAddress;
  434. }
  435. struct fid_USBPORT_Endpoint
  436. {
  437. EtlPtr Endpoint;
  438. EtlPtr PipeHandle;
  439. EtlPtr DeviceHandle;
  440. }
  441. struct fid_USBPORT_Endpoint_Descriptor
  442. {
  443. UINT8 fid_bLength;
  444. UINT8 fid_bDescriptorType;
  445. [Property.USBEndpoint = FormatString("0x%x", this)]
  446. UINT8 fid_bEndpointAddress;
  447. UINT8 fid_bmAttributes;
  448. UINT16 fid_wMaxPacketSize;
  449. UINT8 fid_bInterval;
  450. }
  451. }
  452. Struct USBPort_USBPORT_ETW_EVENT_ENDPOINT_CLOSE = FormatString("Endpoint Close")
  453. {
  454. USBPort_HostController2 HostController;
  455. struct fid_USBPORT_Device
  456. {
  457. EtlPtr DeviceHandle;
  458. UINT16 idVendor;
  459. UINT16 idProduct;
  460. UsbPortPath PortPath;
  461. UINT32 DeviceSpeed;
  462. UINT32 DeviceAddress;
  463. }
  464. struct fid_USBPORT_Endpoint
  465. {
  466. EtlPtr Endpoint;
  467. EtlPtr PipeHandle;
  468. EtlPtr DeviceHandle;
  469. }
  470. struct fid_USBPORT_Endpoint_Descriptor
  471. {
  472. UINT8 fid_bLength;
  473. UINT8 fid_bDescriptorType;
  474. [Property.USBEndpoint = FormatString("0x%x", this)]
  475. UINT8 fid_bEndpointAddress;
  476. UINT8 fid_bmAttributes;
  477. UINT16 fid_wMaxPacketSize;
  478. UINT8 fid_bInterval;
  479. }
  480. }
  481. Struct USBPort_USBPORT_ETW_EVENT_ENDPOINT_INFORMATION = FormatString("Endpoint Information")
  482. {
  483. USBPort_HostController2 HostController;
  484. struct fid_USBPORT_Device
  485. {
  486. EtlPtr DeviceHandle;
  487. UINT16 idVendor;
  488. UINT16 idProduct;
  489. UsbPortPath PortPath;
  490. UINT32 DeviceSpeed;
  491. UINT32 DeviceAddress;
  492. }
  493. struct fid_USBPORT_Endpoint
  494. {
  495. EtlPtr Endpoint;
  496. EtlPtr PipeHandle;
  497. EtlPtr DeviceHandle;
  498. }
  499. struct fid_USBPORT_Endpoint_Descriptor
  500. {
  501. UINT8 fid_bLength;
  502. UINT8 fid_bDescriptorType;
  503. [Property.USBEndpoint = FormatString("0x%x", this)]
  504. UINT8 fid_bEndpointAddress;
  505. UINT8 fid_bmAttributes;
  506. UINT16 fid_wMaxPacketSize;
  507. UINT8 fid_bInterval;
  508. }
  509. }
  510. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_CONFIGURATION = FormatString("Dispatch URB_FUNCTION_SELECT_CONFIGURATION")
  511. {
  512. USBPort_HostController2 HostController;
  513. struct fid_USBPORT_Device
  514. {
  515. EtlPtr DeviceHandle;
  516. UINT16 idVendor;
  517. UINT16 idProduct;
  518. UsbPortPath PortPath;
  519. UINT32 DeviceSpeed;
  520. UINT32 DeviceAddress;
  521. }
  522. EtlPtr fid_IRP_Ptr;
  523. UsbUrbPtr fid_URB_Ptr;
  524. UINT16 fid_URB_Length;
  525. UINT8 fid_URB[fid_URB_Length];
  526. UINT16 fid_Configuration_Descriptor_Length;
  527. UINT8 fid_Configuration_Descriptor[fid_Configuration_Descriptor_Length];
  528. }
  529. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SELECT_INTERFACE = FormatString("Dispatch URB_FUNCTION_SELECT_INTERFACE")
  530. {
  531. USBPort_HostController2 HostController;
  532. struct fid_USBPORT_Device
  533. {
  534. EtlPtr DeviceHandle;
  535. UINT16 idVendor;
  536. UINT16 idProduct;
  537. UsbPortPath PortPath;
  538. UINT32 DeviceSpeed;
  539. UINT32 DeviceAddress;
  540. }
  541. EtlPtr fid_IRP_Ptr;
  542. UsbUrbPtr fid_URB_Ptr;
  543. UINT16 fid_URB_Length;
  544. UINT8 fid_URB[fid_URB_Length];
  545. }
  546. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CURRENT_FRAME_NUMBER = FormatString("Dispatch URB_FUNCTION_GET_CURRENT_FRAME_NUMBER")
  547. {
  548. USBPort_HostController2 HostController;
  549. struct fid_USBPORT_Device
  550. {
  551. EtlPtr DeviceHandle;
  552. UINT16 idVendor;
  553. UINT16 idProduct;
  554. UsbPortPath PortPath;
  555. UINT32 DeviceSpeed;
  556. UINT32 DeviceAddress;
  557. }
  558. EtlPtr fid_IRP_Ptr;
  559. UsbUrbPtr fid_URB_Ptr;
  560. UINT32 fid_URB_FrameNumber;
  561. }
  562. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER = FormatString("Dispatch URB_FUNCTION_CONTROL_TRANSFER")
  563. {
  564. USBPort_HostController2 HostController;
  565. struct fid_USBPORT_Device
  566. {
  567. EtlPtr DeviceHandle;
  568. UINT16 idVendor;
  569. UINT16 idProduct;
  570. UsbPortPath PortPath;
  571. UINT32 DeviceSpeed;
  572. UINT32 DeviceAddress;
  573. }
  574. struct fid_USBPORT_Endpoint
  575. {
  576. EtlPtr Endpoint;
  577. EtlPtr PipeHandle;
  578. EtlPtr DeviceHandle;
  579. }
  580. struct fid_USBPORT_Endpoint_Descriptor
  581. {
  582. UINT8 fid_bLength;
  583. UINT8 fid_bDescriptorType;
  584. [Property.USBEndpoint = FormatString("0x%x", this)]
  585. UINT8 fid_bEndpointAddress;
  586. UINT8 fid_bmAttributes;
  587. UINT16 fid_wMaxPacketSize;
  588. UINT8 fid_bInterval;
  589. }
  590. EtlPtr fid_IRP_Ptr;
  591. UsbUrbPtr fid_URB_Ptr;
  592. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  593. }
  594. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CONTROL_TRANSFER_EX = FormatString("Dispatch URB_FUNCTION_CONTROL_TRANSFER_EX")
  595. {
  596. USBPort_HostController2 HostController;
  597. struct fid_USBPORT_Device
  598. {
  599. EtlPtr DeviceHandle;
  600. UINT16 idVendor;
  601. UINT16 idProduct;
  602. UsbPortPath PortPath;
  603. UINT32 DeviceSpeed;
  604. UINT32 DeviceAddress;
  605. }
  606. struct fid_USBPORT_Endpoint
  607. {
  608. EtlPtr Endpoint;
  609. EtlPtr PipeHandle;
  610. EtlPtr DeviceHandle;
  611. }
  612. struct fid_USBPORT_Endpoint_Descriptor
  613. {
  614. UINT8 fid_bLength;
  615. UINT8 fid_bDescriptorType;
  616. [Property.USBEndpoint = FormatString("0x%x", this)]
  617. UINT8 fid_bEndpointAddress;
  618. UINT8 fid_bmAttributes;
  619. UINT16 fid_wMaxPacketSize;
  620. UINT8 fid_bInterval;
  621. }
  622. EtlPtr fid_IRP_Ptr;
  623. UsbUrbPtr fid_URB_Ptr;
  624. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  625. }
  626. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER = FormatString("Dispatch URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER")
  627. {
  628. USBPort_HostController2 HostController;
  629. struct fid_USBPORT_Device
  630. {
  631. EtlPtr DeviceHandle;
  632. UINT16 idVendor;
  633. UINT16 idProduct;
  634. UsbPortPath PortPath;
  635. UINT32 DeviceSpeed;
  636. UINT32 DeviceAddress;
  637. }
  638. struct fid_USBPORT_Endpoint
  639. {
  640. EtlPtr Endpoint;
  641. EtlPtr PipeHandle;
  642. EtlPtr DeviceHandle;
  643. }
  644. struct fid_USBPORT_Endpoint_Descriptor
  645. {
  646. UINT8 fid_bLength;
  647. UINT8 fid_bDescriptorType;
  648. [Property.USBEndpoint = FormatString("0x%x", this)]
  649. UINT8 fid_bEndpointAddress;
  650. UINT8 fid_bmAttributes;
  651. UINT16 fid_wMaxPacketSize;
  652. UINT8 fid_bInterval;
  653. }
  654. EtlPtr fid_IRP_Ptr;
  655. UsbUrbPtr fid_URB_Ptr;
  656. URB Urb;
  657. }
  658. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ISOCH_TRANSFER = FormatString("Dispatch URB_FUNCTION_ISOCH_TRANSFER")
  659. {
  660. USBPort_HostController2 HostController;
  661. struct fid_USBPORT_Device
  662. {
  663. EtlPtr DeviceHandle;
  664. UINT16 idVendor;
  665. UINT16 idProduct;
  666. UsbPortPath PortPath;
  667. UINT32 DeviceSpeed;
  668. UINT32 DeviceAddress;
  669. }
  670. struct fid_USBPORT_Endpoint
  671. {
  672. EtlPtr Endpoint;
  673. EtlPtr PipeHandle;
  674. EtlPtr DeviceHandle;
  675. }
  676. struct fid_USBPORT_Endpoint_Descriptor
  677. {
  678. UINT8 fid_bLength;
  679. UINT8 fid_bDescriptorType;
  680. [Property.USBEndpoint = FormatString("0x%x", this)]
  681. UINT8 fid_bEndpointAddress;
  682. UINT8 fid_bmAttributes;
  683. UINT16 fid_wMaxPacketSize;
  684. UINT8 fid_bInterval;
  685. }
  686. EtlPtr fid_IRP_Ptr;
  687. UsbUrbPtr fid_URB_Ptr;
  688. UINT16 fid_USBPORT_URB_NumberOfPackets;
  689. URB Urb;
  690. }
  691. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE = FormatString("Dispatch URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE")
  692. {
  693. USBPort_HostController2 HostController;
  694. struct fid_USBPORT_Device
  695. {
  696. EtlPtr DeviceHandle;
  697. UINT16 idVendor;
  698. UINT16 idProduct;
  699. UsbPortPath PortPath;
  700. UINT32 DeviceSpeed;
  701. UINT32 DeviceAddress;
  702. }
  703. struct fid_USBPORT_Endpoint
  704. {
  705. EtlPtr Endpoint;
  706. EtlPtr PipeHandle;
  707. EtlPtr DeviceHandle;
  708. }
  709. struct fid_USBPORT_Endpoint_Descriptor
  710. {
  711. UINT8 fid_bLength;
  712. UINT8 fid_bDescriptorType;
  713. [Property.USBEndpoint = FormatString("0x%x", this)]
  714. UINT8 fid_bEndpointAddress;
  715. UINT8 fid_bmAttributes;
  716. UINT16 fid_wMaxPacketSize;
  717. UINT8 fid_bInterval;
  718. }
  719. EtlPtr fid_IRP_Ptr;
  720. UsbUrbPtr fid_URB_Ptr;
  721. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  722. }
  723. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE = FormatString("Dispatch URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE")
  724. {
  725. USBPort_HostController2 HostController;
  726. struct fid_USBPORT_Device
  727. {
  728. EtlPtr DeviceHandle;
  729. UINT16 idVendor;
  730. UINT16 idProduct;
  731. UsbPortPath PortPath;
  732. UINT32 DeviceSpeed;
  733. UINT32 DeviceAddress;
  734. }
  735. struct fid_USBPORT_Endpoint
  736. {
  737. EtlPtr Endpoint;
  738. EtlPtr PipeHandle;
  739. EtlPtr DeviceHandle;
  740. }
  741. struct fid_USBPORT_Endpoint_Descriptor
  742. {
  743. UINT8 fid_bLength;
  744. UINT8 fid_bDescriptorType;
  745. [Property.USBEndpoint = FormatString("0x%x", this)]
  746. UINT8 fid_bEndpointAddress;
  747. UINT8 fid_bmAttributes;
  748. UINT16 fid_wMaxPacketSize;
  749. UINT8 fid_bInterval;
  750. }
  751. EtlPtr fid_IRP_Ptr;
  752. UsbUrbPtr fid_URB_Ptr;
  753. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  754. }
  755. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT = FormatString("Dispatch URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT")
  756. {
  757. USBPort_HostController2 HostController;
  758. struct fid_USBPORT_Device
  759. {
  760. EtlPtr DeviceHandle;
  761. UINT16 idVendor;
  762. UINT16 idProduct;
  763. UsbPortPath PortPath;
  764. UINT32 DeviceSpeed;
  765. UINT32 DeviceAddress;
  766. }
  767. struct fid_USBPORT_Endpoint
  768. {
  769. EtlPtr Endpoint;
  770. EtlPtr PipeHandle;
  771. EtlPtr DeviceHandle;
  772. }
  773. struct fid_USBPORT_Endpoint_Descriptor
  774. {
  775. UINT8 fid_bLength;
  776. UINT8 fid_bDescriptorType;
  777. [Property.USBEndpoint = FormatString("0x%x", this)]
  778. UINT8 fid_bEndpointAddress;
  779. UINT8 fid_bmAttributes;
  780. UINT16 fid_wMaxPacketSize;
  781. UINT8 fid_bInterval;
  782. }
  783. EtlPtr fid_IRP_Ptr;
  784. UsbUrbPtr fid_URB_Ptr;
  785. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  786. }
  787. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT = FormatString("Dispatch URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT")
  788. {
  789. USBPort_HostController2 HostController;
  790. struct fid_USBPORT_Device
  791. {
  792. EtlPtr DeviceHandle;
  793. UINT16 idVendor;
  794. UINT16 idProduct;
  795. UsbPortPath PortPath;
  796. UINT32 DeviceSpeed;
  797. UINT32 DeviceAddress;
  798. }
  799. struct fid_USBPORT_Endpoint
  800. {
  801. EtlPtr Endpoint;
  802. EtlPtr PipeHandle;
  803. EtlPtr DeviceHandle;
  804. }
  805. struct fid_USBPORT_Endpoint_Descriptor
  806. {
  807. UINT8 fid_bLength;
  808. UINT8 fid_bDescriptorType;
  809. [Property.USBEndpoint = FormatString("0x%x", this)]
  810. UINT8 fid_bEndpointAddress;
  811. UINT8 fid_bmAttributes;
  812. UINT16 fid_wMaxPacketSize;
  813. UINT8 fid_bInterval;
  814. }
  815. EtlPtr fid_IRP_Ptr;
  816. UsbUrbPtr fid_URB_Ptr;
  817. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  818. }
  819. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE = FormatString("Dispatch URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE")
  820. {
  821. USBPort_HostController2 HostController;
  822. struct fid_USBPORT_Device
  823. {
  824. EtlPtr DeviceHandle;
  825. UINT16 idVendor;
  826. UINT16 idProduct;
  827. UsbPortPath PortPath;
  828. UINT32 DeviceSpeed;
  829. UINT32 DeviceAddress;
  830. }
  831. struct fid_USBPORT_Endpoint
  832. {
  833. EtlPtr Endpoint;
  834. EtlPtr PipeHandle;
  835. EtlPtr DeviceHandle;
  836. }
  837. struct fid_USBPORT_Endpoint_Descriptor
  838. {
  839. UINT8 fid_bLength;
  840. UINT8 fid_bDescriptorType;
  841. [Property.USBEndpoint = FormatString("0x%x", this)]
  842. UINT8 fid_bEndpointAddress;
  843. UINT8 fid_bmAttributes;
  844. UINT16 fid_wMaxPacketSize;
  845. UINT8 fid_bInterval;
  846. }
  847. EtlPtr fid_IRP_Ptr;
  848. UsbUrbPtr fid_URB_Ptr;
  849. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  850. }
  851. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE = FormatString("Dispatch URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE")
  852. {
  853. USBPort_HostController2 HostController;
  854. struct fid_USBPORT_Device
  855. {
  856. EtlPtr DeviceHandle;
  857. UINT16 idVendor;
  858. UINT16 idProduct;
  859. UsbPortPath PortPath;
  860. UINT32 DeviceSpeed;
  861. UINT32 DeviceAddress;
  862. }
  863. struct fid_USBPORT_Endpoint
  864. {
  865. EtlPtr Endpoint;
  866. EtlPtr PipeHandle;
  867. EtlPtr DeviceHandle;
  868. }
  869. struct fid_USBPORT_Endpoint_Descriptor
  870. {
  871. UINT8 fid_bLength;
  872. UINT8 fid_bDescriptorType;
  873. [Property.USBEndpoint = FormatString("0x%x", this)]
  874. UINT8 fid_bEndpointAddress;
  875. UINT8 fid_bmAttributes;
  876. UINT16 fid_wMaxPacketSize;
  877. UINT8 fid_bInterval;
  878. }
  879. EtlPtr fid_IRP_Ptr;
  880. UsbUrbPtr fid_URB_Ptr;
  881. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  882. }
  883. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_DEVICE = FormatString("Dispatch URB_FUNCTION_SET_FEATURE_TO_DEVICE")
  884. {
  885. USBPort_HostController2 HostController;
  886. struct fid_USBPORT_Device
  887. {
  888. EtlPtr DeviceHandle;
  889. UINT16 idVendor;
  890. UINT16 idProduct;
  891. UsbPortPath PortPath;
  892. UINT32 DeviceSpeed;
  893. UINT32 DeviceAddress;
  894. }
  895. struct fid_USBPORT_Endpoint
  896. {
  897. EtlPtr Endpoint;
  898. EtlPtr PipeHandle;
  899. EtlPtr DeviceHandle;
  900. }
  901. struct fid_USBPORT_Endpoint_Descriptor
  902. {
  903. UINT8 fid_bLength;
  904. UINT8 fid_bDescriptorType;
  905. [Property.USBEndpoint = FormatString("0x%x", this)]
  906. UINT8 fid_bEndpointAddress;
  907. UINT8 fid_bmAttributes;
  908. UINT16 fid_wMaxPacketSize;
  909. UINT8 fid_bInterval;
  910. }
  911. EtlPtr fid_IRP_Ptr;
  912. UsbUrbPtr fid_URB_Ptr;
  913. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  914. }
  915. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_INTERFACE = FormatString("Dispatch URB_FUNCTION_SET_FEATURE_TO_INTERFACE")
  916. {
  917. USBPort_HostController2 HostController;
  918. struct fid_USBPORT_Device
  919. {
  920. EtlPtr DeviceHandle;
  921. UINT16 idVendor;
  922. UINT16 idProduct;
  923. UsbPortPath PortPath;
  924. UINT32 DeviceSpeed;
  925. UINT32 DeviceAddress;
  926. }
  927. struct fid_USBPORT_Endpoint
  928. {
  929. EtlPtr Endpoint;
  930. EtlPtr PipeHandle;
  931. EtlPtr DeviceHandle;
  932. }
  933. struct fid_USBPORT_Endpoint_Descriptor
  934. {
  935. UINT8 fid_bLength;
  936. UINT8 fid_bDescriptorType;
  937. [Property.USBEndpoint = FormatString("0x%x", this)]
  938. UINT8 fid_bEndpointAddress;
  939. UINT8 fid_bmAttributes;
  940. UINT16 fid_wMaxPacketSize;
  941. UINT8 fid_bInterval;
  942. }
  943. EtlPtr fid_IRP_Ptr;
  944. UsbUrbPtr fid_URB_Ptr;
  945. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  946. }
  947. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_ENDPOINT = FormatString("Dispatch URB_FUNCTION_SET_FEATURE_TO_ENDPOINT")
  948. {
  949. USBPort_HostController2 HostController;
  950. struct fid_USBPORT_Device
  951. {
  952. EtlPtr DeviceHandle;
  953. UINT16 idVendor;
  954. UINT16 idProduct;
  955. UsbPortPath PortPath;
  956. UINT32 DeviceSpeed;
  957. UINT32 DeviceAddress;
  958. }
  959. struct fid_USBPORT_Endpoint
  960. {
  961. EtlPtr Endpoint;
  962. EtlPtr PipeHandle;
  963. EtlPtr DeviceHandle;
  964. }
  965. struct fid_USBPORT_Endpoint_Descriptor
  966. {
  967. UINT8 fid_bLength;
  968. UINT8 fid_bDescriptorType;
  969. [Property.USBEndpoint = FormatString("0x%x", this)]
  970. UINT8 fid_bEndpointAddress;
  971. UINT8 fid_bmAttributes;
  972. UINT16 fid_wMaxPacketSize;
  973. UINT8 fid_bInterval;
  974. }
  975. EtlPtr fid_IRP_Ptr;
  976. UsbUrbPtr fid_URB_Ptr;
  977. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  978. }
  979. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE = FormatString("Dispatch URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE")
  980. {
  981. USBPort_HostController2 HostController;
  982. struct fid_USBPORT_Device
  983. {
  984. EtlPtr DeviceHandle;
  985. UINT16 idVendor;
  986. UINT16 idProduct;
  987. UsbPortPath PortPath;
  988. UINT32 DeviceSpeed;
  989. UINT32 DeviceAddress;
  990. }
  991. struct fid_USBPORT_Endpoint
  992. {
  993. EtlPtr Endpoint;
  994. EtlPtr PipeHandle;
  995. EtlPtr DeviceHandle;
  996. }
  997. struct fid_USBPORT_Endpoint_Descriptor
  998. {
  999. UINT8 fid_bLength;
  1000. UINT8 fid_bDescriptorType;
  1001. [Property.USBEndpoint = FormatString("0x%x", this)]
  1002. UINT8 fid_bEndpointAddress;
  1003. UINT8 fid_bmAttributes;
  1004. UINT16 fid_wMaxPacketSize;
  1005. UINT8 fid_bInterval;
  1006. }
  1007. EtlPtr fid_IRP_Ptr;
  1008. UsbUrbPtr fid_URB_Ptr;
  1009. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1010. }
  1011. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE = FormatString("Dispatch URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE")
  1012. {
  1013. USBPort_HostController2 HostController;
  1014. struct fid_USBPORT_Device
  1015. {
  1016. EtlPtr DeviceHandle;
  1017. UINT16 idVendor;
  1018. UINT16 idProduct;
  1019. UsbPortPath PortPath;
  1020. UINT32 DeviceSpeed;
  1021. UINT32 DeviceAddress;
  1022. }
  1023. struct fid_USBPORT_Endpoint
  1024. {
  1025. EtlPtr Endpoint;
  1026. EtlPtr PipeHandle;
  1027. EtlPtr DeviceHandle;
  1028. }
  1029. struct fid_USBPORT_Endpoint_Descriptor
  1030. {
  1031. UINT8 fid_bLength;
  1032. UINT8 fid_bDescriptorType;
  1033. [Property.USBEndpoint = FormatString("0x%x", this)]
  1034. UINT8 fid_bEndpointAddress;
  1035. UINT8 fid_bmAttributes;
  1036. UINT16 fid_wMaxPacketSize;
  1037. UINT8 fid_bInterval;
  1038. }
  1039. EtlPtr fid_IRP_Ptr;
  1040. UsbUrbPtr fid_URB_Ptr;
  1041. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1042. }
  1043. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT = FormatString("Dispatch URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT")
  1044. {
  1045. USBPort_HostController2 HostController;
  1046. struct fid_USBPORT_Device
  1047. {
  1048. EtlPtr DeviceHandle;
  1049. UINT16 idVendor;
  1050. UINT16 idProduct;
  1051. UsbPortPath PortPath;
  1052. UINT32 DeviceSpeed;
  1053. UINT32 DeviceAddress;
  1054. }
  1055. struct fid_USBPORT_Endpoint
  1056. {
  1057. EtlPtr Endpoint;
  1058. EtlPtr PipeHandle;
  1059. EtlPtr DeviceHandle;
  1060. }
  1061. struct fid_USBPORT_Endpoint_Descriptor
  1062. {
  1063. UINT8 fid_bLength;
  1064. UINT8 fid_bDescriptorType;
  1065. [Property.USBEndpoint = FormatString("0x%x", this)]
  1066. UINT8 fid_bEndpointAddress;
  1067. UINT8 fid_bmAttributes;
  1068. UINT16 fid_wMaxPacketSize;
  1069. UINT8 fid_bInterval;
  1070. }
  1071. EtlPtr fid_IRP_Ptr;
  1072. UsbUrbPtr fid_URB_Ptr;
  1073. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1074. }
  1075. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLEAR_FEATURE_TO_OTHER = FormatString("Dispatch URB_FUNCTION_CLEAR_FEATURE_TO_OTHER")
  1076. {
  1077. USBPort_HostController2 HostController;
  1078. struct fid_USBPORT_Device
  1079. {
  1080. EtlPtr DeviceHandle;
  1081. UINT16 idVendor;
  1082. UINT16 idProduct;
  1083. UsbPortPath PortPath;
  1084. UINT32 DeviceSpeed;
  1085. UINT32 DeviceAddress;
  1086. }
  1087. struct fid_USBPORT_Endpoint
  1088. {
  1089. EtlPtr Endpoint;
  1090. EtlPtr PipeHandle;
  1091. EtlPtr DeviceHandle;
  1092. }
  1093. struct fid_USBPORT_Endpoint_Descriptor
  1094. {
  1095. UINT8 fid_bLength;
  1096. UINT8 fid_bDescriptorType;
  1097. [Property.USBEndpoint = FormatString("0x%x", this)]
  1098. UINT8 fid_bEndpointAddress;
  1099. UINT8 fid_bmAttributes;
  1100. UINT16 fid_wMaxPacketSize;
  1101. UINT8 fid_bInterval;
  1102. }
  1103. EtlPtr fid_IRP_Ptr;
  1104. UsbUrbPtr fid_URB_Ptr;
  1105. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1106. }
  1107. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FEATURE_TO_OTHER = FormatString("Dispatch URB_FUNCTION_SET_FEATURE_TO_OTHER")
  1108. {
  1109. USBPort_HostController2 HostController;
  1110. struct fid_USBPORT_Device
  1111. {
  1112. EtlPtr DeviceHandle;
  1113. UINT16 idVendor;
  1114. UINT16 idProduct;
  1115. UsbPortPath PortPath;
  1116. UINT32 DeviceSpeed;
  1117. UINT32 DeviceAddress;
  1118. }
  1119. struct fid_USBPORT_Endpoint
  1120. {
  1121. EtlPtr Endpoint;
  1122. EtlPtr PipeHandle;
  1123. EtlPtr DeviceHandle;
  1124. }
  1125. struct fid_USBPORT_Endpoint_Descriptor
  1126. {
  1127. UINT8 fid_bLength;
  1128. UINT8 fid_bDescriptorType;
  1129. [Property.USBEndpoint = FormatString("0x%x", this)]
  1130. UINT8 fid_bEndpointAddress;
  1131. UINT8 fid_bmAttributes;
  1132. UINT16 fid_wMaxPacketSize;
  1133. UINT8 fid_bInterval;
  1134. }
  1135. EtlPtr fid_IRP_Ptr;
  1136. UsbUrbPtr fid_URB_Ptr;
  1137. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1138. }
  1139. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_DEVICE = FormatString("Dispatch URB_FUNCTION_GET_STATUS_FROM_DEVICE")
  1140. {
  1141. USBPort_HostController2 HostController;
  1142. struct fid_USBPORT_Device
  1143. {
  1144. EtlPtr DeviceHandle;
  1145. UINT16 idVendor;
  1146. UINT16 idProduct;
  1147. UsbPortPath PortPath;
  1148. UINT32 DeviceSpeed;
  1149. UINT32 DeviceAddress;
  1150. }
  1151. struct fid_USBPORT_Endpoint
  1152. {
  1153. EtlPtr Endpoint;
  1154. EtlPtr PipeHandle;
  1155. EtlPtr DeviceHandle;
  1156. }
  1157. struct fid_USBPORT_Endpoint_Descriptor
  1158. {
  1159. UINT8 fid_bLength;
  1160. UINT8 fid_bDescriptorType;
  1161. [Property.USBEndpoint = FormatString("0x%x", this)]
  1162. UINT8 fid_bEndpointAddress;
  1163. UINT8 fid_bmAttributes;
  1164. UINT16 fid_wMaxPacketSize;
  1165. UINT8 fid_bInterval;
  1166. }
  1167. EtlPtr fid_IRP_Ptr;
  1168. UsbUrbPtr fid_URB_Ptr;
  1169. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1170. }
  1171. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_INTERFACE = FormatString("Dispatch URB_FUNCTION_GET_STATUS_FROM_INTERFACE")
  1172. {
  1173. USBPort_HostController2 HostController;
  1174. struct fid_USBPORT_Device
  1175. {
  1176. EtlPtr DeviceHandle;
  1177. UINT16 idVendor;
  1178. UINT16 idProduct;
  1179. UsbPortPath PortPath;
  1180. UINT32 DeviceSpeed;
  1181. UINT32 DeviceAddress;
  1182. }
  1183. struct fid_USBPORT_Endpoint
  1184. {
  1185. EtlPtr Endpoint;
  1186. EtlPtr PipeHandle;
  1187. EtlPtr DeviceHandle;
  1188. }
  1189. struct fid_USBPORT_Endpoint_Descriptor
  1190. {
  1191. UINT8 fid_bLength;
  1192. UINT8 fid_bDescriptorType;
  1193. [Property.USBEndpoint = FormatString("0x%x", this)]
  1194. UINT8 fid_bEndpointAddress;
  1195. UINT8 fid_bmAttributes;
  1196. UINT16 fid_wMaxPacketSize;
  1197. UINT8 fid_bInterval;
  1198. }
  1199. EtlPtr fid_IRP_Ptr;
  1200. UsbUrbPtr fid_URB_Ptr;
  1201. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1202. }
  1203. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_ENDPOINT = FormatString("Dispatch URB_FUNCTION_GET_STATUS_FROM_ENDPOINT")
  1204. {
  1205. USBPort_HostController2 HostController;
  1206. struct fid_USBPORT_Device
  1207. {
  1208. EtlPtr DeviceHandle;
  1209. UINT16 idVendor;
  1210. UINT16 idProduct;
  1211. UsbPortPath PortPath;
  1212. UINT32 DeviceSpeed;
  1213. UINT32 DeviceAddress;
  1214. }
  1215. struct fid_USBPORT_Endpoint
  1216. {
  1217. EtlPtr Endpoint;
  1218. EtlPtr PipeHandle;
  1219. EtlPtr DeviceHandle;
  1220. }
  1221. struct fid_USBPORT_Endpoint_Descriptor
  1222. {
  1223. UINT8 fid_bLength;
  1224. UINT8 fid_bDescriptorType;
  1225. [Property.USBEndpoint = FormatString("0x%x", this)]
  1226. UINT8 fid_bEndpointAddress;
  1227. UINT8 fid_bmAttributes;
  1228. UINT16 fid_wMaxPacketSize;
  1229. UINT8 fid_bInterval;
  1230. }
  1231. EtlPtr fid_IRP_Ptr;
  1232. UsbUrbPtr fid_URB_Ptr;
  1233. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1234. }
  1235. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_STATUS_FROM_OTHER = FormatString("Dispatch URB_FUNCTION_GET_STATUS_FROM_OTHER")
  1236. {
  1237. USBPort_HostController2 HostController;
  1238. struct fid_USBPORT_Device
  1239. {
  1240. EtlPtr DeviceHandle;
  1241. UINT16 idVendor;
  1242. UINT16 idProduct;
  1243. UsbPortPath PortPath;
  1244. UINT32 DeviceSpeed;
  1245. UINT32 DeviceAddress;
  1246. }
  1247. struct fid_USBPORT_Endpoint
  1248. {
  1249. EtlPtr Endpoint;
  1250. EtlPtr PipeHandle;
  1251. EtlPtr DeviceHandle;
  1252. }
  1253. struct fid_USBPORT_Endpoint_Descriptor
  1254. {
  1255. UINT8 fid_bLength;
  1256. UINT8 fid_bDescriptorType;
  1257. [Property.USBEndpoint = FormatString("0x%x", this)]
  1258. UINT8 fid_bEndpointAddress;
  1259. UINT8 fid_bmAttributes;
  1260. UINT16 fid_wMaxPacketSize;
  1261. UINT8 fid_bInterval;
  1262. }
  1263. EtlPtr fid_IRP_Ptr;
  1264. UsbUrbPtr fid_URB_Ptr;
  1265. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1266. }
  1267. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_DEVICE = FormatString("Dispatch URB_FUNCTION_VENDOR_DEVICE")
  1268. {
  1269. USBPort_HostController2 HostController;
  1270. struct fid_USBPORT_Device
  1271. {
  1272. EtlPtr DeviceHandle;
  1273. UINT16 idVendor;
  1274. UINT16 idProduct;
  1275. UsbPortPath PortPath;
  1276. UINT32 DeviceSpeed;
  1277. UINT32 DeviceAddress;
  1278. }
  1279. struct fid_USBPORT_Endpoint
  1280. {
  1281. EtlPtr Endpoint;
  1282. EtlPtr PipeHandle;
  1283. EtlPtr DeviceHandle;
  1284. }
  1285. struct fid_USBPORT_Endpoint_Descriptor
  1286. {
  1287. UINT8 fid_bLength;
  1288. UINT8 fid_bDescriptorType;
  1289. [Property.USBEndpoint = FormatString("0x%x", this)]
  1290. UINT8 fid_bEndpointAddress;
  1291. UINT8 fid_bmAttributes;
  1292. UINT16 fid_wMaxPacketSize;
  1293. UINT8 fid_bInterval;
  1294. }
  1295. EtlPtr fid_IRP_Ptr;
  1296. UsbUrbPtr fid_URB_Ptr;
  1297. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1298. }
  1299. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_INTERFACE = FormatString("Dispatch URB_FUNCTION_VENDOR_INTERFACE")
  1300. {
  1301. USBPort_HostController2 HostController;
  1302. struct fid_USBPORT_Device
  1303. {
  1304. EtlPtr DeviceHandle;
  1305. UINT16 idVendor;
  1306. UINT16 idProduct;
  1307. UsbPortPath PortPath;
  1308. UINT32 DeviceSpeed;
  1309. UINT32 DeviceAddress;
  1310. }
  1311. struct fid_USBPORT_Endpoint
  1312. {
  1313. EtlPtr Endpoint;
  1314. EtlPtr PipeHandle;
  1315. EtlPtr DeviceHandle;
  1316. }
  1317. struct fid_USBPORT_Endpoint_Descriptor
  1318. {
  1319. UINT8 fid_bLength;
  1320. UINT8 fid_bDescriptorType;
  1321. [Property.USBEndpoint = FormatString("0x%x", this)]
  1322. UINT8 fid_bEndpointAddress;
  1323. UINT8 fid_bmAttributes;
  1324. UINT16 fid_wMaxPacketSize;
  1325. UINT8 fid_bInterval;
  1326. }
  1327. EtlPtr fid_IRP_Ptr;
  1328. UsbUrbPtr fid_URB_Ptr;
  1329. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1330. }
  1331. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_ENDPOINT = FormatString("Dispatch URB_FUNCTION_VENDOR_ENDPOINT")
  1332. {
  1333. USBPort_HostController2 HostController;
  1334. struct fid_USBPORT_Device
  1335. {
  1336. EtlPtr DeviceHandle;
  1337. UINT16 idVendor;
  1338. UINT16 idProduct;
  1339. UsbPortPath PortPath;
  1340. UINT32 DeviceSpeed;
  1341. UINT32 DeviceAddress;
  1342. }
  1343. struct fid_USBPORT_Endpoint
  1344. {
  1345. EtlPtr Endpoint;
  1346. EtlPtr PipeHandle;
  1347. EtlPtr DeviceHandle;
  1348. }
  1349. struct fid_USBPORT_Endpoint_Descriptor
  1350. {
  1351. UINT8 fid_bLength;
  1352. UINT8 fid_bDescriptorType;
  1353. [Property.USBEndpoint = FormatString("0x%x", this)]
  1354. UINT8 fid_bEndpointAddress;
  1355. UINT8 fid_bmAttributes;
  1356. UINT16 fid_wMaxPacketSize;
  1357. UINT8 fid_bInterval;
  1358. }
  1359. EtlPtr fid_IRP_Ptr;
  1360. UsbUrbPtr fid_URB_Ptr;
  1361. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1362. }
  1363. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_DEVICE = FormatString("Dispatch URB_FUNCTION_CLASS_DEVICE")
  1364. {
  1365. USBPort_HostController2 HostController;
  1366. struct fid_USBPORT_Device
  1367. {
  1368. EtlPtr DeviceHandle;
  1369. UINT16 idVendor;
  1370. UINT16 idProduct;
  1371. UsbPortPath PortPath;
  1372. UINT32 DeviceSpeed;
  1373. UINT32 DeviceAddress;
  1374. }
  1375. struct fid_USBPORT_Endpoint
  1376. {
  1377. EtlPtr Endpoint;
  1378. EtlPtr PipeHandle;
  1379. EtlPtr DeviceHandle;
  1380. }
  1381. struct fid_USBPORT_Endpoint_Descriptor
  1382. {
  1383. UINT8 fid_bLength;
  1384. UINT8 fid_bDescriptorType;
  1385. [Property.USBEndpoint = FormatString("0x%x", this)]
  1386. UINT8 fid_bEndpointAddress;
  1387. UINT8 fid_bmAttributes;
  1388. UINT16 fid_wMaxPacketSize;
  1389. UINT8 fid_bInterval;
  1390. }
  1391. EtlPtr fid_IRP_Ptr;
  1392. UsbUrbPtr fid_URB_Ptr;
  1393. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1394. }
  1395. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_INTERFACE = FormatString("Dispatch URB_FUNCTION_CLASS_INTERFACE")
  1396. {
  1397. USBPort_HostController2 HostController;
  1398. struct fid_USBPORT_Device
  1399. {
  1400. EtlPtr DeviceHandle;
  1401. UINT16 idVendor;
  1402. UINT16 idProduct;
  1403. UsbPortPath PortPath;
  1404. UINT32 DeviceSpeed;
  1405. UINT32 DeviceAddress;
  1406. }
  1407. struct fid_USBPORT_Endpoint
  1408. {
  1409. EtlPtr Endpoint;
  1410. EtlPtr PipeHandle;
  1411. EtlPtr DeviceHandle;
  1412. }
  1413. struct fid_USBPORT_Endpoint_Descriptor
  1414. {
  1415. UINT8 fid_bLength;
  1416. UINT8 fid_bDescriptorType;
  1417. [Property.USBEndpoint = FormatString("0x%x", this)]
  1418. UINT8 fid_bEndpointAddress;
  1419. UINT8 fid_bmAttributes;
  1420. UINT16 fid_wMaxPacketSize;
  1421. UINT8 fid_bInterval;
  1422. }
  1423. EtlPtr fid_IRP_Ptr;
  1424. UsbUrbPtr fid_URB_Ptr;
  1425. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1426. }
  1427. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_ENDPOINT = FormatString("Dispatch URB_FUNCTION_CLASS_ENDPOINT")
  1428. {
  1429. USBPort_HostController2 HostController;
  1430. struct fid_USBPORT_Device
  1431. {
  1432. EtlPtr DeviceHandle;
  1433. UINT16 idVendor;
  1434. UINT16 idProduct;
  1435. UsbPortPath PortPath;
  1436. UINT32 DeviceSpeed;
  1437. UINT32 DeviceAddress;
  1438. }
  1439. struct fid_USBPORT_Endpoint
  1440. {
  1441. EtlPtr Endpoint;
  1442. EtlPtr PipeHandle;
  1443. EtlPtr DeviceHandle;
  1444. }
  1445. struct fid_USBPORT_Endpoint_Descriptor
  1446. {
  1447. UINT8 fid_bLength;
  1448. UINT8 fid_bDescriptorType;
  1449. [Property.USBEndpoint = FormatString("0x%x", this)]
  1450. UINT8 fid_bEndpointAddress;
  1451. UINT8 fid_bmAttributes;
  1452. UINT16 fid_wMaxPacketSize;
  1453. UINT8 fid_bInterval;
  1454. }
  1455. EtlPtr fid_IRP_Ptr;
  1456. UsbUrbPtr fid_URB_Ptr;
  1457. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1458. }
  1459. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_CLASS_OTHER = FormatString("Dispatch URB_FUNCTION_CLASS_OTHER")
  1460. {
  1461. USBPort_HostController2 HostController;
  1462. struct fid_USBPORT_Device
  1463. {
  1464. EtlPtr DeviceHandle;
  1465. UINT16 idVendor;
  1466. UINT16 idProduct;
  1467. UsbPortPath PortPath;
  1468. UINT32 DeviceSpeed;
  1469. UINT32 DeviceAddress;
  1470. }
  1471. struct fid_USBPORT_Endpoint
  1472. {
  1473. EtlPtr Endpoint;
  1474. EtlPtr PipeHandle;
  1475. EtlPtr DeviceHandle;
  1476. }
  1477. struct fid_USBPORT_Endpoint_Descriptor
  1478. {
  1479. UINT8 fid_bLength;
  1480. UINT8 fid_bDescriptorType;
  1481. [Property.USBEndpoint = FormatString("0x%x", this)]
  1482. UINT8 fid_bEndpointAddress;
  1483. UINT8 fid_bmAttributes;
  1484. UINT16 fid_wMaxPacketSize;
  1485. UINT8 fid_bInterval;
  1486. }
  1487. EtlPtr fid_IRP_Ptr;
  1488. UsbUrbPtr fid_URB_Ptr;
  1489. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1490. }
  1491. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_VENDOR_OTHER = FormatString("Dispatch URB_FUNCTION_VENDOR_OTHER")
  1492. {
  1493. USBPort_HostController2 HostController;
  1494. struct fid_USBPORT_Device
  1495. {
  1496. EtlPtr DeviceHandle;
  1497. UINT16 idVendor;
  1498. UINT16 idProduct;
  1499. UsbPortPath PortPath;
  1500. UINT32 DeviceSpeed;
  1501. UINT32 DeviceAddress;
  1502. }
  1503. struct fid_USBPORT_Endpoint
  1504. {
  1505. EtlPtr Endpoint;
  1506. EtlPtr PipeHandle;
  1507. EtlPtr DeviceHandle;
  1508. }
  1509. struct fid_USBPORT_Endpoint_Descriptor
  1510. {
  1511. UINT8 fid_bLength;
  1512. UINT8 fid_bDescriptorType;
  1513. [Property.USBEndpoint = FormatString("0x%x", this)]
  1514. UINT8 fid_bEndpointAddress;
  1515. UINT8 fid_bmAttributes;
  1516. UINT16 fid_wMaxPacketSize;
  1517. UINT8 fid_bInterval;
  1518. }
  1519. EtlPtr fid_IRP_Ptr;
  1520. UsbUrbPtr fid_URB_Ptr;
  1521. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1522. }
  1523. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_ABORT_PIPE = FormatString("Dispatch URB_FUNCTION_ABORT_PIPE")
  1524. {
  1525. USBPort_HostController2 HostController;
  1526. struct fid_USBPORT_Device
  1527. {
  1528. EtlPtr DeviceHandle;
  1529. UINT16 idVendor;
  1530. UINT16 idProduct;
  1531. UsbPortPath PortPath;
  1532. UINT32 DeviceSpeed;
  1533. UINT32 DeviceAddress;
  1534. }
  1535. struct fid_USBPORT_Endpoint
  1536. {
  1537. EtlPtr Endpoint;
  1538. EtlPtr PipeHandle;
  1539. EtlPtr DeviceHandle;
  1540. }
  1541. struct fid_USBPORT_Endpoint_Descriptor
  1542. {
  1543. UINT8 fid_bLength;
  1544. UINT8 fid_bDescriptorType;
  1545. [Property.USBEndpoint = FormatString("0x%x", this)]
  1546. UINT8 fid_bEndpointAddress;
  1547. UINT8 fid_bmAttributes;
  1548. UINT16 fid_wMaxPacketSize;
  1549. UINT8 fid_bInterval;
  1550. }
  1551. EtlPtr fid_IRP_Ptr;
  1552. UsbUrbPtr fid_URB_Ptr;
  1553. struct fid_USBPORT_URB_URB_PIPE_REQUEST
  1554. {
  1555. UINT16 fid_URB_Hdr_Length;
  1556. UINT16 fid_URB_Hdr_Function;
  1557. UINT32 fid_URB_Hdr_Status;
  1558. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  1559. EtlPtr fid_URB_Hdr_UsbdFlags;
  1560. EtlPtr fid_URB_PipeHandle;
  1561. UINT32 fid_Reserved;
  1562. }
  1563. }
  1564. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL = FormatString("Dispatch URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL")
  1565. {
  1566. USBPort_HostController2 HostController;
  1567. struct fid_USBPORT_Device
  1568. {
  1569. EtlPtr DeviceHandle;
  1570. UINT16 idVendor;
  1571. UINT16 idProduct;
  1572. UsbPortPath PortPath;
  1573. UINT32 DeviceSpeed;
  1574. UINT32 DeviceAddress;
  1575. }
  1576. struct fid_USBPORT_Endpoint
  1577. {
  1578. EtlPtr Endpoint;
  1579. EtlPtr PipeHandle;
  1580. EtlPtr DeviceHandle;
  1581. }
  1582. struct fid_USBPORT_Endpoint_Descriptor
  1583. {
  1584. UINT8 fid_bLength;
  1585. UINT8 fid_bDescriptorType;
  1586. [Property.USBEndpoint = FormatString("0x%x", this)]
  1587. UINT8 fid_bEndpointAddress;
  1588. UINT8 fid_bmAttributes;
  1589. UINT16 fid_wMaxPacketSize;
  1590. UINT8 fid_bInterval;
  1591. }
  1592. EtlPtr fid_IRP_Ptr;
  1593. UsbUrbPtr fid_URB_Ptr;
  1594. struct fid_USBPORT_URB_URB_PIPE_REQUEST
  1595. {
  1596. UINT16 fid_URB_Hdr_Length;
  1597. UINT16 fid_URB_Hdr_Function;
  1598. UINT32 fid_URB_Hdr_Status;
  1599. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  1600. EtlPtr fid_URB_Hdr_UsbdFlags;
  1601. EtlPtr fid_URB_PipeHandle;
  1602. UINT32 fid_Reserved;
  1603. }
  1604. }
  1605. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_RESET_PIPE = FormatString("Dispatch URB_FUNCTION_SYNC_RESET_PIPE")
  1606. {
  1607. USBPort_HostController2 HostController;
  1608. struct fid_USBPORT_Device
  1609. {
  1610. EtlPtr DeviceHandle;
  1611. UINT16 idVendor;
  1612. UINT16 idProduct;
  1613. UsbPortPath PortPath;
  1614. UINT32 DeviceSpeed;
  1615. UINT32 DeviceAddress;
  1616. }
  1617. struct fid_USBPORT_Endpoint
  1618. {
  1619. EtlPtr Endpoint;
  1620. EtlPtr PipeHandle;
  1621. EtlPtr DeviceHandle;
  1622. }
  1623. struct fid_USBPORT_Endpoint_Descriptor
  1624. {
  1625. UINT8 fid_bLength;
  1626. UINT8 fid_bDescriptorType;
  1627. [Property.USBEndpoint = FormatString("0x%x", this)]
  1628. UINT8 fid_bEndpointAddress;
  1629. UINT8 fid_bmAttributes;
  1630. UINT16 fid_wMaxPacketSize;
  1631. UINT8 fid_bInterval;
  1632. }
  1633. EtlPtr fid_IRP_Ptr;
  1634. UsbUrbPtr fid_URB_Ptr;
  1635. struct fid_USBPORT_URB_URB_PIPE_REQUEST
  1636. {
  1637. UINT16 fid_URB_Hdr_Length;
  1638. UINT16 fid_URB_Hdr_Function;
  1639. UINT32 fid_URB_Hdr_Status;
  1640. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  1641. EtlPtr fid_URB_Hdr_UsbdFlags;
  1642. EtlPtr fid_URB_PipeHandle;
  1643. UINT32 fid_Reserved;
  1644. }
  1645. }
  1646. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SYNC_CLEAR_STALL = FormatString("Dispatch URB_FUNCTION_SYNC_CLEAR_STALL")
  1647. {
  1648. USBPort_HostController2 HostController;
  1649. struct fid_USBPORT_Device
  1650. {
  1651. EtlPtr DeviceHandle;
  1652. UINT16 idVendor;
  1653. UINT16 idProduct;
  1654. UsbPortPath PortPath;
  1655. UINT32 DeviceSpeed;
  1656. UINT32 DeviceAddress;
  1657. }
  1658. struct fid_USBPORT_Endpoint
  1659. {
  1660. EtlPtr Endpoint;
  1661. EtlPtr PipeHandle;
  1662. EtlPtr DeviceHandle;
  1663. }
  1664. struct fid_USBPORT_Endpoint_Descriptor
  1665. {
  1666. UINT8 fid_bLength;
  1667. UINT8 fid_bDescriptorType;
  1668. [Property.USBEndpoint = FormatString("0x%x", this)]
  1669. UINT8 fid_bEndpointAddress;
  1670. UINT8 fid_bmAttributes;
  1671. UINT16 fid_wMaxPacketSize;
  1672. UINT8 fid_bInterval;
  1673. }
  1674. EtlPtr fid_IRP_Ptr;
  1675. UsbUrbPtr fid_URB_Ptr;
  1676. struct fid_USBPORT_URB_URB_PIPE_REQUEST
  1677. {
  1678. UINT16 fid_URB_Hdr_Length;
  1679. UINT16 fid_URB_Hdr_Function;
  1680. UINT32 fid_URB_Hdr_Status;
  1681. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  1682. EtlPtr fid_URB_Hdr_UsbdFlags;
  1683. EtlPtr fid_URB_PipeHandle;
  1684. UINT32 fid_Reserved;
  1685. }
  1686. }
  1687. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_CONFIGURATION = FormatString("Dispatch URB_FUNCTION_GET_CONFIGURATION")
  1688. {
  1689. USBPort_HostController2 HostController;
  1690. struct fid_USBPORT_Device
  1691. {
  1692. EtlPtr DeviceHandle;
  1693. UINT16 idVendor;
  1694. UINT16 idProduct;
  1695. UsbPortPath PortPath;
  1696. UINT32 DeviceSpeed;
  1697. UINT32 DeviceAddress;
  1698. }
  1699. struct fid_USBPORT_Endpoint
  1700. {
  1701. EtlPtr Endpoint;
  1702. EtlPtr PipeHandle;
  1703. EtlPtr DeviceHandle;
  1704. }
  1705. struct fid_USBPORT_Endpoint_Descriptor
  1706. {
  1707. UINT8 fid_bLength;
  1708. UINT8 fid_bDescriptorType;
  1709. [Property.USBEndpoint = FormatString("0x%x", this)]
  1710. UINT8 fid_bEndpointAddress;
  1711. UINT8 fid_bmAttributes;
  1712. UINT16 fid_wMaxPacketSize;
  1713. UINT8 fid_bInterval;
  1714. }
  1715. EtlPtr fid_IRP_Ptr;
  1716. UsbUrbPtr fid_URB_Ptr;
  1717. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1718. }
  1719. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_INTERFACE = FormatString("Dispatch URB_FUNCTION_GET_INTERFACE")
  1720. {
  1721. USBPort_HostController2 HostController;
  1722. struct fid_USBPORT_Device
  1723. {
  1724. EtlPtr DeviceHandle;
  1725. UINT16 idVendor;
  1726. UINT16 idProduct;
  1727. UsbPortPath PortPath;
  1728. UINT32 DeviceSpeed;
  1729. UINT32 DeviceAddress;
  1730. }
  1731. struct fid_USBPORT_Endpoint
  1732. {
  1733. EtlPtr Endpoint;
  1734. EtlPtr PipeHandle;
  1735. EtlPtr DeviceHandle;
  1736. }
  1737. struct fid_USBPORT_Endpoint_Descriptor
  1738. {
  1739. UINT8 fid_bLength;
  1740. UINT8 fid_bDescriptorType;
  1741. [Property.USBEndpoint = FormatString("0x%x", this)]
  1742. UINT8 fid_bEndpointAddress;
  1743. UINT8 fid_bmAttributes;
  1744. UINT16 fid_wMaxPacketSize;
  1745. UINT8 fid_bInterval;
  1746. }
  1747. EtlPtr fid_IRP_Ptr;
  1748. UsbUrbPtr fid_URB_Ptr;
  1749. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1750. }
  1751. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR = FormatString("Dispatch URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR")
  1752. {
  1753. USBPort_HostController2 HostController;
  1754. struct fid_USBPORT_Device
  1755. {
  1756. EtlPtr DeviceHandle;
  1757. UINT16 idVendor;
  1758. UINT16 idProduct;
  1759. UsbPortPath PortPath;
  1760. UINT32 DeviceSpeed;
  1761. UINT32 DeviceAddress;
  1762. }
  1763. struct fid_USBPORT_Endpoint
  1764. {
  1765. EtlPtr Endpoint;
  1766. EtlPtr PipeHandle;
  1767. EtlPtr DeviceHandle;
  1768. }
  1769. struct fid_USBPORT_Endpoint_Descriptor
  1770. {
  1771. UINT8 fid_bLength;
  1772. UINT8 fid_bDescriptorType;
  1773. [Property.USBEndpoint = FormatString("0x%x", this)]
  1774. UINT8 fid_bEndpointAddress;
  1775. UINT8 fid_bmAttributes;
  1776. UINT16 fid_wMaxPacketSize;
  1777. UINT8 fid_bInterval;
  1778. }
  1779. EtlPtr fid_IRP_Ptr;
  1780. UsbUrbPtr fid_URB_Ptr;
  1781. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1782. }
  1783. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL = "Dispatch URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL" {}; // Empty Struct
  1784. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL = "Dispatch URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL" {}; // Empty Struct
  1785. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_GET_FRAME_LENGTH = "Dispatch URB_FUNCTION_GET_FRAME_LENGTH" {}; // Empty Struct
  1786. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_SET_FRAME_LENGTH = "Dispatch URB_FUNCTION_SET_FRAME_LENGTH" {}; // Empty Struct
  1787. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_FUNCTION_RESERVED = "Dispatch URB_FUNCTION_RESERVED" {}; // Empty Struct
  1788. [Property.InternalUsbIsUrbCompletion = 1]
  1789. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER = FormatString("Complete URB_FUNCTION_CONTROL_TRANSFER")
  1790. {
  1791. USBPort_HostController2 HostController;
  1792. struct fid_USBPORT_Device
  1793. {
  1794. EtlPtr DeviceHandle;
  1795. UINT16 idVendor;
  1796. UINT16 idProduct;
  1797. UsbPortPath PortPath;
  1798. UINT32 DeviceSpeed;
  1799. UINT32 DeviceAddress;
  1800. }
  1801. struct fid_USBPORT_Endpoint
  1802. {
  1803. EtlPtr Endpoint;
  1804. EtlPtr PipeHandle;
  1805. EtlPtr DeviceHandle;
  1806. }
  1807. struct fid_USBPORT_Endpoint_Descriptor
  1808. {
  1809. UINT8 fid_bLength;
  1810. UINT8 fid_bDescriptorType;
  1811. [Property.USBEndpoint = FormatString("0x%x", this)]
  1812. UINT8 fid_bEndpointAddress;
  1813. UINT8 fid_bmAttributes;
  1814. UINT16 fid_wMaxPacketSize;
  1815. UINT8 fid_bInterval;
  1816. }
  1817. EtlPtr fid_IRP_Ptr;
  1818. UsbUrbPtr fid_URB_Ptr;
  1819. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1820. }
  1821. [Property.InternalUsbIsUrbCompletion = 1]
  1822. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX = FormatString("Complete URB_FUNCTION_CONTROL_TRANSFER_EX")
  1823. {
  1824. USBPort_HostController2 HostController;
  1825. struct fid_USBPORT_Device
  1826. {
  1827. EtlPtr DeviceHandle;
  1828. UINT16 idVendor;
  1829. UINT16 idProduct;
  1830. UsbPortPath PortPath;
  1831. UINT32 DeviceSpeed;
  1832. UINT32 DeviceAddress;
  1833. }
  1834. struct fid_USBPORT_Endpoint
  1835. {
  1836. EtlPtr Endpoint;
  1837. EtlPtr PipeHandle;
  1838. EtlPtr DeviceHandle;
  1839. }
  1840. struct fid_USBPORT_Endpoint_Descriptor
  1841. {
  1842. UINT8 fid_bLength;
  1843. UINT8 fid_bDescriptorType;
  1844. [Property.USBEndpoint = FormatString("0x%x", this)]
  1845. UINT8 fid_bEndpointAddress;
  1846. UINT8 fid_bmAttributes;
  1847. UINT16 fid_wMaxPacketSize;
  1848. UINT8 fid_bInterval;
  1849. }
  1850. EtlPtr fid_IRP_Ptr;
  1851. UsbUrbPtr fid_URB_Ptr;
  1852. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  1853. }
  1854. [Property.InternalUsbIsUrbCompletion = 1]
  1855. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_DATA = FormatString("Complete URB_FUNCTION_CONTROL_TRANSFER with Data")
  1856. {
  1857. USBPort_HostController2 HostController;
  1858. struct fid_USBPORT_Device
  1859. {
  1860. EtlPtr DeviceHandle;
  1861. UINT16 idVendor;
  1862. UINT16 idProduct;
  1863. UsbPortPath PortPath;
  1864. UINT32 DeviceSpeed;
  1865. UINT32 DeviceAddress;
  1866. }
  1867. struct fid_USBPORT_Endpoint
  1868. {
  1869. EtlPtr Endpoint;
  1870. EtlPtr PipeHandle;
  1871. EtlPtr DeviceHandle;
  1872. }
  1873. struct fid_USBPORT_Endpoint_Descriptor
  1874. {
  1875. UINT8 fid_bLength;
  1876. UINT8 fid_bDescriptorType;
  1877. [Property.USBEndpoint = FormatString("0x%x", this)]
  1878. UINT8 fid_bEndpointAddress;
  1879. UINT8 fid_bmAttributes;
  1880. UINT16 fid_wMaxPacketSize;
  1881. UINT8 fid_bInterval;
  1882. }
  1883. EtlPtr fid_IRP_Ptr;
  1884. UsbUrbPtr fid_URB_Ptr;
  1885. CONTROL_TRANSFER_URB_SETUP_AND_DATA ControlTransfer;
  1886. }
  1887. [Property.InternalUsbIsUrbCompletion = 1]
  1888. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_CONTROL_TRANSFER_EX_DATA = FormatString("Complete URB_FUNCTION_CONTROL_TRANSFER_EX with Data")
  1889. {
  1890. USBPort_HostController2 HostController;
  1891. struct fid_USBPORT_Device
  1892. {
  1893. EtlPtr DeviceHandle;
  1894. UINT16 idVendor;
  1895. UINT16 idProduct;
  1896. UsbPortPath PortPath;
  1897. UINT32 DeviceSpeed;
  1898. UINT32 DeviceAddress;
  1899. }
  1900. struct fid_USBPORT_Endpoint
  1901. {
  1902. EtlPtr Endpoint;
  1903. EtlPtr PipeHandle;
  1904. EtlPtr DeviceHandle;
  1905. }
  1906. struct fid_USBPORT_Endpoint_Descriptor
  1907. {
  1908. UINT8 fid_bLength;
  1909. UINT8 fid_bDescriptorType;
  1910. [Property.USBEndpoint = FormatString("0x%x", this)]
  1911. UINT8 fid_bEndpointAddress;
  1912. UINT8 fid_bmAttributes;
  1913. UINT16 fid_wMaxPacketSize;
  1914. UINT8 fid_bInterval;
  1915. }
  1916. EtlPtr fid_IRP_Ptr;
  1917. UsbUrbPtr fid_URB_Ptr;
  1918. CONTROL_TRANSFER_URB_SETUP_AND_DATA ControlTransfer;
  1919. }
  1920. [Property.InternalUsbIsUrbCompletion = 1]
  1921. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER = FormatString("Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER")
  1922. {
  1923. USBPort_HostController2 HostController;
  1924. struct fid_USBPORT_Device
  1925. {
  1926. EtlPtr DeviceHandle;
  1927. UINT16 idVendor;
  1928. UINT16 idProduct;
  1929. UsbPortPath PortPath;
  1930. UINT32 DeviceSpeed;
  1931. UINT32 DeviceAddress;
  1932. }
  1933. struct fid_USBPORT_Endpoint
  1934. {
  1935. EtlPtr Endpoint;
  1936. EtlPtr PipeHandle;
  1937. EtlPtr DeviceHandle;
  1938. }
  1939. struct fid_USBPORT_Endpoint_Descriptor
  1940. {
  1941. UINT8 fid_bLength;
  1942. UINT8 fid_bDescriptorType;
  1943. [Property.USBEndpoint = FormatString("0x%x", this)]
  1944. UINT8 fid_bEndpointAddress;
  1945. UINT8 fid_bmAttributes;
  1946. UINT16 fid_wMaxPacketSize;
  1947. UINT8 fid_bInterval;
  1948. }
  1949. EtlPtr fid_IRP_Ptr;
  1950. UsbUrbPtr fid_URB_Ptr;
  1951. URB Urb;
  1952. }
  1953. [Property.InternalUsbIsUrbCompletion = 1]
  1954. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_DATA = FormatString("Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER with Data")
  1955. {
  1956. USBPort_HostController2 HostController;
  1957. struct fid_USBPORT_Device
  1958. {
  1959. EtlPtr DeviceHandle;
  1960. UINT16 idVendor;
  1961. UINT16 idProduct;
  1962. UsbPortPath PortPath;
  1963. UINT32 DeviceSpeed;
  1964. UINT32 DeviceAddress;
  1965. }
  1966. struct fid_USBPORT_Endpoint
  1967. {
  1968. EtlPtr Endpoint;
  1969. EtlPtr PipeHandle;
  1970. EtlPtr DeviceHandle;
  1971. }
  1972. struct fid_USBPORT_Endpoint_Descriptor
  1973. {
  1974. UINT8 fid_bLength;
  1975. UINT8 fid_bDescriptorType;
  1976. [Property.USBEndpoint = FormatString("0x%x", this)]
  1977. UINT8 fid_bEndpointAddress;
  1978. UINT8 fid_bmAttributes;
  1979. UINT16 fid_wMaxPacketSize;
  1980. UINT8 fid_bInterval;
  1981. }
  1982. EtlPtr fid_IRP_Ptr;
  1983. UsbUrbPtr fid_URB_Ptr;
  1984. URB Urb;
  1985. UINT16 fid_URB_TransferDataLength;
  1986. UINT8 fid_URB_TransferData[fid_URB_TransferDataLength];
  1987. }
  1988. [Property.InternalUsbIsUrbCompletion = 1]
  1989. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER = FormatString("Complete COMPLETE_URB_FUNCTION_ISOCH_TRANSFER")
  1990. {
  1991. USBPort_HostController2 HostController;
  1992. struct fid_USBPORT_Device
  1993. {
  1994. EtlPtr DeviceHandle;
  1995. UINT16 idVendor;
  1996. UINT16 idProduct;
  1997. UsbPortPath PortPath;
  1998. UINT32 DeviceSpeed;
  1999. UINT32 DeviceAddress;
  2000. }
  2001. struct fid_USBPORT_Endpoint
  2002. {
  2003. EtlPtr Endpoint;
  2004. EtlPtr PipeHandle;
  2005. EtlPtr DeviceHandle;
  2006. }
  2007. struct fid_USBPORT_Endpoint_Descriptor
  2008. {
  2009. UINT8 fid_bLength;
  2010. UINT8 fid_bDescriptorType;
  2011. [Property.USBEndpoint = FormatString("0x%x", this)]
  2012. UINT8 fid_bEndpointAddress;
  2013. UINT8 fid_bmAttributes;
  2014. UINT16 fid_wMaxPacketSize;
  2015. UINT8 fid_bInterval;
  2016. }
  2017. EtlPtr fid_IRP_Ptr;
  2018. UsbUrbPtr fid_URB_Ptr;
  2019. UINT16 fid_USBPORT_URB_NumberOfPackets;
  2020. URB Urb;
  2021. }
  2022. [Property.InternalUsbIsUrbCompletion = 1]
  2023. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ISOCH_TRANSFER_DATA = FormatString("Complete COMPLETE_URB_FUNCTION_ISOCH_TRANSFER with Data")
  2024. {
  2025. USBPort_HostController2 HostController;
  2026. struct fid_USBPORT_Device
  2027. {
  2028. EtlPtr DeviceHandle;
  2029. UINT16 idVendor;
  2030. UINT16 idProduct;
  2031. UsbPortPath PortPath;
  2032. UINT32 DeviceSpeed;
  2033. UINT32 DeviceAddress;
  2034. }
  2035. struct fid_USBPORT_Endpoint
  2036. {
  2037. EtlPtr Endpoint;
  2038. EtlPtr PipeHandle;
  2039. EtlPtr DeviceHandle;
  2040. }
  2041. struct fid_USBPORT_Endpoint_Descriptor
  2042. {
  2043. UINT8 fid_bLength;
  2044. UINT8 fid_bDescriptorType;
  2045. [Property.USBEndpoint = FormatString("0x%x", this)]
  2046. UINT8 fid_bEndpointAddress;
  2047. UINT8 fid_bmAttributes;
  2048. UINT16 fid_wMaxPacketSize;
  2049. UINT8 fid_bInterval;
  2050. }
  2051. EtlPtr fid_IRP_Ptr;
  2052. UsbUrbPtr fid_URB_Ptr;
  2053. UINT16 fid_USBPORT_URB_NumberOfPackets;
  2054. URB Urb;
  2055. }
  2056. Struct USBPort_USBPORT_ETW_EVENT_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER = FormatString("Internal URB_FUNCTION_CONTROL_TRANSFER")
  2057. {
  2058. USBPort_HostController2 HostController;
  2059. struct fid_USBPORT_Device
  2060. {
  2061. EtlPtr DeviceHandle;
  2062. UINT16 idVendor;
  2063. UINT16 idProduct;
  2064. UsbPortPath PortPath;
  2065. UINT32 DeviceSpeed;
  2066. UINT32 DeviceAddress;
  2067. }
  2068. struct fid_USBPORT_Endpoint
  2069. {
  2070. EtlPtr Endpoint;
  2071. EtlPtr PipeHandle;
  2072. EtlPtr DeviceHandle;
  2073. }
  2074. struct fid_USBPORT_Endpoint_Descriptor
  2075. {
  2076. UINT8 fid_bLength;
  2077. UINT8 fid_bDescriptorType;
  2078. [Property.USBEndpoint = FormatString("0x%x", this)]
  2079. UINT8 fid_bEndpointAddress;
  2080. UINT8 fid_bmAttributes;
  2081. UINT16 fid_wMaxPacketSize;
  2082. UINT8 fid_bInterval;
  2083. }
  2084. UsbUrbPtr fid_URB_Ptr;
  2085. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  2086. }
  2087. [Property.InternalUsbIsUrbCompletion = 1]
  2088. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER = FormatString("Complete Internal URB_FUNCTION_CONTROL_TRANSFER")
  2089. {
  2090. USBPort_HostController2 HostController;
  2091. struct fid_USBPORT_Device
  2092. {
  2093. EtlPtr DeviceHandle;
  2094. UINT16 idVendor;
  2095. UINT16 idProduct;
  2096. UsbPortPath PortPath;
  2097. UINT32 DeviceSpeed;
  2098. UINT32 DeviceAddress;
  2099. }
  2100. struct fid_USBPORT_Endpoint
  2101. {
  2102. EtlPtr Endpoint;
  2103. EtlPtr PipeHandle;
  2104. EtlPtr DeviceHandle;
  2105. }
  2106. struct fid_USBPORT_Endpoint_Descriptor
  2107. {
  2108. UINT8 fid_bLength;
  2109. UINT8 fid_bDescriptorType;
  2110. [Property.USBEndpoint = FormatString("0x%x", this)]
  2111. UINT8 fid_bEndpointAddress;
  2112. UINT8 fid_bmAttributes;
  2113. UINT16 fid_wMaxPacketSize;
  2114. UINT8 fid_bInterval;
  2115. }
  2116. UsbUrbPtr fid_URB_Ptr;
  2117. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  2118. }
  2119. [Property.InternalUsbIsUrbCompletion = 1]
  2120. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_INTERNAL_URB_FUNCTION_CONTROL_TRANSFER_DATA = FormatString("Complete Internal URB_FUNCTION_CONTROL_TRANSFER with Data")
  2121. {
  2122. USBPort_HostController2 HostController;
  2123. struct fid_USBPORT_Device
  2124. {
  2125. EtlPtr DeviceHandle;
  2126. UINT16 idVendor;
  2127. UINT16 idProduct;
  2128. UsbPortPath PortPath;
  2129. UINT32 DeviceSpeed;
  2130. UINT32 DeviceAddress;
  2131. }
  2132. struct fid_USBPORT_Endpoint
  2133. {
  2134. EtlPtr Endpoint;
  2135. EtlPtr PipeHandle;
  2136. EtlPtr DeviceHandle;
  2137. }
  2138. struct fid_USBPORT_Endpoint_Descriptor
  2139. {
  2140. UINT8 fid_bLength;
  2141. UINT8 fid_bDescriptorType;
  2142. [Property.USBEndpoint = FormatString("0x%x", this)]
  2143. UINT8 fid_bEndpointAddress;
  2144. UINT8 fid_bmAttributes;
  2145. UINT16 fid_wMaxPacketSize;
  2146. UINT8 fid_bInterval;
  2147. }
  2148. UsbUrbPtr fid_URB_Ptr;
  2149. CONTROL_TRANSFER_URB_SETUP_AND_DATA ControlTransfer;
  2150. }
  2151. [Property.InternalUsbIsUrbCompletion = 1]
  2152. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_URB_FUNCTION_ABORT_PIPE = FormatString("Complete URB_FUNCTION_ABORT_PIPE")
  2153. {
  2154. USBPort_HostController2 HostController;
  2155. struct fid_USBPORT_Device
  2156. {
  2157. EtlPtr DeviceHandle;
  2158. UINT16 idVendor;
  2159. UINT16 idProduct;
  2160. UsbPortPath PortPath;
  2161. UINT32 DeviceSpeed;
  2162. UINT32 DeviceAddress;
  2163. }
  2164. struct fid_USBPORT_Endpoint
  2165. {
  2166. EtlPtr Endpoint;
  2167. EtlPtr PipeHandle;
  2168. EtlPtr DeviceHandle;
  2169. }
  2170. struct fid_USBPORT_Endpoint_Descriptor
  2171. {
  2172. UINT8 fid_bLength;
  2173. UINT8 fid_bDescriptorType;
  2174. [Property.USBEndpoint = FormatString("0x%x", this)]
  2175. UINT8 fid_bEndpointAddress;
  2176. UINT8 fid_bmAttributes;
  2177. UINT16 fid_wMaxPacketSize;
  2178. UINT8 fid_bInterval;
  2179. }
  2180. EtlPtr fid_IRP_Ptr;
  2181. UsbUrbPtr fid_URB_Ptr;
  2182. struct fid_USBPORT_URB_URB_PIPE_REQUEST
  2183. {
  2184. UINT16 fid_URB_Hdr_Length;
  2185. UINT16 fid_URB_Hdr_Function;
  2186. UINT32 fid_URB_Hdr_Status;
  2187. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2188. EtlPtr fid_URB_Hdr_UsbdFlags;
  2189. EtlPtr fid_URB_PipeHandle;
  2190. UINT32 fid_Reserved;
  2191. }
  2192. }
  2193. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH_WARNING = FormatString("Dispatch URB INVALID_HEADER_LENGTH_WARNING")
  2194. {
  2195. USBPort_HostController2 HostController;
  2196. EtlPtr fid_IRP_Ptr;
  2197. UsbUrbPtr fid_URB_Ptr;
  2198. struct fid_USBPORT_URB_HEADER
  2199. {
  2200. UINT16 fid_URB_Hdr_Length;
  2201. UINT16 fid_URB_Hdr_Function;
  2202. UINT32 fid_URB_Hdr_Status;
  2203. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2204. EtlPtr fid_URB_Hdr_UsbdFlags;
  2205. }
  2206. }
  2207. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION = FormatString("Dispatch URB INVALID_FUNCTION")
  2208. {
  2209. USBPort_HostController2 HostController;
  2210. EtlPtr fid_IRP_Ptr;
  2211. UsbUrbPtr fid_URB_Ptr;
  2212. struct fid_USBPORT_URB_HEADER
  2213. {
  2214. UINT16 fid_URB_Hdr_Length;
  2215. UINT16 fid_URB_Hdr_Function;
  2216. UINT32 fid_URB_Hdr_Status;
  2217. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2218. EtlPtr fid_URB_Hdr_UsbdFlags;
  2219. }
  2220. }
  2221. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_HEADER_LENGTH = FormatString("Dispatch URB INVALID_HEADER_LENGTH")
  2222. {
  2223. USBPort_HostController2 HostController;
  2224. EtlPtr fid_IRP_Ptr;
  2225. UsbUrbPtr fid_URB_Ptr;
  2226. struct fid_USBPORT_URB_HEADER
  2227. {
  2228. UINT16 fid_URB_Hdr_Length;
  2229. UINT16 fid_URB_Hdr_Function;
  2230. UINT32 fid_URB_Hdr_Status;
  2231. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2232. EtlPtr fid_URB_Hdr_UsbdFlags;
  2233. }
  2234. }
  2235. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DEVICE_HANDLE = FormatString("Dispatch URB INVALID_DEVICE_HANDLE")
  2236. {
  2237. USBPort_HostController2 HostController;
  2238. EtlPtr fid_IRP_Ptr;
  2239. UsbUrbPtr fid_URB_Ptr;
  2240. struct fid_USBPORT_URB_HEADER
  2241. {
  2242. UINT16 fid_URB_Hdr_Length;
  2243. UINT16 fid_URB_Hdr_Function;
  2244. UINT32 fid_URB_Hdr_Status;
  2245. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2246. EtlPtr fid_URB_Hdr_UsbdFlags;
  2247. }
  2248. }
  2249. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_NOT_SUPPORTED = FormatString("Dispatch URB INVALID_FUNCTION_NOT_SUPPORTED")
  2250. {
  2251. USBPort_HostController2 HostController;
  2252. struct fid_USBPORT_Device
  2253. {
  2254. EtlPtr DeviceHandle;
  2255. UINT16 idVendor;
  2256. UINT16 idProduct;
  2257. UsbPortPath PortPath;
  2258. UINT32 DeviceSpeed;
  2259. UINT32 DeviceAddress;
  2260. }
  2261. EtlPtr fid_IRP_Ptr;
  2262. UsbUrbPtr fid_URB_Ptr;
  2263. struct fid_USBPORT_URB_HEADER
  2264. {
  2265. UINT16 fid_URB_Hdr_Length;
  2266. UINT16 fid_URB_Hdr_Function;
  2267. UINT32 fid_URB_Hdr_Status;
  2268. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2269. EtlPtr fid_URB_Hdr_UsbdFlags;
  2270. }
  2271. }
  2272. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_FUNCTION_RESERVED = FormatString("Dispatch URB INVALID_FUNCTION_RESERVED")
  2273. {
  2274. USBPort_HostController2 HostController;
  2275. struct fid_USBPORT_Device
  2276. {
  2277. EtlPtr DeviceHandle;
  2278. UINT16 idVendor;
  2279. UINT16 idProduct;
  2280. UsbPortPath PortPath;
  2281. UINT32 DeviceSpeed;
  2282. UINT32 DeviceAddress;
  2283. }
  2284. EtlPtr fid_IRP_Ptr;
  2285. UsbUrbPtr fid_URB_Ptr;
  2286. struct fid_USBPORT_URB_HEADER
  2287. {
  2288. UINT16 fid_URB_Hdr_Length;
  2289. UINT16 fid_URB_Hdr_Function;
  2290. UINT32 fid_URB_Hdr_Status;
  2291. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2292. EtlPtr fid_URB_Hdr_UsbdFlags;
  2293. }
  2294. }
  2295. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_DUE_TO_HC_SUSPEND = FormatString("Dispatch URB INVALID_DUE_TO_HC_SUSPEND")
  2296. {
  2297. USBPort_HostController2 HostController;
  2298. struct fid_USBPORT_Device
  2299. {
  2300. EtlPtr DeviceHandle;
  2301. UINT16 idVendor;
  2302. UINT16 idProduct;
  2303. UsbPortPath PortPath;
  2304. UINT32 DeviceSpeed;
  2305. UINT32 DeviceAddress;
  2306. }
  2307. EtlPtr fid_IRP_Ptr;
  2308. UsbUrbPtr fid_URB_Ptr;
  2309. struct fid_USBPORT_URB_HEADER
  2310. {
  2311. UINT16 fid_URB_Hdr_Length;
  2312. UINT16 fid_URB_Hdr_Function;
  2313. UINT32 fid_URB_Hdr_Status;
  2314. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2315. EtlPtr fid_URB_Hdr_UsbdFlags;
  2316. }
  2317. }
  2318. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_URB_LINK = FormatString("Dispatch URB INVALID_URB_LINK")
  2319. {
  2320. USBPort_HostController2 HostController;
  2321. struct fid_USBPORT_Device
  2322. {
  2323. EtlPtr DeviceHandle;
  2324. UINT16 idVendor;
  2325. UINT16 idProduct;
  2326. UsbPortPath PortPath;
  2327. UINT32 DeviceSpeed;
  2328. UINT32 DeviceAddress;
  2329. }
  2330. EtlPtr fid_IRP_Ptr;
  2331. UsbUrbPtr fid_URB_Ptr;
  2332. struct fid_USBPORT_URB_HEADER
  2333. {
  2334. UINT16 fid_URB_Hdr_Length;
  2335. UINT16 fid_URB_Hdr_Function;
  2336. UINT32 fid_URB_Hdr_Status;
  2337. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2338. EtlPtr fid_URB_Hdr_UsbdFlags;
  2339. }
  2340. }
  2341. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_PIPE_HANDLE = FormatString("Dispatch URB INVALID_PIPE_HANDLE")
  2342. {
  2343. USBPort_HostController2 HostController;
  2344. struct fid_USBPORT_Device
  2345. {
  2346. EtlPtr DeviceHandle;
  2347. UINT16 idVendor;
  2348. UINT16 idProduct;
  2349. UsbPortPath PortPath;
  2350. UINT32 DeviceSpeed;
  2351. UINT32 DeviceAddress;
  2352. }
  2353. EtlPtr fid_IRP_Ptr;
  2354. UsbUrbPtr fid_URB_Ptr;
  2355. struct fid_USBPORT_URB_INVALID_PIPE_REQUEST
  2356. {
  2357. UINT16 fid_URB_Hdr_Length;
  2358. UINT16 fid_URB_Hdr_Function;
  2359. UINT32 fid_URB_Hdr_Status;
  2360. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2361. EtlPtr fid_URB_Hdr_UsbdFlags;
  2362. EtlPtr fid_URB_PipeHandle;
  2363. }
  2364. }
  2365. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ZERO_BW_PIPE_HANDLE = FormatString("Dispatch URB INVALID_ZERO_BW_PIPE_HANDLE")
  2366. {
  2367. USBPort_HostController2 HostController;
  2368. struct fid_USBPORT_Device
  2369. {
  2370. EtlPtr DeviceHandle;
  2371. UINT16 idVendor;
  2372. UINT16 idProduct;
  2373. UsbPortPath PortPath;
  2374. UINT32 DeviceSpeed;
  2375. UINT32 DeviceAddress;
  2376. }
  2377. EtlPtr fid_IRP_Ptr;
  2378. UsbUrbPtr fid_URB_Ptr;
  2379. struct fid_USBPORT_URB_INVALID_PIPE_REQUEST
  2380. {
  2381. UINT16 fid_URB_Hdr_Length;
  2382. UINT16 fid_URB_Hdr_Function;
  2383. UINT32 fid_URB_Hdr_Status;
  2384. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2385. EtlPtr fid_URB_Hdr_UsbdFlags;
  2386. EtlPtr fid_URB_PipeHandle;
  2387. }
  2388. }
  2389. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ZERO_BW_PIPE_HANDLE_REQUEST = FormatString("Dispatch URB NOP_ZERO_BW_PIPE_HANDLE_REQUEST")
  2390. {
  2391. USBPort_HostController2 HostController;
  2392. struct fid_USBPORT_Device
  2393. {
  2394. EtlPtr DeviceHandle;
  2395. UINT16 idVendor;
  2396. UINT16 idProduct;
  2397. UsbPortPath PortPath;
  2398. UINT32 DeviceSpeed;
  2399. UINT32 DeviceAddress;
  2400. }
  2401. EtlPtr fid_IRP_Ptr;
  2402. UsbUrbPtr fid_URB_Ptr;
  2403. struct fid_USBPORT_URB_INVALID_PIPE_REQUEST
  2404. {
  2405. UINT16 fid_URB_Hdr_Length;
  2406. UINT16 fid_URB_Hdr_Function;
  2407. UINT32 fid_URB_Hdr_Status;
  2408. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2409. EtlPtr fid_URB_Hdr_UsbdFlags;
  2410. EtlPtr fid_URB_PipeHandle;
  2411. }
  2412. }
  2413. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_ENDPOINT = FormatString("Dispatch URB INVALID_CONTROL_TRANSFER_ENDPOINT")
  2414. {
  2415. USBPort_HostController2 HostController;
  2416. struct fid_USBPORT_Device
  2417. {
  2418. EtlPtr DeviceHandle;
  2419. UINT16 idVendor;
  2420. UINT16 idProduct;
  2421. UsbPortPath PortPath;
  2422. UINT32 DeviceSpeed;
  2423. UINT32 DeviceAddress;
  2424. }
  2425. struct fid_USBPORT_Endpoint
  2426. {
  2427. EtlPtr Endpoint;
  2428. EtlPtr PipeHandle;
  2429. EtlPtr DeviceHandle;
  2430. }
  2431. struct fid_USBPORT_Endpoint_Descriptor
  2432. {
  2433. UINT8 fid_bLength;
  2434. UINT8 fid_bDescriptorType;
  2435. [Property.USBEndpoint = FormatString("0x%x", this)]
  2436. UINT8 fid_bEndpointAddress;
  2437. UINT8 fid_bmAttributes;
  2438. UINT16 fid_wMaxPacketSize;
  2439. UINT8 fid_bInterval;
  2440. }
  2441. EtlPtr fid_IRP_Ptr;
  2442. UsbUrbPtr fid_URB_Ptr;
  2443. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  2444. }
  2445. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_CONTROL_TRANSFER_BUFFER_LENGTH = FormatString("Dispatch URB INVALID_CONTROL_TRANSFER_BUFFER_LENGTH")
  2446. {
  2447. USBPort_HostController2 HostController;
  2448. struct fid_USBPORT_Device
  2449. {
  2450. EtlPtr DeviceHandle;
  2451. UINT16 idVendor;
  2452. UINT16 idProduct;
  2453. UsbPortPath PortPath;
  2454. UINT32 DeviceSpeed;
  2455. UINT32 DeviceAddress;
  2456. }
  2457. struct fid_USBPORT_Endpoint
  2458. {
  2459. EtlPtr Endpoint;
  2460. EtlPtr PipeHandle;
  2461. EtlPtr DeviceHandle;
  2462. }
  2463. struct fid_USBPORT_Endpoint_Descriptor
  2464. {
  2465. UINT8 fid_bLength;
  2466. UINT8 fid_bDescriptorType;
  2467. [Property.USBEndpoint = FormatString("0x%x", this)]
  2468. UINT8 fid_bEndpointAddress;
  2469. UINT8 fid_bmAttributes;
  2470. UINT16 fid_wMaxPacketSize;
  2471. UINT8 fid_bInterval;
  2472. }
  2473. EtlPtr fid_IRP_Ptr;
  2474. UsbUrbPtr fid_URB_Ptr;
  2475. CONTROL_TRANSFER_URB_SETUP ControlTransfer;
  2476. }
  2477. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_ENDPOINT = FormatString("Dispatch URB INVALID_BULK_OR_INTERRUPT_TRANSFER_ENDPOINT")
  2478. {
  2479. USBPort_HostController2 HostController;
  2480. struct fid_USBPORT_Device
  2481. {
  2482. EtlPtr DeviceHandle;
  2483. UINT16 idVendor;
  2484. UINT16 idProduct;
  2485. UsbPortPath PortPath;
  2486. UINT32 DeviceSpeed;
  2487. UINT32 DeviceAddress;
  2488. }
  2489. struct fid_USBPORT_Endpoint
  2490. {
  2491. EtlPtr Endpoint;
  2492. EtlPtr PipeHandle;
  2493. EtlPtr DeviceHandle;
  2494. }
  2495. struct fid_USBPORT_Endpoint_Descriptor
  2496. {
  2497. UINT8 fid_bLength;
  2498. UINT8 fid_bDescriptorType;
  2499. [Property.USBEndpoint = FormatString("0x%x", this)]
  2500. UINT8 fid_bEndpointAddress;
  2501. UINT8 fid_bmAttributes;
  2502. UINT16 fid_wMaxPacketSize;
  2503. UINT8 fid_bInterval;
  2504. }
  2505. EtlPtr fid_IRP_Ptr;
  2506. UsbUrbPtr fid_URB_Ptr;
  2507. URB Urb;
  2508. }
  2509. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_BULK_OR_INTERRUPT_TRANSFER_BUFFER_LENGTH = FormatString("Dispatch URB INVALID_BULK_OR_INTERRUPT_TRANSFER_BUFFER_LENGTH")
  2510. {
  2511. USBPort_HostController2 HostController;
  2512. struct fid_USBPORT_Device
  2513. {
  2514. EtlPtr DeviceHandle;
  2515. UINT16 idVendor;
  2516. UINT16 idProduct;
  2517. UsbPortPath PortPath;
  2518. UINT32 DeviceSpeed;
  2519. UINT32 DeviceAddress;
  2520. }
  2521. struct fid_USBPORT_Endpoint
  2522. {
  2523. EtlPtr Endpoint;
  2524. EtlPtr PipeHandle;
  2525. EtlPtr DeviceHandle;
  2526. }
  2527. struct fid_USBPORT_Endpoint_Descriptor
  2528. {
  2529. UINT8 fid_bLength;
  2530. UINT8 fid_bDescriptorType;
  2531. [Property.USBEndpoint = FormatString("0x%x", this)]
  2532. UINT8 fid_bEndpointAddress;
  2533. UINT8 fid_bmAttributes;
  2534. UINT16 fid_wMaxPacketSize;
  2535. UINT8 fid_bInterval;
  2536. }
  2537. EtlPtr fid_IRP_Ptr;
  2538. UsbUrbPtr fid_URB_Ptr;
  2539. URB Urb;
  2540. }
  2541. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_TRANSFER_ENDPOINT = FormatString("Dispatch URB INVALID_ISOCHRONOUS_TRANSFER_ENDPOINT")
  2542. {
  2543. USBPort_HostController2 HostController;
  2544. struct fid_USBPORT_Device
  2545. {
  2546. EtlPtr DeviceHandle;
  2547. UINT16 idVendor;
  2548. UINT16 idProduct;
  2549. UsbPortPath PortPath;
  2550. UINT32 DeviceSpeed;
  2551. UINT32 DeviceAddress;
  2552. }
  2553. struct fid_USBPORT_Endpoint
  2554. {
  2555. EtlPtr Endpoint;
  2556. EtlPtr PipeHandle;
  2557. EtlPtr DeviceHandle;
  2558. }
  2559. struct fid_USBPORT_Endpoint_Descriptor
  2560. {
  2561. UINT8 fid_bLength;
  2562. UINT8 fid_bDescriptorType;
  2563. [Property.USBEndpoint = FormatString("0x%x", this)]
  2564. UINT8 fid_bEndpointAddress;
  2565. UINT8 fid_bmAttributes;
  2566. UINT16 fid_wMaxPacketSize;
  2567. UINT8 fid_bInterval;
  2568. }
  2569. EtlPtr fid_IRP_Ptr;
  2570. UsbUrbPtr fid_URB_Ptr;
  2571. URB Urb;
  2572. }
  2573. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NULL_TRANSFER_BUFFER_AND_MDL = FormatString("Dispatch URB INVALID_NULL_TRANSFER_BUFFER_AND_MDL")
  2574. {
  2575. USBPort_HostController2 HostController;
  2576. struct fid_USBPORT_Device
  2577. {
  2578. EtlPtr DeviceHandle;
  2579. UINT16 idVendor;
  2580. UINT16 idProduct;
  2581. UsbPortPath PortPath;
  2582. UINT32 DeviceSpeed;
  2583. UINT32 DeviceAddress;
  2584. }
  2585. struct fid_USBPORT_Endpoint
  2586. {
  2587. EtlPtr Endpoint;
  2588. EtlPtr PipeHandle;
  2589. EtlPtr DeviceHandle;
  2590. }
  2591. struct fid_USBPORT_Endpoint_Descriptor
  2592. {
  2593. UINT8 fid_bLength;
  2594. UINT8 fid_bDescriptorType;
  2595. [Property.USBEndpoint = FormatString("0x%x", this)]
  2596. UINT8 fid_bEndpointAddress;
  2597. UINT8 fid_bmAttributes;
  2598. UINT16 fid_wMaxPacketSize;
  2599. UINT8 fid_bInterval;
  2600. }
  2601. EtlPtr fid_IRP_Ptr;
  2602. UsbUrbPtr fid_URB_Ptr;
  2603. struct fid_USBPORT_URB_HEADER
  2604. {
  2605. UINT16 fid_URB_Hdr_Length;
  2606. UINT16 fid_URB_Hdr_Function;
  2607. UINT32 fid_URB_Hdr_Status;
  2608. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2609. EtlPtr fid_URB_Hdr_UsbdFlags;
  2610. }
  2611. }
  2612. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_NON_NULL_TRANSFER_BUFFER_MDL = FormatString("Dispatch URB INVALID_NON_NULL_TRANSFER_BUFFER_MDL")
  2613. {
  2614. USBPort_HostController2 HostController;
  2615. struct fid_USBPORT_Device
  2616. {
  2617. EtlPtr DeviceHandle;
  2618. UINT16 idVendor;
  2619. UINT16 idProduct;
  2620. UsbPortPath PortPath;
  2621. UINT32 DeviceSpeed;
  2622. UINT32 DeviceAddress;
  2623. }
  2624. struct fid_USBPORT_Endpoint
  2625. {
  2626. EtlPtr Endpoint;
  2627. EtlPtr PipeHandle;
  2628. EtlPtr DeviceHandle;
  2629. }
  2630. struct fid_USBPORT_Endpoint_Descriptor
  2631. {
  2632. UINT8 fid_bLength;
  2633. UINT8 fid_bDescriptorType;
  2634. [Property.USBEndpoint = FormatString("0x%x", this)]
  2635. UINT8 fid_bEndpointAddress;
  2636. UINT8 fid_bmAttributes;
  2637. UINT16 fid_wMaxPacketSize;
  2638. UINT8 fid_bInterval;
  2639. }
  2640. EtlPtr fid_IRP_Ptr;
  2641. UsbUrbPtr fid_URB_Ptr;
  2642. struct fid_USBPORT_URB_HEADER
  2643. {
  2644. UINT16 fid_URB_Hdr_Length;
  2645. UINT16 fid_URB_Hdr_Function;
  2646. UINT32 fid_URB_Hdr_Status;
  2647. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2648. EtlPtr fid_URB_Hdr_UsbdFlags;
  2649. }
  2650. }
  2651. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_MDL_FAILURE = FormatString("Dispatch URB ALLOCATE_MDL_FAILURE")
  2652. {
  2653. USBPort_HostController2 HostController;
  2654. struct fid_USBPORT_Device
  2655. {
  2656. EtlPtr DeviceHandle;
  2657. UINT16 idVendor;
  2658. UINT16 idProduct;
  2659. UsbPortPath PortPath;
  2660. UINT32 DeviceSpeed;
  2661. UINT32 DeviceAddress;
  2662. }
  2663. struct fid_USBPORT_Endpoint
  2664. {
  2665. EtlPtr Endpoint;
  2666. EtlPtr PipeHandle;
  2667. EtlPtr DeviceHandle;
  2668. }
  2669. struct fid_USBPORT_Endpoint_Descriptor
  2670. {
  2671. UINT8 fid_bLength;
  2672. UINT8 fid_bDescriptorType;
  2673. [Property.USBEndpoint = FormatString("0x%x", this)]
  2674. UINT8 fid_bEndpointAddress;
  2675. UINT8 fid_bmAttributes;
  2676. UINT16 fid_wMaxPacketSize;
  2677. UINT8 fid_bInterval;
  2678. }
  2679. EtlPtr fid_IRP_Ptr;
  2680. UsbUrbPtr fid_URB_Ptr;
  2681. struct fid_USBPORT_URB_HEADER
  2682. {
  2683. UINT16 fid_URB_Hdr_Length;
  2684. UINT16 fid_URB_Hdr_Function;
  2685. UINT32 fid_URB_Hdr_Status;
  2686. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2687. EtlPtr fid_URB_Hdr_UsbdFlags;
  2688. }
  2689. }
  2690. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_ALLOCATE_TRANSFER_CONTEXT_FAILURE = FormatString("Dispatch URB ALLOCATE_TRANSFER_CONTEXT_FAILURE")
  2691. {
  2692. USBPort_HostController2 HostController;
  2693. struct fid_USBPORT_Device
  2694. {
  2695. EtlPtr DeviceHandle;
  2696. UINT16 idVendor;
  2697. UINT16 idProduct;
  2698. UsbPortPath PortPath;
  2699. UINT32 DeviceSpeed;
  2700. UINT32 DeviceAddress;
  2701. }
  2702. struct fid_USBPORT_Endpoint
  2703. {
  2704. EtlPtr Endpoint;
  2705. EtlPtr PipeHandle;
  2706. EtlPtr DeviceHandle;
  2707. }
  2708. struct fid_USBPORT_Endpoint_Descriptor
  2709. {
  2710. UINT8 fid_bLength;
  2711. UINT8 fid_bDescriptorType;
  2712. [Property.USBEndpoint = FormatString("0x%x", this)]
  2713. UINT8 fid_bEndpointAddress;
  2714. UINT8 fid_bmAttributes;
  2715. UINT16 fid_wMaxPacketSize;
  2716. UINT8 fid_bInterval;
  2717. }
  2718. EtlPtr fid_IRP_Ptr;
  2719. UsbUrbPtr fid_URB_Ptr;
  2720. struct fid_USBPORT_URB_HEADER
  2721. {
  2722. UINT16 fid_URB_Hdr_Length;
  2723. UINT16 fid_URB_Hdr_Function;
  2724. UINT32 fid_URB_Hdr_Status;
  2725. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2726. EtlPtr fid_URB_Hdr_UsbdFlags;
  2727. }
  2728. }
  2729. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_NOP_ROOTHUB_PIPE_HANDLE_REQUEST = FormatString("Dispatch URB NOP_ROOTHUB_PIPE_HANDLE_REQUEST")
  2730. {
  2731. USBPort_HostController2 HostController;
  2732. struct fid_USBPORT_Device
  2733. {
  2734. EtlPtr DeviceHandle;
  2735. UINT16 idVendor;
  2736. UINT16 idProduct;
  2737. UsbPortPath PortPath;
  2738. UINT32 DeviceSpeed;
  2739. UINT32 DeviceAddress;
  2740. }
  2741. EtlPtr fid_IRP_Ptr;
  2742. UsbUrbPtr fid_URB_Ptr;
  2743. struct fid_USBPORT_URB_INVALID_PIPE_REQUEST
  2744. {
  2745. UINT16 fid_URB_Hdr_Length;
  2746. UINT16 fid_URB_Hdr_Function;
  2747. UINT32 fid_URB_Hdr_Status;
  2748. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  2749. EtlPtr fid_URB_Hdr_UsbdFlags;
  2750. EtlPtr fid_URB_PipeHandle;
  2751. }
  2752. }
  2753. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_ZERO_LENGTH = FormatString("Dispatch URB INVALID_ISOCHRONOUS_ZERO_LENGTH")
  2754. {
  2755. USBPort_HostController2 HostController;
  2756. struct fid_USBPORT_Device
  2757. {
  2758. EtlPtr DeviceHandle;
  2759. UINT16 idVendor;
  2760. UINT16 idProduct;
  2761. UsbPortPath PortPath;
  2762. UINT32 DeviceSpeed;
  2763. UINT32 DeviceAddress;
  2764. }
  2765. struct fid_USBPORT_Endpoint
  2766. {
  2767. EtlPtr Endpoint;
  2768. EtlPtr PipeHandle;
  2769. EtlPtr DeviceHandle;
  2770. }
  2771. struct fid_USBPORT_Endpoint_Descriptor
  2772. {
  2773. UINT8 fid_bLength;
  2774. UINT8 fid_bDescriptorType;
  2775. [Property.USBEndpoint = FormatString("0x%x", this)]
  2776. UINT8 fid_bEndpointAddress;
  2777. UINT8 fid_bmAttributes;
  2778. UINT16 fid_wMaxPacketSize;
  2779. UINT8 fid_bInterval;
  2780. }
  2781. EtlPtr fid_IRP_Ptr;
  2782. UsbUrbPtr fid_URB_Ptr;
  2783. URB Urb;
  2784. }
  2785. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_NUM_PACKETS = FormatString("Dispatch URB INVALID_ISOCHRONOUS_NUM_PACKETS")
  2786. {
  2787. USBPort_HostController2 HostController;
  2788. struct fid_USBPORT_Device
  2789. {
  2790. EtlPtr DeviceHandle;
  2791. UINT16 idVendor;
  2792. UINT16 idProduct;
  2793. UsbPortPath PortPath;
  2794. UINT32 DeviceSpeed;
  2795. UINT32 DeviceAddress;
  2796. }
  2797. struct fid_USBPORT_Endpoint
  2798. {
  2799. EtlPtr Endpoint;
  2800. EtlPtr PipeHandle;
  2801. EtlPtr DeviceHandle;
  2802. }
  2803. struct fid_USBPORT_Endpoint_Descriptor
  2804. {
  2805. UINT8 fid_bLength;
  2806. UINT8 fid_bDescriptorType;
  2807. [Property.USBEndpoint = FormatString("0x%x", this)]
  2808. UINT8 fid_bEndpointAddress;
  2809. UINT8 fid_bmAttributes;
  2810. UINT16 fid_wMaxPacketSize;
  2811. UINT8 fid_bInterval;
  2812. }
  2813. EtlPtr fid_IRP_Ptr;
  2814. UsbUrbPtr fid_URB_Ptr;
  2815. URB Urb;
  2816. }
  2817. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_URB_INVALID_ISOCHRONOUS_START_FRAME = FormatString("Dispatch URB INVALID_ISOCHRONOUS_START_FRAME")
  2818. {
  2819. USBPort_HostController2 HostController;
  2820. struct fid_USBPORT_Device
  2821. {
  2822. EtlPtr DeviceHandle;
  2823. UINT16 idVendor;
  2824. UINT16 idProduct;
  2825. UsbPortPath PortPath;
  2826. UINT32 DeviceSpeed;
  2827. UINT32 DeviceAddress;
  2828. }
  2829. struct fid_USBPORT_Endpoint
  2830. {
  2831. EtlPtr Endpoint;
  2832. EtlPtr PipeHandle;
  2833. EtlPtr DeviceHandle;
  2834. }
  2835. struct fid_USBPORT_Endpoint_Descriptor
  2836. {
  2837. UINT8 fid_bLength;
  2838. UINT8 fid_bDescriptorType;
  2839. [Property.USBEndpoint = FormatString("0x%x", this)]
  2840. UINT8 fid_bEndpointAddress;
  2841. UINT8 fid_bmAttributes;
  2842. UINT16 fid_wMaxPacketSize;
  2843. UINT8 fid_bInterval;
  2844. }
  2845. EtlPtr fid_IRP_Ptr;
  2846. UsbUrbPtr fid_URB_Ptr;
  2847. UINT16 fid_USBPORT_URB_NumberOfPackets;
  2848. URB Urb;
  2849. UINT32 fid_URB_FrameNumber;
  2850. }
  2851. Struct USBPort_USBPORT_ETW_EVENT_IRP_CANCEL = FormatString("Irp Cancel")
  2852. {
  2853. USBPort_HostController2 HostController;
  2854. EtlPtr fid_IRP_Ptr;
  2855. }
  2856. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_DISPATCH = FormatString("USBUSER_OP_RAW_RESET_PORT Dispatch")
  2857. {
  2858. USBPort_HostController2 HostController;
  2859. UINT16 fid_PortNumber;
  2860. }
  2861. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS1 = FormatString("USBUSER_OP_RAW_RESET_PORT GetPortStatus after SetFeaturePortPower")
  2862. {
  2863. USBPort_HostController2 HostController;
  2864. UINT16 fid_PortNumber;
  2865. UINT32 fid_PortStatus;
  2866. }
  2867. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS2 = FormatString("USBUSER_OP_RAW_RESET_PORT GetPortStatus after SetFeaturePortReset")
  2868. {
  2869. USBPort_HostController2 HostController;
  2870. UINT16 fid_PortNumber;
  2871. UINT32 fid_PortStatus;
  2872. }
  2873. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_STATUS3 = FormatString("USBUSER_OP_RAW_RESET_PORT GetPortStatus after ClearFeaturePortResetChange")
  2874. {
  2875. USBPort_HostController2 HostController;
  2876. UINT16 fid_PortNumber;
  2877. UINT32 fid_PortStatus;
  2878. }
  2879. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_RAW_RESET_PORT_COMPLETE = FormatString("USBUSER_OP_RAW_RESET_PORT Complete")
  2880. {
  2881. USBPort_HostController2 HostController;
  2882. UINT16 fid_PortNumber;
  2883. UINT32 fid_UsbStatus;
  2884. }
  2885. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH = FormatString("USBUSER_OP_SEND_ONE_PACKET Dispatch")
  2886. {
  2887. USBPort_HostController2 HostController;
  2888. struct fid_USBPORT_Usbuser_Op_Send_One_Packet
  2889. {
  2890. UINT8 fid_DeviceAddress;
  2891. [Property.USBEndpoint = FormatString("0x%x", this)]
  2892. UINT8 fid_EndpointAddress;
  2893. UINT16 fid_MaximumPacketSize;
  2894. UINT32 fid_Timeout;
  2895. UINT32 fid_UsbPacketFlags;
  2896. UINT32 fid_DataLength;
  2897. UINT16 fid_HubDeviceAddress;
  2898. UINT16 fid_PortTTNumber;
  2899. USBD_STATUS fid_UsbdStatus;
  2900. }
  2901. }
  2902. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_DISPATCH_DATA = FormatString("USBUSER_OP_SEND_ONE_PACKET Dispatch with Data")
  2903. {
  2904. USBPort_HostController2 HostController;
  2905. struct fid_USBPORT_Usbuser_Op_Send_One_Packet
  2906. {
  2907. UINT8 fid_DeviceAddress;
  2908. [Property.USBEndpoint = FormatString("0x%x", this)]
  2909. UINT8 fid_EndpointAddress;
  2910. UINT16 fid_MaximumPacketSize;
  2911. UINT32 fid_Timeout;
  2912. UINT32 fid_UsbPacketFlags;
  2913. UINT32 fid_DataLength;
  2914. UINT16 fid_HubDeviceAddress;
  2915. UINT16 fid_PortTTNumber;
  2916. USBD_STATUS fid_UsbdStatus;
  2917. }
  2918. UINT16 fid_PacketDataLength;
  2919. UINT8 fid_PacketData[fid_PacketDataLength];
  2920. }
  2921. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_TIMEOUT = FormatString("USBUSER_OP_SEND_ONE_PACKET Timeout")
  2922. {
  2923. USBPort_HostController2 HostController;
  2924. struct fid_USBPORT_Usbuser_Op_Send_One_Packet
  2925. {
  2926. UINT8 fid_DeviceAddress;
  2927. [Property.USBEndpoint = FormatString("0x%x", this)]
  2928. UINT8 fid_EndpointAddress;
  2929. UINT16 fid_MaximumPacketSize;
  2930. UINT32 fid_Timeout;
  2931. UINT32 fid_UsbPacketFlags;
  2932. UINT32 fid_DataLength;
  2933. UINT16 fid_HubDeviceAddress;
  2934. UINT16 fid_PortTTNumber;
  2935. USBD_STATUS fid_UsbdStatus;
  2936. }
  2937. }
  2938. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE = FormatString("USBUSER_OP_SEND_ONE_PACKET Complete")
  2939. {
  2940. USBPort_HostController2 HostController;
  2941. struct fid_USBPORT_Usbuser_Op_Send_One_Packet
  2942. {
  2943. UINT8 fid_DeviceAddress;
  2944. [Property.USBEndpoint = FormatString("0x%x", this)]
  2945. UINT8 fid_EndpointAddress;
  2946. UINT16 fid_MaximumPacketSize;
  2947. UINT32 fid_Timeout;
  2948. UINT32 fid_UsbPacketFlags;
  2949. UINT32 fid_DataLength;
  2950. UINT16 fid_HubDeviceAddress;
  2951. UINT16 fid_PortTTNumber;
  2952. USBD_STATUS fid_UsbdStatus;
  2953. }
  2954. UINT32 fid_UsbStatus;
  2955. }
  2956. Struct USBPort_USBPORT_ETW_EVENT_USBUSER_OP_SEND_ONE_PACKET_COMPLETE_DATA = FormatString("USBUSER_OP_SEND_ONE_PACKET Complete with Data")
  2957. {
  2958. USBPort_HostController2 HostController;
  2959. struct fid_USBPORT_Usbuser_Op_Send_One_Packet
  2960. {
  2961. UINT8 fid_DeviceAddress;
  2962. [Property.USBEndpoint = FormatString("0x%x", this)]
  2963. UINT8 fid_EndpointAddress;
  2964. UINT16 fid_MaximumPacketSize;
  2965. UINT32 fid_Timeout;
  2966. UINT32 fid_UsbPacketFlags;
  2967. UINT32 fid_DataLength;
  2968. UINT16 fid_HubDeviceAddress;
  2969. UINT16 fid_PortTTNumber;
  2970. USBD_STATUS fid_UsbdStatus;
  2971. }
  2972. UINT16 fid_PacketDataLength;
  2973. UINT8 fid_PacketData[fid_PacketDataLength];
  2974. }
  2975. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_DISPATCH = FormatString("EHCI Miniport Start Dispatch")
  2976. {
  2977. USBPort_HostController2 HostController;
  2978. }
  2979. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE = FormatString("EHCI Miniport Start Complete")
  2980. {
  2981. USBPort_HostController2 HostController;
  2982. UINT32 fid_MiniportStatus;
  2983. }
  2984. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_1 = FormatString("EHCI Miniport Start Complete Error - Invalid Resources")
  2985. {
  2986. USBPort_HostController2 HostController;
  2987. UINT32 fid_MiniportStatus;
  2988. }
  2989. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_2 = FormatString("EHCI Miniport Start Complete Error - Hardware Gone")
  2990. {
  2991. USBPort_HostController2 HostController;
  2992. UINT32 fid_MiniportStatus;
  2993. }
  2994. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_3 = FormatString("EHCI Miniport Start Complete Error - Stop BIOS")
  2995. {
  2996. USBPort_HostController2 HostController;
  2997. UINT32 fid_MiniportStatus;
  2998. }
  2999. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_4 = FormatString("EHCI Miniport Start Complete Error - Initialize Hardware")
  3000. {
  3001. USBPort_HostController2 HostController;
  3002. UINT32 fid_MiniportStatus;
  3003. }
  3004. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_START_COMPLETE_ERROR_5 = FormatString("EHCI Miniport Start Complete Error - Initialize Schedule")
  3005. {
  3006. USBPort_HostController2 HostController;
  3007. UINT32 fid_MiniportStatus;
  3008. }
  3009. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_DISPATCH = FormatString("EHCI Miniport Stop Dispatch")
  3010. {
  3011. USBPort_HostController2 HostController;
  3012. }
  3013. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_STOP_COMPLETE = FormatString("EHCI Miniport Stop Complete")
  3014. {
  3015. USBPort_HostController2 HostController;
  3016. }
  3017. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_DISPATCH = FormatString("EHCI Miniport Suspend Dispatch")
  3018. {
  3019. USBPort_HostController2 HostController;
  3020. }
  3021. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_SUSPEND_COMPLETE = FormatString("EHCI Miniport Suspend Complete")
  3022. {
  3023. USBPort_HostController2 HostController;
  3024. }
  3025. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_DISPATCH = FormatString("EHCI Miniport Resume Dispatch")
  3026. {
  3027. USBPort_HostController2 HostController;
  3028. }
  3029. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE = FormatString("EHCI Miniport Resume Complete")
  3030. {
  3031. USBPort_HostController2 HostController;
  3032. UINT32 fid_MiniportStatus;
  3033. UINT16 fid_NumberOfPorts;
  3034. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3035. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3036. }
  3037. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 = FormatString("EHCI Miniport Resume Complete Error - Hardware Gone")
  3038. {
  3039. USBPort_HostController2 HostController;
  3040. UINT32 fid_MiniportStatus;
  3041. UINT16 fid_NumberOfPorts;
  3042. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3043. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3044. }
  3045. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 = FormatString("EHCI Miniport Resume Complete Error - HcHalted")
  3046. {
  3047. USBPort_HostController2 HostController;
  3048. UINT32 fid_MiniportStatus;
  3049. UINT16 fid_NumberOfPorts;
  3050. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3051. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3052. }
  3053. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 = FormatString("EHCI Miniport Resume Complete Error - ConfigFlag")
  3054. {
  3055. USBPort_HostController2 HostController;
  3056. UINT32 fid_MiniportStatus;
  3057. UINT16 fid_NumberOfPorts;
  3058. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3059. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3060. }
  3061. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 = FormatString("EHCI Miniport Resume Complete Error - PortPower")
  3062. {
  3063. USBPort_HostController2 HostController;
  3064. UINT32 fid_MiniportStatus;
  3065. UINT16 fid_NumberOfPorts;
  3066. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3067. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3068. }
  3069. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 = FormatString("EHCI Miniport Resume Complete Error - PortOwnedByCC")
  3070. {
  3071. USBPort_HostController2 HostController;
  3072. UINT32 fid_MiniportStatus;
  3073. UINT16 fid_NumberOfPorts;
  3074. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3075. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3076. }
  3077. Struct USBPort_USBPORT_ETW_EVENT_HC_EHCI_MINIPORT_RESUME_COMPLETE_ERROR_6 = FormatString("EHCI Miniport Resume Complete Error - OvercurrentChange")
  3078. {
  3079. USBPort_HostController2 HostController;
  3080. UINT32 fid_MiniportStatus;
  3081. UINT16 fid_NumberOfPorts;
  3082. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3083. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3084. }
  3085. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_DISPATCH = FormatString("OHCI Miniport Start Dispatch")
  3086. {
  3087. USBPort_HostController2 HostController;
  3088. }
  3089. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE = FormatString("OHCI Miniport Start Complete")
  3090. {
  3091. USBPort_HostController2 HostController;
  3092. UINT32 fid_MiniportStatus;
  3093. }
  3094. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_1 = FormatString("OHCI Miniport Start Complete Error - Invalid Resources")
  3095. {
  3096. USBPort_HostController2 HostController;
  3097. UINT32 fid_MiniportStatus;
  3098. }
  3099. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_2 = FormatString("OHCI Miniport Start Complete Error - Hardware Gone")
  3100. {
  3101. USBPort_HostController2 HostController;
  3102. UINT32 fid_MiniportStatus;
  3103. }
  3104. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_3 = FormatString("OHCI Miniport Start Complete Error - Stop BIOS")
  3105. {
  3106. USBPort_HostController2 HostController;
  3107. UINT32 fid_MiniportStatus;
  3108. }
  3109. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_4 = FormatString("OHCI Miniport Start Complete Error - Initialize Schedule")
  3110. {
  3111. USBPort_HostController2 HostController;
  3112. UINT32 fid_MiniportStatus;
  3113. }
  3114. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_START_COMPLETE_ERROR_5 = FormatString("OHCI Miniport Start Complete Error - Initialize Hardware")
  3115. {
  3116. USBPort_HostController2 HostController;
  3117. UINT32 fid_MiniportStatus;
  3118. }
  3119. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_DISPATCH = FormatString("OHCI Miniport Stop Dispatch")
  3120. {
  3121. USBPort_HostController2 HostController;
  3122. }
  3123. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_STOP_COMPLETE = FormatString("OHCI Miniport Stop Complete")
  3124. {
  3125. USBPort_HostController2 HostController;
  3126. }
  3127. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_DISPATCH = FormatString("OHCI Miniport Suspend Dispatch")
  3128. {
  3129. USBPort_HostController2 HostController;
  3130. }
  3131. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_SUSPEND_COMPLETE = FormatString("OHCI Miniport Suspend Complete")
  3132. {
  3133. USBPort_HostController2 HostController;
  3134. }
  3135. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_DISPATCH = FormatString("OHCI Miniport Resume Dispatch")
  3136. {
  3137. USBPort_HostController2 HostController;
  3138. }
  3139. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE = FormatString("OHCI Miniport Resume Complete")
  3140. {
  3141. USBPort_HostController2 HostController;
  3142. UINT32 fid_MiniportStatus;
  3143. UINT16 fid_NumberOfPorts;
  3144. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3145. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3146. }
  3147. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 = FormatString("OHCI Miniport Resume Complete Error - Hardware Gone")
  3148. {
  3149. USBPort_HostController2 HostController;
  3150. UINT32 fid_MiniportStatus;
  3151. UINT16 fid_NumberOfPorts;
  3152. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3153. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3154. }
  3155. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 = FormatString("OHCI Miniport Resume Complete Error - HcControl")
  3156. {
  3157. USBPort_HostController2 HostController;
  3158. UINT32 fid_MiniportStatus;
  3159. UINT16 fid_NumberOfPorts;
  3160. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3161. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3162. }
  3163. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 = FormatString("OHCI Miniport Resume Complete Error - HcHCCA")
  3164. {
  3165. USBPort_HostController2 HostController;
  3166. UINT32 fid_MiniportStatus;
  3167. UINT16 fid_NumberOfPorts;
  3168. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3169. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3170. }
  3171. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 = FormatString("OHCI Miniport Resume Complete Error - HcRhS_OverCurrentIndicatorChange")
  3172. {
  3173. USBPort_HostController2 HostController;
  3174. UINT32 fid_MiniportStatus;
  3175. UINT16 fid_NumberOfPorts;
  3176. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3177. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3178. }
  3179. Struct USBPort_USBPORT_ETW_EVENT_HC_OHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 = FormatString("OHCI Miniport Resume Complete Error - HcRhPS_OverCurrentIndicatorChange")
  3180. {
  3181. USBPort_HostController2 HostController;
  3182. UINT32 fid_MiniportStatus;
  3183. UINT16 fid_NumberOfPorts;
  3184. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3185. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3186. }
  3187. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_DISPATCH = FormatString("UHCI Miniport Start Dispatch")
  3188. {
  3189. USBPort_HostController2 HostController;
  3190. }
  3191. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE = FormatString("UHCI Miniport Start Complete")
  3192. {
  3193. USBPort_HostController2 HostController;
  3194. UINT32 fid_MiniportStatus;
  3195. }
  3196. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_1 = FormatString("UHCI Miniport Start Complete Error - Invalid Resources")
  3197. {
  3198. USBPort_HostController2 HostController;
  3199. UINT32 fid_MiniportStatus;
  3200. }
  3201. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_2 = FormatString("UHCI Miniport Start Complete Error - Stop BIOS")
  3202. {
  3203. USBPort_HostController2 HostController;
  3204. UINT32 fid_MiniportStatus;
  3205. }
  3206. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_3 = FormatString("UHCI Miniport Start Complete Error - Initialize Hardware")
  3207. {
  3208. USBPort_HostController2 HostController;
  3209. UINT32 fid_MiniportStatus;
  3210. }
  3211. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_START_COMPLETE_ERROR_4 = FormatString("UHCI Miniport Start Complete Error - Initialize Schedule")
  3212. {
  3213. USBPort_HostController2 HostController;
  3214. UINT32 fid_MiniportStatus;
  3215. }
  3216. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_DISPATCH = FormatString("UHCI Miniport Stop Dispatch")
  3217. {
  3218. USBPort_HostController2 HostController;
  3219. }
  3220. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_STOP_COMPLETE = FormatString("UHCI Miniport Stop Complete")
  3221. {
  3222. USBPort_HostController2 HostController;
  3223. }
  3224. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_DISPATCH = FormatString("UHCI Miniport Suspend Dispatch")
  3225. {
  3226. USBPort_HostController2 HostController;
  3227. }
  3228. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_SUSPEND_COMPLETE = FormatString("UHCI Miniport Suspend Complete")
  3229. {
  3230. USBPort_HostController2 HostController;
  3231. }
  3232. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_DISPATCH = FormatString("UHCI Miniport Resume Dispatch")
  3233. {
  3234. USBPort_HostController2 HostController;
  3235. }
  3236. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE = FormatString("UHCI Miniport Resume Complete")
  3237. {
  3238. USBPort_HostController2 HostController;
  3239. UINT32 fid_MiniportStatus;
  3240. UINT16 fid_NumberOfPorts;
  3241. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3242. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3243. }
  3244. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_1 = FormatString("UHCI Miniport Resume Complete Error - Hardware Gone")
  3245. {
  3246. USBPort_HostController2 HostController;
  3247. UINT32 fid_MiniportStatus;
  3248. UINT16 fid_NumberOfPorts;
  3249. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3250. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3251. }
  3252. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_2 = FormatString("UHCI Miniport Resume Complete Error - EnterGlobalSuspendMode")
  3253. {
  3254. USBPort_HostController2 HostController;
  3255. UINT32 fid_MiniportStatus;
  3256. UINT16 fid_NumberOfPorts;
  3257. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3258. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3259. }
  3260. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_3 = FormatString("UHCI Miniport Resume Complete Error - ForceGlobalResume")
  3261. {
  3262. USBPort_HostController2 HostController;
  3263. UINT32 fid_MiniportStatus;
  3264. UINT16 fid_NumberOfPorts;
  3265. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3266. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3267. }
  3268. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_4 = FormatString("UHCI Miniport Resume Complete Error - FrameNumber")
  3269. {
  3270. USBPort_HostController2 HostController;
  3271. UINT32 fid_MiniportStatus;
  3272. UINT16 fid_NumberOfPorts;
  3273. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3274. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3275. }
  3276. Struct USBPort_USBPORT_ETW_EVENT_HC_UHCI_MINIPORT_RESUME_COMPLETE_ERROR_5 = FormatString("UHCI Miniport Resume Complete Error - OvercurrentChange")
  3277. {
  3278. USBPort_HostController2 HostController;
  3279. UINT32 fid_MiniportStatus;
  3280. UINT16 fid_NumberOfPorts;
  3281. UINT32 fid_SuspendPortStatus[fid_NumberOfPorts];
  3282. UINT32 fid_ResumePortStatus[fid_NumberOfPorts];
  3283. }
  3284. Struct USBPort_USBPORT_ETW_EVENT_RTPM_TRANSITION = FormatString("Run Time Power Management Transition: %s", RunTimePmEvent(fid_RunTimePmEvent))
  3285. {
  3286. USBPort_HostController2 HostController;
  3287. UINT32 fid_RunTimePmEvent = RunTimePmEvent(this);
  3288. }
  3289. Struct USBPort_USBPORT_ETW_EVENT_DISPATCH_WAIT_WAKE = FormatString("Dispatch IRP_MN_WAIT_WAKE")
  3290. {
  3291. USBPort_HostController2 HostController;
  3292. EtlPtr fid_IRP_Ptr;
  3293. UINT32 fid_Status;
  3294. }
  3295. Struct USBPort_USBPORT_ETW_EVENT_COMPLETE_WAIT_WAKE = FormatString("Complete IRP_MN_WAIT_WAKE")
  3296. {
  3297. USBPort_HostController2 HostController;
  3298. EtlPtr fid_IRP_Ptr;
  3299. UINT32 fid_Status;
  3300. }
  3301. struct USBPort_fid_USBPORT_URB_ISO_PACKETS //Array Struct
  3302. {
  3303. UINT32 fid_URB_Packet_Offset;
  3304. UINT32 fid_URB_Packet_Length;
  3305. UINT32 fid_URB_Packet_Status;
  3306. }
  3307. Struct USBPort_USBPORT_ETW_EVENT_CODE_EXECUTION_TIME = FormatString("%s took %s", fid_CodeTag.ToString, ExecMetrics.ToString)
  3308. {
  3309. USBPort_HostController2 HostController;
  3310. USBPort_Execution_Metrics ExecMetrics;
  3311. [Property.USBPerfCodeTag = FormatString("%s", this)]
  3312. UnicodeString fid_CodeTag;
  3313. }
  3314. Struct USBPort_USBPORT_ETW_EVENT_PUT_SGLIST_EXECUTION_TIME = FormatString("%s took %s", fid_CodeTag.ToString, ExecMetrics.ToString)
  3315. {
  3316. USBPort_HostController2 HostController;
  3317. struct fid_USBPORT_Device
  3318. {
  3319. EtlPtr DeviceHandle;
  3320. UINT16 idVendor;
  3321. UINT16 idProduct;
  3322. UsbPortPath PortPath;
  3323. UINT32 DeviceSpeed;
  3324. UINT32 DeviceAddress;
  3325. }
  3326. struct fid_USBPORT_Endpoint
  3327. {
  3328. EtlPtr Endpoint;
  3329. EtlPtr PipeHandle;
  3330. EtlPtr DeviceHandle;
  3331. }
  3332. struct fid_USBPORT_Endpoint_Descriptor
  3333. {
  3334. UINT8 fid_bLength;
  3335. UINT8 fid_bDescriptorType;
  3336. [Property.USBEndpoint = FormatString("0x%x", this)]
  3337. UINT8 fid_bEndpointAddress;
  3338. UINT8 fid_bmAttributes;
  3339. UINT16 fid_wMaxPacketSize;
  3340. UINT8 fid_bInterval;
  3341. }
  3342. USBPort_Execution_Metrics ExecMetrics;
  3343. EtlPtr fid_AdapterObject;
  3344. UINT32 fid_NumPutScatterGatherList;
  3345. UINT8 fid_WriteData;
  3346. [Property.USBPerfPutSGFlushLen = FormatString("0x%x", this)]
  3347. UINT32 fid_FlushLength;
  3348. [Property.USBPerfDMACurrentVa = FormatString("%s", this.Ptr.ToString)]
  3349. EtlPtr fid_CurrentVA;
  3350. [Property.USBPerfCodeTag = FormatString("%s", this)]
  3351. UnicodeString fid_CodeTag;
  3352. }
  3353. Struct USBPort_USBPORT_ETW_EVENT_BUILD_SGLIST_EXECUTION_TIME = FormatString("%s took %s", fid_CodeTag.ToString, ExecMetrics.ToString)
  3354. {
  3355. USBPort_HostController2 HostController;
  3356. struct fid_USBPORT_Device
  3357. {
  3358. EtlPtr DeviceHandle;
  3359. UINT16 idVendor;
  3360. UINT16 idProduct;
  3361. UsbPortPath PortPath;
  3362. UINT32 DeviceSpeed;
  3363. UINT32 DeviceAddress;
  3364. }
  3365. struct fid_USBPORT_Endpoint
  3366. {
  3367. EtlPtr Endpoint;
  3368. EtlPtr PipeHandle;
  3369. EtlPtr DeviceHandle;
  3370. }
  3371. struct fid_USBPORT_Endpoint_Descriptor
  3372. {
  3373. UINT8 fid_bLength;
  3374. UINT8 fid_bDescriptorType;
  3375. [Property.USBEndpoint = FormatString("0x%x", this)]
  3376. UINT8 fid_bEndpointAddress;
  3377. UINT8 fid_bmAttributes;
  3378. UINT16 fid_wMaxPacketSize;
  3379. UINT8 fid_bInterval;
  3380. }
  3381. USBPort_Execution_Metrics ExecMetrics;
  3382. EtlPtr fid_AdapterObject;
  3383. UINT32 fid_TransferBufferLength;
  3384. UINT8 fid_WriteData;
  3385. [Property.USBPerfBuildSGLenRemaining = FormatString("0x%x", this)]
  3386. UINT32 fid_LengthRemaining;
  3387. [Property.USBPerfDMACurrentVa = FormatString("%s", this.Ptr.ToString)]
  3388. EtlPtr fid_CurrentVA;
  3389. [Property.USBPerfCodeTag = FormatString("%s", this)]
  3390. UnicodeString fid_CodeTag;
  3391. }
  3392. [RegisterBefore(EventDescriptor.DefaultKeyword, MicrosoftWindowsUSBUSBPORT_Keyword, "{c88a4ef5-d048-4013-9408-e04b7db2814a}")]
  3393. struct USBPort_MicrosoftWindowsUSBUSBPORT_Keyword
  3394. {
  3395. UINT64 Diagnostic:1 = FormatString(" (%s) %s", this.ToBitString, this? "USBPORT_ETW_KEYWORD_DIAGNOSTIC":"");
  3396. UINT64 PowerDiagnostics:1 = FormatString("(%s) %s", this.ToBitString, this? "USBPORT_ETW_KEYWORD_POWER_DIAGNOSTICS":"");
  3397. UINT64 PerfDiagnostics:1 = FormatString("(%s) %s", this.ToBitString, this? "USBPORT_ETW_KEYWORD_PERF_DIAGNOSTICS":"");
  3398. UINT64 Reserved1:61 = FormatString(" (%s)", this.ToBitString);
  3399. }
  3400. struct CONTROL_TRANSFER_URB_SETUP
  3401. {
  3402. URB Urb;
  3403. switch (Property.InternalUsbNtstatusUrbs && Property.InternalUsbIsUrbCompletion)
  3404. {
  3405. case 1: [Property.USBNtStatus = this.ToString] NTSTATUS fid_IRP_NtStatus;
  3406. }
  3407. }
  3408. struct CONTROL_TRANSFER_URB_SETUP_AND_DATA
  3409. {
  3410. URB Urb;
  3411. switch (Property.InternalUsbNtstatusUrbs && Property.InternalUsbIsUrbCompletion)
  3412. {
  3413. case 1: [Property.USBNtStatus = this.ToString] NTSTATUS fid_IRP_NtStatus;
  3414. }
  3415. [PostAfter.DataEndOffset = Offset + this]
  3416. UINT16 fid_URB_TransferDataLength;
  3417. struct DataPackets
  3418. {
  3419. switch
  3420. {
  3421. case (USBPort_RequestTypeTypeMap(Urb.SetupPacket.bmRequestType.Type) == "Standard"):
  3422. switch(USBPort_StandardDeviceRequestMap(Urb.SetupPacket.bRequest))
  3423. {
  3424. case "GET_CONFIGURATION": UINT8 Data_ConfigurationValue;
  3425. case "GET_INTERFACE": UINT8 Data_AlternateInterface;
  3426. case "SYNCH_FRAME": UINT16 Data_FrameNumber;
  3427. case "GET_STATUS": switch(USBPort_RequestTypeRecipientMap(Urb.SetupPacket.bmRequestType.Recipient))
  3428. {
  3429. case "Device": UINT16 Data_DeviceStatus
  3430. {
  3431. UINT16 SelfPowered:1 = FormatString(" (%s) %d", this.ToBitString, this);
  3432. UINT16 RemoteWakeup:1 = FormatString("(%s) %d", this.ToBitString, this);
  3433. UINT16 Reserved:14;
  3434. }
  3435. case "Endpoint": UINT16 Data_EndpointStatus
  3436. {
  3437. // Halt means the endpoint will return STALL
  3438. UINT16 Halt:1 = FormatString("(%s) %d", this.ToBitString, this);
  3439. UINT16 Reserved:15;
  3440. }
  3441. default: BLOB (DataEndOffset - Offset) Data_Status;
  3442. }
  3443. case "GET_DESCRIPTOR":
  3444. case "SET_DESCRIPTOR":
  3445. USB_DESCRIPTORS Descriptor;
  3446. case "SET_SEL": Struct
  3447. {
  3448. UINT8 U1SEL;
  3449. UINT8 U1PEL;
  3450. UINT16 U2SEL;
  3451. UINT16 U2PEL;
  3452. }
  3453. default: BLOB (DataEndOffset - Offset) _Data;
  3454. }
  3455. case !IsValueNone(Urb.SetupPacket.Index_Port):
  3456. switch
  3457. {
  3458. case (Global.USBPortSpeedMVS$[Urb.SetupPacket.Index_Port] == 3):
  3459. Usb3PortStatus Usb3PortStatus;
  3460. case (Global.USBPortSpeedMVS$[Urb.SetupPacket.Index_Port] == 2):
  3461. default:
  3462. Usb2PortStatus Usb2PortStatus;
  3463. }
  3464. default: BLOB (DataEndOffset - Offset) Data;
  3465. }
  3466. }
  3467. }
  3468. struct SETUP_PACKET = USBPort_RequestTypeTypeMap(bmRequestType.Type) == "Standard" ?
  3469. FormatString("%s", USBPort_StandardDeviceRequestMap(bRequest)) :
  3470. !IsValueNone(Index_Port) ?
  3471. // Could be Get Port Status request to a USB hub
  3472. FormatString("Get Port Status (%d)", Index_Port) :
  3473. ""
  3474. {
  3475. UINT8 bmRequestType = FormatString("(%s request) 0x%x", USBPort_RequestTypeTypeMap(this.Type), this)
  3476. {
  3477. UINT8 Recipient:5 = FormatString("(%s) %s", this.ToBitString, USBPort_RequestTypeRecipientMap(this));
  3478. UINT8 Type:2 = FormatString(" (%s) %s", this.ToBitString, USBPort_RequestTypeTypeMap(this));
  3479. UINT8 Direction:1 = FormatString("(%s) %s", this.ToBitString, USBPort_RequestTypeDirectionMap(this));
  3480. };
  3481. UINT8 bRequest =
  3482. USBPort_RequestTypeTypeMap(bmRequestType.Type) == "Standard" ?
  3483. FormatString("(%d) %s", this, USBPort_StandardDeviceRequestMap(this)) :
  3484. FormatString("0x%x", this) ;
  3485. // wValue:
  3486. switch
  3487. {
  3488. case (USBPort_RequestTypeTypeMap(bmRequestType.Type) == "Standard"):
  3489. switch (USBPort_StandardDeviceRequestMap(bRequest))
  3490. {
  3491. case "GET_DESCRIPTOR":
  3492. case "SET_DESCRIPTOR": struct
  3493. {
  3494. UINT8 Value_DescriptorIndex;
  3495. UINT8 Value_DescriptorType =
  3496. FormatString("(%d) %s", this, UsbDescriptorTypeTable(this));
  3497. }
  3498. case "CLEAR_FEATURE":
  3499. case "SET_FEATURE": switch(USBPort_RequestTypeRecipientMap(bmRequestType.Recipient))
  3500. {
  3501. case "Device": UINT16 Value_DeviceFeature =
  3502. FormatString("(%d) %s", this, USBPort_DeviceFeatureMap(this));
  3503. case "Interface": UINT16 Value_InterfaceFeature =
  3504. FormatString("(%d) Unknown interface feature", this);
  3505. case "Endpoint": UINT16 Value_EndpointFeature =
  3506. FormatString("(%d) %s", this, USBPort_EndpointFeatureMap(this));
  3507. default: UINT16 Value_UnknownFeature;
  3508. }
  3509. case "SET_ADDRESS": UINT16 Value_DeviceAddress;
  3510. case "SET_CONFIGURATION": struct
  3511. {
  3512. UINT8 Value_ConfigurationValue;
  3513. UINT8 Value_Reserved;
  3514. }
  3515. case "SET_INTERFACE": UINT16 Value_AlternateSetting;
  3516. default: UINT16 _wValue;
  3517. }
  3518. default: UINT16 wValue;
  3519. }
  3520. // wIndex:
  3521. switch
  3522. {
  3523. case (USBPort_RequestTypeTypeMap(bmRequestType.Type) == "Standard"):
  3524. switch
  3525. {
  3526. case (USBPort_RequestTypeRecipientMap(bmRequestType.recipient) == "Device" &&
  3527. (USBPort_StandardDeviceRequestMap(bRequest) == "GET_DESCRIPTOR" ||
  3528. USBPort_StandardDeviceRequestMap(bRequest) == "SET_DESCRIPTOR") &&
  3529. UsbDescriptorTypeTable(Value_DescriptorType) == "STRING"): UINT16 Index_Language;
  3530. case (USBPort_RequestTypeRecipientMap(bmRequestType.recipient) == "Interface"): UINT16 Index_Interface;
  3531. case (USBPort_RequestTypeRecipientMap(bmRequestType.recipient) == "Endpoint"): UINT16 Index_Endpoint;
  3532. default: UINT16 _wIndex;
  3533. }
  3534. case (USBPort_RequestTypeTypeMap(bmRequestType.Type) == "Class" &&
  3535. USBPort_RequestTypeRecipientMap(bmRequestType.Recipient) == "Other" &&
  3536. USBPort_RequestTypeDirectionMap(bmRequestType.Direction) == "Device-to-host" &&
  3537. USBPort_StandardDeviceRequestMap(bRequest) == "GET_STATUS"):
  3538. // Could be Get Port Status request to a USB hub
  3539. UINT16 Index_Port;
  3540. default: UINT16 wIndex;
  3541. }
  3542. UINT16 wLength;
  3543. }
  3544. Struct Usb2PortStatus = FormatString("[%s] %s", wPortStatus.ToString, wPortChange.ToString)
  3545. {
  3546. UINT16 wPortStatus = FormatString("%s%s%s%s%s%s%s%s%s%s",
  3547. PORT_CONNECTION == 1 ? "c" : "",
  3548. PORT_ENABLE == 1 ? "e" : "",
  3549. PORT_SUSPEND == 1 ? "s" : "",
  3550. PORT_OVER_CURRENT == 1 ? "o" : "",
  3551. PORT_RESET == 1 ? "r" : "",
  3552. PORT_POWER == 1 ? "p" : "",
  3553. PORT_LOW_SPEED == 1 ? "l" : "",
  3554. PORT_HIGH_SPEED == 1 ? "h" : "",
  3555. PORT_TEST == 1 ? "t" : "",
  3556. PORT_INDICATOR == 1 ? "i" : ""
  3557. )
  3558. {
  3559. UINT16 PORT_CONNECTION:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_CONNECTION");
  3560. UINT16 PORT_ENABLE:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_ENABLE");
  3561. UINT16 PORT_SUSPEND:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_SUSPEND");
  3562. UINT16 PORT_OVER_CURRENT:1 = FormatString("(%s) %s", this.ToBitString, "PORT_OVER_CURRENT");
  3563. UINT16 PORT_RESET:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_RESET");
  3564. UINT16 Reserved:3;
  3565. UINT16 PORT_POWER:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_POWER");
  3566. UINT16 PORT_LOW_SPEED:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_LOW_SPEED");
  3567. UINT16 PORT_HIGH_SPEED:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_HIGH_SPEED");
  3568. UINT16 PORT_TEST:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_TEST");
  3569. UINT16 PORT_INDICATOR:1 = FormatString(" (%s) %s", this.ToBitString, "PORT_INDICATOR");
  3570. UINT16 Reserved2:3;
  3571. }
  3572. UINT16 wPortChange = USBPort_ChangeBitsStringMap(this)
  3573. {
  3574. [Property.USBIsConnect = (this == 1 && wPortStatus.PORT_CONNECTION == 1) ? 1 : 0]
  3575. [Property.USBIsDisconnect = (this == 1 && wPortStatus.PORT_CONNECTION == 0) ? 1 : 0]
  3576. UINT16 C_PORT_CONNECTION:1 = FormatString(" (%s) %s", this.ToBitString, "C_PORT_CONNECTION");
  3577. UINT16 C_PORT_ENABLE:1 = FormatString(" (%s) %s", this.ToBitString, "C_PORT_ENABLE");
  3578. UINT16 C_PORT_SUSPEND:1 = FormatString(" (%s) %s", this.ToBitString, "C_PORT_SUSPEND");
  3579. UINT16 C_PORT_OVER_CURRENT:1 = FormatString("(%s) %s", this.ToBitString, "C_PORT_OVER_CURRENT");
  3580. UINT16 C_PORT_RESET:1 = FormatString(" (%s) %s", this.ToBitString, "C_PORT_RESET");
  3581. UINT16 Reserved:11;
  3582. }
  3583. }
  3584. // bmRequestType.Recipient
  3585. Table USBPort_RequestTypeRecipientMap(value)
  3586. {
  3587. switch(value)
  3588. {
  3589. case 0: "Device";
  3590. case 1: "Interface";
  3591. case 2: "Endpoint";
  3592. case 3: "Other";
  3593. default: "Reserved";
  3594. }
  3595. }
  3596. // bmRequestType.Type
  3597. Table USBPort_RequestTypeTypeMap(value)
  3598. {
  3599. switch(value)
  3600. {
  3601. case 0: "Standard";
  3602. case 1: "Class";
  3603. case 2: "Vendor";
  3604. case 3: "Reserved";
  3605. }
  3606. }
  3607. // bmRequestType.Dir
  3608. Table USBPort_RequestTypeDirectionMap(value)
  3609. {
  3610. switch(value)
  3611. {
  3612. case 0: "Host-to-device";
  3613. case 1: "Device-to-host";
  3614. }
  3615. }
  3616. Table USBPort_StandardDeviceRequestMap(value)
  3617. {
  3618. switch(value)
  3619. {
  3620. case 0: "GET_STATUS";
  3621. case 1: "CLEAR_FEATURE";
  3622. case 2: "Reserved for future use";
  3623. case 3: "SET_FEATURE";
  3624. case 4: "Reserved for future use";
  3625. case 5: "SET_ADDRESS";
  3626. case 6: "GET_DESCRIPTOR";
  3627. case 7: "SET_DESCRIPTOR";
  3628. case 8: "GET_CONFIGURATION";
  3629. case 9: "SET_CONFIGURATION";
  3630. case 10: "GET_INTERFACE";
  3631. case 11: "SET_INTERFACE";
  3632. case 12: "SYNCH_FRAME";
  3633. case 48: "SET_SEL";
  3634. case 49: "SET_ISOCH_DELAY";
  3635. default: "Unknown";
  3636. }
  3637. }
  3638. Table UsbDescriptorTypeTable(value)
  3639. {
  3640. switch(value)
  3641. {
  3642. case 1: "DEVICE";
  3643. case 2: "CONFIGURATION";
  3644. case 3: "STRING";
  3645. case 4: "INTERFACE";
  3646. case 5: "ENDPOINT";
  3647. case 6: "DEVICE_QUALIFIER";
  3648. case 7: "OTHER_SPEED_CONFIGURATION";
  3649. case 8: "INTERFACE_POWER";
  3650. case 9: "OTG";
  3651. case 10: "DEBUG";
  3652. case 11: "INTERFACE_ASSOCIATION";
  3653. case 15: "BOS";
  3654. case 16: "DEVICE_CAPABILITY";
  3655. case 48: "SUPERSPEED_ENDPOINT_COMPANION";
  3656. default: "Unknown";
  3657. }
  3658. }
  3659. Table USBPort_DeviceFeatureMap(value)
  3660. {
  3661. switch(value)
  3662. {
  3663. case 1: "DEVICE_REMOTE_WAKEUP";
  3664. case 2: "TEST_MODE";
  3665. case 48: "U1_ENABLE";
  3666. case 49: "U2_ENABLE";
  3667. case 50: "LTM_ENABLE";
  3668. default: "Unknown device feature";
  3669. }
  3670. }
  3671. Table USBPort_EndpointFeatureMap(value)
  3672. {
  3673. switch(value)
  3674. {
  3675. case 0: "ENDPOINT_HALT";
  3676. default: "Unknown endpoint feature";
  3677. }
  3678. }
  3679. //
  3680. // Descriptions for common values of hub port status change bits. Show bit string for multiple
  3681. // changes.
  3682. //
  3683. Table USBPort_ChangeBitsStringMap(value)
  3684. {
  3685. switch(value)
  3686. {
  3687. case 0x0: "0";
  3688. case 0x1: "Changed PORT_CONNECTION";
  3689. case 0x2: "Changed PORT_ENABLE";
  3690. case 0x4: "Changed PORT_SUSPEND";
  3691. case 0x8: "Changed PORT_OVER_CURRENT";
  3692. case 0x10: "Changed PORT_RESET";
  3693. default: value.ToBitString;
  3694. }
  3695. }
  3696. Table UsbSpeedTable(value)
  3697. {
  3698. switch(value)
  3699. {
  3700. case 0: "UsbLowSpeed";
  3701. case 1: "UsbFullSpeed";
  3702. case 2: "UsbHighSpeed";
  3703. case 3: "UsbSuperSpeed";
  3704. }
  3705. }
  3706. Table UsbDeviceCapabilityTypeTable(value)
  3707. {
  3708. switch(value)
  3709. {
  3710. case 1: "Wireless_USB";
  3711. case 2: "USB 2.0 EXTENSION";
  3712. case 3: "SUPERSPEED_USB";
  3713. case 4: "CONTAINER_ID";
  3714. default: "Unknown";
  3715. }
  3716. }
  3717. Table UsbdStatusTable(value)
  3718. {
  3719. switch(value)
  3720. {
  3721. // usb.h 2010/04/09
  3722. case 0x00000000: "success"; // USBD_STATUS_SUCCESS
  3723. case 0x40000000: "pending"; // USBD_STATUS_PENDING
  3724. case 0xC0000001: "crc"; // USBD_STATUS_CRC
  3725. case 0xC0000002: "btstuff"; // USBD_STATUS_BTSTUFF
  3726. case 0xC0000003: "data_toggle_mismatch"; // USBD_STATUS_DATA_TOGGLE_MISMATCH
  3727. case 0xC0000004: "stall_pid"; // USBD_STATUS_STALL_PID
  3728. case 0xC0000005: "dev_not_responding"; // USBD_STATUS_DEV_NOT_RESPONDING
  3729. case 0xC0000006: "pid_check_failure"; // USBD_STATUS_PID_CHECK_FAILURE
  3730. case 0xC0000007: "unexpected_pid"; // USBD_STATUS_UNEXPECTED_PID
  3731. case 0xC0000008: "data_overrun"; // USBD_STATUS_DATA_OVERRUN
  3732. case 0xC0000009: "data_underrun"; // USBD_STATUS_DATA_UNDERRUN
  3733. case 0xC000000A: "reserved1"; // USBD_STATUS_RESERVED1
  3734. case 0xC000000B: "reserved2"; // USBD_STATUS_RESERVED2
  3735. case 0xC000000C: "buffer_overrun"; // USBD_STATUS_BUFFER_OVERRUN
  3736. case 0xC000000D: "buffer_underrun"; // USBD_STATUS_BUFFER_UNDERRUN
  3737. case 0xC000000F: "not_accessed"; // USBD_STATUS_NOT_ACCESSED
  3738. case 0xC0000010: "fifo"; // USBD_STATUS_FIFO
  3739. case 0xC0000011: "xact_error"; // USBD_STATUS_XACT_ERROR
  3740. case 0xC0000012: "babble_detected"; // USBD_STATUS_BABBLE_DETECTED
  3741. case 0xC0000013: "data_buffer_error"; // USBD_STATUS_DATA_BUFFER_ERROR
  3742. case 0xC0000030: "endpoint_halted"; // USBD_STATUS_ENDPOINT_HALTED
  3743. case 0x80000200: "invalid_urb_function"; // USBD_STATUS_INVALID_URB_FUNCTION
  3744. case 0x80000300: "invalid_parameter"; // USBD_STATUS_INVALID_PARAMETER
  3745. case 0x80000400: "error_busy"; // USBD_STATUS_ERROR_BUSY
  3746. case 0x80000600: "invalid_pipe_handle"; // USBD_STATUS_INVALID_PIPE_HANDLE
  3747. case 0x80000700: "no_bandwidth"; // USBD_STATUS_NO_BANDWIDTH
  3748. case 0x80000800: "internal_hc_error"; // USBD_STATUS_INTERNAL_HC_ERROR
  3749. case 0x80000900: "error_short_transfer"; // USBD_STATUS_ERROR_SHORT_TRANSFER
  3750. case 0xC0000A00: "bad_start_frame"; // USBD_STATUS_BAD_START_FRAME
  3751. case 0xC0000B00: "isoch_request_failed"; // USBD_STATUS_ISOCH_REQUEST_FAILED
  3752. case 0xC0000C00: "frame_control_owned"; // USBD_STATUS_FRAME_CONTROL_OWNED
  3753. case 0xC0000D00: "frame_control_not_owned"; // USBD_STATUS_FRAME_CONTROL_NOT_OWNED
  3754. case 0xC0000E00: "not_supported"; // USBD_STATUS_NOT_SUPPORTED
  3755. case 0xC0000F00: "inavlid_configuration_descriptor"; // USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR
  3756. case 0xC0001000: "insufficient_resources"; // USBD_STATUS_INSUFFICIENT_RESOURCES
  3757. case 0xC0002000: "set_config_failed"; // USBD_STATUS_SET_CONFIG_FAILED
  3758. case 0xC0003000: "buffer_too_small"; // USBD_STATUS_BUFFER_TOO_SMALL
  3759. case 0xC0004000: "interface_not_found"; // USBD_STATUS_INTERFACE_NOT_FOUND
  3760. case 0xC0005000: "inavlid_pipe_flags"; // USBD_STATUS_INAVLID_PIPE_FLAGS
  3761. case 0xC0006000: "timeout"; // USBD_STATUS_TIMEOUT
  3762. case 0xC0007000: "device_gone"; // USBD_STATUS_DEVICE_GONE
  3763. case 0xC0008000: "status_not_mapped"; // USBD_STATUS_STATUS_NOT_MAPPED
  3764. case 0xC0009000: "hub_internal_error"; // USBD_STATUS_HUB_INTERNAL_ERROR
  3765. case 0xC0010000: "canceled"; // USBD_STATUS_CANCELED
  3766. case 0xC0020000: "iso_not_accessed_by_hw"; // USBD_STATUS_ISO_NOT_ACCESSED_BY_HW
  3767. case 0xC0030000: "iso_td_error"; // USBD_STATUS_ISO_TD_ERROR
  3768. case 0xC0040000: "iso_na_late_usbport"; // USBD_STATUS_ISO_NA_LATE_USBPORT
  3769. case 0xC0050000: "iso_not_accessed_late"; // USBD_STATUS_ISO_NOT_ACCESSED_LATE
  3770. case 0xC0100000: "bad_descriptor"; // USBD_STATUS_BAD_DESCRIPTOR
  3771. case 0xC0100001: "bad_descriptor_blen"; // USBD_STATUS_BAD_DESCRIPTOR_BLEN
  3772. case 0xC0100002: "bad_descriptor_type"; // USBD_STATUS_BAD_DESCRIPTOR_TYPE
  3773. case 0xC0100003: "bad_interface_descriptor"; // USBD_STATUS_BAD_INTERFACE_DESCRIPTOR
  3774. case 0xC0100004: "bad_endpoint_descriptor"; // USBD_STATUS_BAD_ENDPOINT_DESCRIPTOR
  3775. case 0xC0100005: "bad_interface_assoc_descriptor"; // USBD_STATUS_BAD_INTERFACE_ASSOC_DESCRIPTOR
  3776. case 0xC0100006: "bad_config_desc_length"; // USBD_STATUS_BAD_CONFIG_DESC_LENGTH
  3777. case 0xC0100007: "bad_number_of_interfaces"; // USBD_STATUS_BAD_NUMBER_OF_INTERFACES
  3778. case 0xC0100008: "bad_number_of_endpoints"; // USBD_STATUS_BAD_NUMBER_OF_ENDPOINTS
  3779. case 0xC0100009: "bad_endpoint_address"; // USBD_STATUS_BAD_ENDPOINT_ADDRESS
  3780. default: "Unknown";
  3781. }
  3782. }
  3783. // User-mode IOCTLs
  3784. Table UsbIoctlTable(value)
  3785. {
  3786. switch (value)
  3787. {
  3788. case 0x2203fc: "IOCTL_USB_HCD_GET_STATS_1";
  3789. case 0x220400: "IOCTL_USB_DIAGNOSTIC_MODE_ON";
  3790. case 0x220404: "IOCTL_USB_DIAGNOSTIC_MODE_OFF";
  3791. // Same value has different meaning to hub driver vs. controller driver
  3792. case 0x220408: "IOCTL_USB_GET_NODE_INFORMATION or IOCTL_USB_GET_ROOT_HUB_NAME (check recipient)";
  3793. case 0x22040c: "IOCTL_USB_GET_NODE_CONNECTION_INFORMATION";
  3794. case 0x220410: "IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION";
  3795. case 0x220414: "IOCTL_USB_GET_NODE_CONNECTION_NAME";
  3796. case 0x220418: "IOCTL_USB_DIAG_IGNORE_HUBS_ON";
  3797. case 0x22041c: "IOCTL_USB_DIAG_IGNORE_HUBS_OFF";
  3798. case 0x220420: "IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME";
  3799. case 0x220424: "IOCTL_GET_HCD_DRIVERKEY_NAME";
  3800. case 0x220428: "IOCTL_USB_HCD_GET_STATS_2";
  3801. case 0x220430: "IOCTL_USB_HCD_DISABLE_PORT";
  3802. case 0x220434: "IOCTL_USB_HCD_ENABLE_PORT";
  3803. case 0x220438: "IOCTL_USB_USER_REQUEST";
  3804. case 0x22043c: "IOCTL_USB_GET_HUB_CAPABILITIES";
  3805. case 0x220440: "IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES";
  3806. case 0x220444: "IOCTL_USB_HUB_CYCLE_PORT";
  3807. case 0x220448: "IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX";
  3808. case 0x22044c: "IOCTL_USB_RESET_HUB";
  3809. case 0x220450: "IOCTL_USB_GET_HUB_CAPABILITIES_EX";
  3810. case 0x220454: "IOCTL_USB_GET_HUB_INFORMATION_EX";
  3811. case 0x220458: "IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES";
  3812. case 0x22045c: "IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2";
  3813. default: FormatString("Unknown USB UM IOCTL 0x%x", value);
  3814. }
  3815. }
  3816. // Kernel-mode IOCTLs
  3817. Table UsbIoctlInternalTable(value)
  3818. {
  3819. switch (value)
  3820. {
  3821. case 0x220003: "IOCTL_INTERNAL_USB_SUBMIT_URB";
  3822. case 0x220007: "IOCTL_INTERNAL_USB_RESET_PORT";
  3823. case 0x22000f: "IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO";
  3824. case 0x220013: "IOCTL_INTERNAL_USB_GET_PORT_STATUS";
  3825. case 0x220017: "IOCTL_INTERNAL_USB_ENABLE_PORT";
  3826. case 0x22001b: "IOCTL_INTERNAL_USB_GET_HUB_COUNT";
  3827. case 0x22001f: "IOCTL_INTERNAL_USB_CYCLE_PORT";
  3828. case 0x220020: "IOCTL_INTERNAL_USB_GET_HUB_NAME";
  3829. case 0x220027: "IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION";
  3830. case 0x22002b: "IOCTL_INTERNAL_USB_RECORD_FAILURE";
  3831. case 0x220420: "IOCTL_INTERNAL_USB_GET_BUS_INFO";
  3832. case 0x220424: "IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME";
  3833. case 0x220428: "IOCTL_INTERNAL_USB_GET_BUSGUID_INFO";
  3834. case 0x22042c: "IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO";
  3835. case 0x220433: "IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE";
  3836. case 0x220437: "IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX";
  3837. case 0x22043b: "IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE";
  3838. case 0x22043f: "IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS";
  3839. case 0x220443: "IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY";
  3840. case 0x220447: "IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND";
  3841. case 0x22044b: "IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME";
  3842. case 0x22044f: "IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO";
  3843. case 0x490003: "IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE";
  3844. case 0x490007: "IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE";
  3845. case 0x49000b: "IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION";
  3846. case 0x49104b: "(private) IOCTL_INTERNAL_USB_QUERY_USB_CAPABILITY";
  3847. case 0x49103f: "(private) IOCTL_INTERNAL_USB_ENDPOINT_RESET";
  3848. case 0x49100b: "(private) IOCTL_INTERNAL_USB_ROOTHUB_GET_INFO";
  3849. case 0x49100f: "(private) IOCTL_INTERNAL_USB_ROOTHUB_GET_20PORT_INFO";
  3850. case 0x491013: "(private) IOCTL_INTERNAL_USB_ROOTHUB_GET_30PORT_INFO";
  3851. case 0x491007: "(private) IOCTL_INTERNAL_USB_ADDRESS0_OWNERSHIP_ACQUIRE";
  3852. case 0x491017: "(private) IOCTL_INTERNAL_USB_USBDEVICE_ENABLE";
  3853. case 0x49101b: "(private) IOCTL_INTERNAL_USB_USBDEVICE_RESET";
  3854. case 0x49101f: "(private) IOCTL_INTERNAL_USB_USBDEVICE_ADDRESS";
  3855. case 0x491023: "(private) IOCTL_INTERNAL_USB_USBDEVICE_UPDATE";
  3856. case 0x491027: "(private) IOCTL_INTERNAL_USB_USBDEVICE_HUB_INFO";
  3857. case 0x49102b: "(private) IOCTL_INTERNAL_USB_USBDEVICE_DISABLE";
  3858. case 0x49102f: "(private) IOCTL_INTERNAL_USB_USBDEVICE_PURGEIO";
  3859. case 0x491033: "(private) IOCTL_INTERNAL_USB_USBDEVICE_STARTIO";
  3860. case 0x491037: "(private) IOCTL_INTERNAL_USB_ENDPOINTS_CONFIGURE";
  3861. case 0x49103b: "(private) IOCTL_INTERNAL_USB_DEFAULT_ENDPOINT_UPDATE";
  3862. case 0x491043: "(private) IOCTL_INTERNAL_USB_GET_HUB_INFO";
  3863. case 0x491053: "(private) IOCTL_INTERNAL_USB_USBDEVICE_TREE_PURGEIO";
  3864. case 0x491404: "(private) IOCTL_INTERNAL_USB_GET_DUMP_DATA";
  3865. case 0x491408: "(private) IOCTL_INTERNAL_USB_FREE_DUMP_DATA";
  3866. case 0x49140f: "(private) IOCTL_INTERNAL_USB_NOTIFY_FORWARD_PROGRESS";
  3867. case 0x220fa3: "(private) IOCTL_INTERNAL_USB_PROPAGATE_RESUME";
  3868. case 0x220fa7: "(private) IOCTL_INTERNAL_USB_NOTIFY_HUB_PWR_LOSS";
  3869. case 0x220fb3: "(private) IOCTL_INTERNAL_USB_RESET_PORT_ASYNC";
  3870. case 0x220fab: "(private) IOCTL_INTERNAL_USB_RESET_NOTIFICATION_REQUEST";
  3871. case 0x49104f: "(private) IOCTL_INTERNAL_USB_SET_FUNCTION_HANDLE_DATA";
  3872. case 0x220010: "(private) IOCTL_USB_GET_PORT_STATUS";
  3873. default: FormatString("Unknown USB KM IOCTL 0x%x", value);
  3874. }
  3875. }
  3876. Table USBPort_UsbUrbFunction(Function)
  3877. {
  3878. switch(Function)
  3879. {
  3880. case 0x0000: "URB_FUNCTION_SELECT_CONFIGURATION";
  3881. case 0x0001: "URB_FUNCTION_SELECT_INTERFACE";
  3882. case 0x0002: "URB_FUNCTION_ABORT_PIPE";
  3883. case 0x0003: "URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL";
  3884. case 0x0004: "URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL";
  3885. case 0x0005: "URB_FUNCTION_GET_FRAME_LENGTH";
  3886. case 0x0006: "URB_FUNCTION_SET_FRAME_LENGTH";
  3887. case 0x0007: "URB_FUNCTION_GET_CURRENT_FRAME_NUMBER";
  3888. case 0x0008: "URB_FUNCTION_CONTROL_TRANSFER";
  3889. case 0x0009: "URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER";
  3890. case 0x000A: "URB_FUNCTION_ISOCH_TRANSFER";
  3891. case 0x000B: "URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE";
  3892. case 0x000C: "URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE";
  3893. case 0x000D: "URB_FUNCTION_SET_FEATURE_TO_DEVICE";
  3894. case 0x000E: "URB_FUNCTION_SET_FEATURE_TO_INTERFACE";
  3895. case 0x000F: "URB_FUNCTION_SET_FEATURE_TO_ENDPOINT";
  3896. case 0x0010: "URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE";
  3897. case 0x0011: "URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE";
  3898. case 0x0012: "URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT";
  3899. case 0x0013: "URB_FUNCTION_GET_STATUS_FROM_DEVICE";
  3900. case 0x0014: "URB_FUNCTION_GET_STATUS_FROM_INTERFACE";
  3901. case 0x0015: "URB_FUNCTION_GET_STATUS_FROM_ENDPOINT";
  3902. case 0x0016: "URB_FUNCTION_RESERVED_0X0016";
  3903. case 0x0017: "URB_FUNCTION_VENDOR_DEVICE";
  3904. case 0x0018: "URB_FUNCTION_VENDOR_INTERFACE";
  3905. case 0x0019: "URB_FUNCTION_VENDOR_ENDPOINT";
  3906. case 0x001A: "URB_FUNCTION_CLASS_DEVICE";
  3907. case 0x001B: "URB_FUNCTION_CLASS_INTERFACE";
  3908. case 0x001C: "URB_FUNCTION_CLASS_ENDPOINT";
  3909. case 0x001D: "URB_FUNCTION_RESERVE_0X001D";
  3910. case 0x001E: "URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL";
  3911. case 0x001F: "URB_FUNCTION_CLASS_OTHER";
  3912. case 0x0020: "URB_FUNCTION_VENDOR_OTHER";
  3913. case 0x0021: "URB_FUNCTION_GET_STATUS_FROM_OTHER";
  3914. case 0x0022: "URB_FUNCTION_CLEAR_FEATURE_TO_OTHER";
  3915. case 0x0023: "URB_FUNCTION_SET_FEATURE_TO_OTHER";
  3916. case 0x0024: "URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT";
  3917. case 0x0025: "URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT";
  3918. case 0x0026: "URB_FUNCTION_GET_CONFIGURATION";
  3919. case 0x0027: "URB_FUNCTION_GET_INTERFACE";
  3920. case 0x0028: "URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE";
  3921. case 0x0029: "URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE";
  3922. case 0x002A: "URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR";
  3923. case 0x0030: "URB_FUNCTION_SYNC_RESET_PIPE";
  3924. case 0x0031: "URB_FUNCTION_SYNC_CLEAR_STALL";
  3925. case 0x0032: "URB_FUNCTION_CONTROL_TRANSFER_EX";
  3926. case 0x0035: "URB_FUNCTION_OPEN_STATIC_STREAMS";
  3927. case 0x0036: "URB_FUNCTION_CLOSE_STATIC_STREAMS";
  3928. case 0x0037: "URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL";
  3929. case 0x0038: "URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL";
  3930. default: "Unknown";
  3931. }
  3932. }
  3933. [Global.InternalUsbTblVid$[Property.USBDevicePtr] = FormatString("0x%04X", idVendor)]
  3934. [Global.InternalUsbTblPid$[Property.USBDevicePtr] = FormatString("0x%04X", idProduct)]
  3935. struct USB_DEVICE_DESCRIPTOR = FormatString("VID_%04X&PID_%04X", idVendor, idProduct)
  3936. {
  3937. UINT8 bLength;
  3938. UINT8 bDescriptorType;
  3939. UINT16 bcdUSB;
  3940. UINT8 bDeviceClass;
  3941. UINT8 bDeviceSubClass;
  3942. UINT8 bDeviceProtocol;
  3943. UINT8 bMaxPacketSize0;
  3944. UINT16 idVendor;
  3945. UINT16 idProduct;
  3946. UINT16 bcdDevice;
  3947. UINT8 iManufacturer;
  3948. UINT8 iProduct;
  3949. UINT8 iSerialNumber;
  3950. UINT8 bNumConfigurations;
  3951. }
  3952. struct USB_ENDPOINT_DESCRIPTOR = FormatString("bmAttrubibutes 0x%x", bmAttributes)
  3953. {
  3954. UINT8 bLength;
  3955. UINT8 bDescriptorType;
  3956. UINT8 bEndpointAddress;
  3957. UINT8 bmAttributes;
  3958. UINT16 wMaxPacketSize;
  3959. UINT8 bInterval;
  3960. }
  3961. struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR = FormatString("MaxBurst %d", bMaxBurst)
  3962. {
  3963. UINT8 bLength;
  3964. UINT8 bDescriptorType;
  3965. UINT8 bMaxBurst;
  3966. UINT8 MaxStreamsOrMult; // max streams (5 bits) for bulk, or mult (2 bits) for isoch. this is bmAttributes
  3967. UINT16 wBytesPerInterval;
  3968. }
  3969. struct USB_CONFIGURATION_DESCRIPTOR = FormatString("Value %d Length %d", bConfigurationValue, wTotalLength)
  3970. {
  3971. UINT8 bLength;
  3972. UINT8 bDescriptorType;
  3973. UINT16 wTotalLength;
  3974. UINT8 bNumInterfaces;
  3975. UINT8 bConfigurationValue;
  3976. UINT8 iConfiguration;
  3977. UINT8 bmAttributes;
  3978. UINT8 bMaxPower;
  3979. }
  3980. //
  3981. // Save the interface data for the first interface descriptor for each device. This descriptor
  3982. // tells us the whole device's class.
  3983. //
  3984. [Global.InternalUsbTblClass$[Property.USBDevicePtr] =
  3985. IsValueNone(Global.InternalUsbTblClass$[Property.USBDevicePtr]) ?
  3986. FormatString("0x%X", bInterfaceClass) :
  3987. Global.InternalUsbTblClass$[Property.USBDevicePtr] ]
  3988. [Global.InternalUsbTblSubclass$[Property.USBDevicePtr] =
  3989. IsValueNone(Global.InternalUsbTblSubclass$[Property.USBDevicePtr]) ?
  3990. FormatString("0x%X", bInterfaceSubClass) :
  3991. Global.InternalUsbTblSubclass$[Property.USBDevicePtr] ]
  3992. [Global.InternalUsbTblProtocol$[Property.USBDevicePtr] =
  3993. IsValueNone(Global.InternalUsbTblProtocol$[Property.USBDevicePtr]) ?
  3994. FormatString("0x%X", bInterfaceProtocol) :
  3995. Global.InternalUsbTblProtocol$[Property.USBDevicePtr] ]
  3996. struct USB_INTERFACE_DESCRIPTOR = FormatString("Interface %d alt %d", bInterfaceNumber, bAlternateSetting)
  3997. {
  3998. UINT8 bLength;
  3999. UINT8 bDescriptorType;
  4000. UINT8 bInterfaceNumber;
  4001. UINT8 bAlternateSetting;
  4002. UINT8 bNumEndpoints;
  4003. UINT8 bInterfaceClass;
  4004. UINT8 bInterfaceSubClass;
  4005. UINT8 bInterfaceProtocol;
  4006. UINT8 iInterface;
  4007. }
  4008. struct USB_STRING_DESCRIPTOR = bString
  4009. {
  4010. UINT8 bLength;
  4011. UINT8 bDescriptorType;
  4012. UnicodeString((bLength-2)/2) bString;
  4013. }
  4014. struct USB_BOS_DESCRIPTOR = FormatString ("%d descriptors", bNumDeviceCaps)
  4015. {
  4016. UINT8 bLength;
  4017. UINT8 bDescriptorType;
  4018. UINT16 wTotalLength;
  4019. UINT8 bNumDeviceCaps;
  4020. }
  4021. struct USB_DEVICE_CAPABILITY_DESCRIPTOR = Local.CapabilityDescription
  4022. {
  4023. [Local.StartOffset = Offset]
  4024. UINT8 bLength;
  4025. UINT8 bDescriptorType;
  4026. UINT8 bDevCapabilityType = FormatString("(%d) %s", this, UsbDeviceCapabilityTypeTable(this));
  4027. switch (UsbDeviceCapabilityTypeTable(bDevCapabilityType))
  4028. {
  4029. case "USB 2.0 EXTENSION":
  4030. [Post.Local.CapabilityDescription = this.ToString]
  4031. UINT32 bmAttributes_Usb2 = FormatString("%s", (LPM ? "LPM" : "No LPM"))
  4032. {
  4033. UINT32 Reserved_1:1;
  4034. UINT32 LPM:1;
  4035. UINT32 Reserved_2:30;
  4036. }
  4037. case "SUPERSPEED_USB": Struct
  4038. {
  4039. UINT8 bmAttributes_Ss = FormatString("%s", (LTM ? "LTM" : "No LTM"))
  4040. {
  4041. UINT8 Reserved_1:1;
  4042. UINT8 LTM:1;
  4043. UINT8 Reserved_2:6;
  4044. };
  4045. UINT16 wSpeedsSupported = FormatString("%s%s%s%s",
  4046. LowSpeed ? "ls" : "",
  4047. FullSpeed ? "fs" : "",
  4048. HighSpeed ? "hs" : "",
  4049. SuperSpeed ? "ss" : ""
  4050. )
  4051. {
  4052. UINT16 LowSpeed:1;
  4053. UINT16 FullSpeed:1;
  4054. UINT16 HighSpeed:1;
  4055. UINT16 SuperSpeed:1;
  4056. UINT16 Reserved:12;
  4057. }
  4058. UINT8 bFunctionalitySupport = UsbSpeedTable(this);
  4059. UINT8 bU1DevExitLat;
  4060. [Post.Local.CapabilityDescription = FormatString("Speeds: %s", wSpeedsSupported.ToString)]
  4061. UINT16 wU2DevExitLat;
  4062. }
  4063. case "CONTAINER_ID": Struct
  4064. {
  4065. UINT8 bReserved;
  4066. [Post.Local.CapabilityDescription = this.ToString]
  4067. GUID(false) ContainerID; // TODO: should marshalled be true or false?
  4068. }
  4069. default:
  4070. [Post.Local.CapabilityDescription = "Unknown capability"]
  4071. BLOB(bLength - (Offset - Local.StartOffset)) UnknownCapability;
  4072. }
  4073. }
  4074. struct USBPort_HostController2 = HostController.ToString
  4075. {
  4076. EtlPtr DeviceObject;
  4077. USBPort_HostController HostController;
  4078. }
  4079. struct USBPort_Execution_Metrics = FormatString("%I64d µs", Delta)
  4080. {
  4081. [Property.USBPerfStartTime = FormatString("%I64d", this)]
  4082. UINT64 StartTime;
  4083. [Property.USBPerfStopTime = FormatString("%I64d", this)]
  4084. UINT64 StopTime;
  4085. [Property.USBPerfDelta = FormatString("%I64d", this)]
  4086. UINT64 Delta;
  4087. }
  4088. struct USBPort_HostController = FormatString("PCI\\VEN_%04X&DEV_%04X, bus %d, device %d, function %d", PciVendorId, PciDeviceId, PciBus, PciDevice, PciFunction)
  4089. {
  4090. UINT32 PciBus;
  4091. UINT16 PciDevice;
  4092. UINT16 PciFunction;
  4093. UINT16 PciVendorId;
  4094. UINT16 PciDeviceId;
  4095. }
  4096. [Global.InternalUsbTblPortPath$[Property.USBDevicePtr] = this.ToString]
  4097. struct UsbPortPath = (PortPathDepth == 0 ? "-" :
  4098. PortPathDepth == 1 ? FormatString("%d", PortPath0) :
  4099. PortPathDepth == 2 ? FormatString("%d,%d", PortPath0, PortPath1) :
  4100. PortPathDepth == 3 ? FormatString("%d,%d,%d", PortPath0, PortPath1, PortPath2) :
  4101. PortPathDepth == 4 ? FormatString("%d,%d,%d,%d", PortPath0, PortPath1, PortPath2, PortPath3) :
  4102. PortPathDepth == 5 ? FormatString("%d,%d,%d,%d,%d", PortPath0, PortPath1, PortPath2, PortPath3, PortPath4) :
  4103. PortPathDepth == 6 ? FormatString("%d,%d,%d,%d,%d,%d", PortPath0, PortPath1, PortPath2, PortPath3, PortPath4, PortPath5) :
  4104. "invalid")
  4105. {
  4106. UINT32 PortPathDepth;
  4107. UINT32 PortPath0;
  4108. UINT32 PortPath1;
  4109. UINT32 PortPath2;
  4110. UINT32 PortPath3;
  4111. UINT32 PortPath4;
  4112. UINT32 PortPath5;
  4113. }
  4114. // TODO: Improve this structure to dump more information about Power / Pnp / Ioctls
  4115. struct IO_STACK_LOCATION = FormatString("IoStackLocation")
  4116. {
  4117. [Property.MajorFunction]
  4118. UINT8 MajorFunction;
  4119. [Property.MinorFunction]
  4120. UINT8 MinorFunction;
  4121. UINT8 Flags;
  4122. UINT8 Control;
  4123. EtlPtr Arg1;
  4124. EtlPtr Arg2;
  4125. [Property.IoControlCode = (MajorFunction == IRP_MJ_INTERNAL_DEVICE_CONTROL || MajorFunction == IRP_MJ_DEVICE_CONTROL) ? this.Ptr : ""]
  4126. EtlPtr Arg3;
  4127. EtlPtr Arg4;
  4128. EtlPtr DeviceObject
  4129. EtlPtr FileObject
  4130. EtlPtr CompletionRoutine
  4131. EtlPtr Context
  4132. }
  4133. // TODO: Merge IRP_X86 and IRP_X64 structures into 1.
  4134. struct IRP_X86 = FormatString("IRP")
  4135. {
  4136. UINT16 Type
  4137. UINT16 Size
  4138. EtlPtr MdlAddress
  4139. UINT32 Flags
  4140. EtlPtr AssociatedIrp
  4141. EtlPtr ThreadListEntry_Flink
  4142. EtlPtr ThreadListEntry_Blink
  4143. NTSTATUS IoStatus_Status
  4144. UINT32 IoStatus_Information
  4145. UINT8 RequestorMode
  4146. UINT8 PendingReturned
  4147. UINT8 StackCount
  4148. UINT8 CurrentLocation
  4149. UINT8 Cancel
  4150. UINT8 CancelIrql
  4151. UINT8 ApcEnvironment
  4152. UINT8 AllocationFlags
  4153. EtlPtr UserIosb
  4154. EtlPtr UserEvent
  4155. BLOB(8) Overlay
  4156. EtlPtr CancelRoutine
  4157. EtlPtr UserBuffer
  4158. BLOB(16) Tail_OverLay_DriverContext
  4159. EtlPtr Tail_OverLay_Thread
  4160. EtlPtr Tail_Overlay_AuxilaryBuffer
  4161. EtlPtr Tail_Overlay_ListEntry_Flink
  4162. EtlPtr Tail_Overlay_ListEntry_Blink
  4163. EtlPtr Tail_Overlay_CurrentSTackLocation
  4164. BLOB(12) Remaining
  4165. }
  4166. struct IRP_X64 = FormatString("IRP")
  4167. {
  4168. UINT16 Type
  4169. UINT16 Size
  4170. BLOB(4) Pad0
  4171. EtlPtr MdlAddress
  4172. UINT32 Flags
  4173. BLOB(4) Pad1
  4174. EtlPtr AssociatedIrp
  4175. EtlPtr ThreadListEntry_Flink
  4176. EtlPtr ThreadListEntry_Blink
  4177. NTSTATUS IoStatus_Status
  4178. UINT32 IoStatus_Pad1
  4179. UINT32 IoStatus_Information
  4180. UINT32 IoStatus_Pad2
  4181. UINT8 RequestorMode
  4182. UINT8 PendingReturned
  4183. UINT8 StackCount
  4184. UINT8 CurrentLocation
  4185. UINT8 Cancel
  4186. UINT8 CancelIrql
  4187. UINT8 ApcEnvironment
  4188. UINT8 AllocationFlags
  4189. EtlPtr UserIosb
  4190. EtlPtr UserEvent
  4191. BLOB(16) Overlay
  4192. EtlPtr CancelRoutine
  4193. EtlPtr UserBuffer
  4194. BLOB(32) Tail_OverLay_DriverContext
  4195. EtlPtr Tail_OverLay_Thread
  4196. EtlPtr Tail_Overlay_AuxilaryBuffer
  4197. EtlPtr Tail_Overlay_ListEntry_Flink
  4198. EtlPtr Tail_Overlay_ListEntry_Blink
  4199. EtlPtr Tail_Overlay_CurrentSTackLocation
  4200. BLOB(16) Remaining
  4201. }
  4202. // Doesn't cover all URBs, but covers the beginning of most transfer URBs.
  4203. struct URB = FormatString("%sFunction = %s, Length = %s, Flags 0x%x",
  4204. Property.USBDStatus != "" ? Property.USBDStatus + ", " : "",
  4205. USBPort_UsbUrbFunction(fid_URB_Hdr_Function),
  4206. Property.USBLength,
  4207. fid_URB_TransferFlags
  4208. )
  4209. {
  4210. UINT16 fid_URB_Hdr_Length;
  4211. UINT16 fid_URB_Hdr_Function = FormatString("%s (0x%x)", USBPort_UsbUrbFunction(this), this);
  4212. // Only show status for completion urb events, not dispatch urb events
  4213. switch(Property.InternalUsbIsUrbCompletion)
  4214. {
  4215. case 1:
  4216. USBD_STATUS fid_URB_Hdr_Status;
  4217. default:
  4218. UINT32 fid_URB_Hdr_Status_ignored;
  4219. }
  4220. EtlPtr fid_URB_Hdr_UsbdDeviceHandle;
  4221. EtlPtr fid_URB_Hdr_UsbdFlags;
  4222. Struct
  4223. {
  4224. switch(fid_URB_Hdr_Function)
  4225. {
  4226. case 0x0000: // URB_FUNCTION_SELECT_CONFIGURATION
  4227. Struct
  4228. {
  4229. EtlPtr fid_ConfigurationDescriptor;
  4230. EtlPtr fid_ConfigurationHandle;
  4231. }
  4232. //
  4233. // Following are all the transfer URBs
  4234. //
  4235. case 0x0008: //URB_FUNCTION_CONTROL_TRANSFER
  4236. case 0x0009: //URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
  4237. case 0x000A: //URB_FUNCTION_ISOCH_TRANSFER
  4238. case 0x000B: //URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE
  4239. case 0x000C: //URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE
  4240. case 0x000D: //URB_FUNCTION_SET_FEATURE_TO_DEVICE
  4241. case 0x000E: //URB_FUNCTION_SET_FEATURE_TO_INTERFACE
  4242. case 0x000F: //URB_FUNCTION_SET_FEATURE_TO_ENDPOINT
  4243. case 0x0010: //URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE
  4244. case 0x0011: //URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE
  4245. case 0x0012: //URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT
  4246. case 0x0013: //URB_FUNCTION_GET_STATUS_FROM_DEVICE
  4247. case 0x0014: //URB_FUNCTION_GET_STATUS_FROM_INTERFACE
  4248. case 0x0015: //URB_FUNCTION_GET_STATUS_FROM_ENDPOINT
  4249. case 0x0017: //URB_FUNCTION_VENDOR_DEVICE
  4250. case 0x0018: //URB_FUNCTION_VENDOR_INTERFACE
  4251. case 0x0019: //URB_FUNCTION_VENDOR_ENDPOINT
  4252. case 0x001A: //URB_FUNCTION_CLASS_DEVICE
  4253. case 0x001B: //URB_FUNCTION_CLASS_INTERFACE
  4254. case 0x001C: //URB_FUNCTION_CLASS_ENDPOINT
  4255. case 0x001F: //URB_FUNCTION_CLASS_OTHER
  4256. case 0x0020: //URB_FUNCTION_VENDOR_OTHER
  4257. case 0x0021: //URB_FUNCTION_GET_STATUS_FROM_OTHER
  4258. case 0x0022: //URB_FUNCTION_CLEAR_FEATURE_TO_OTHER
  4259. case 0x0023: //URB_FUNCTION_SET_FEATURE_TO_OTHER
  4260. case 0x0024: //URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT
  4261. case 0x0025: //URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT
  4262. case 0x0026: //URB_FUNCTION_GET_CONFIGURATION
  4263. case 0x0027: //URB_FUNCTION_GET_INTERFACE
  4264. case 0x0028: //URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE
  4265. case 0x0029: //URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE
  4266. case 0x002A: //URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR
  4267. case 0x0032: //URB_FUNCTION_CONTROL_TRANSFER_EX
  4268. case 0x0037: //URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL
  4269. case 0x0038: //URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL
  4270. Struct{
  4271. UsbPipeHandle fid_URB_PipeHandle;
  4272. UINT32 fid_URB_TransferFlags = Property.USBDirection +
  4273. (this.USBD_SHORT_TRANSFER_OK ? ", short ok" : "") +
  4274. (this.USBD_START_ISO_TRANSFER_ASAP ? ", iso asap" : "") +
  4275. (this.USBD_DEFAULT_PIPE_TRANSFER ? ", default pipe" : "") +
  4276. FormatString(" (0x%x)", this)
  4277. {
  4278. [Property.USBDirection = (this ? "In" : "Out")]
  4279. UINT32 USBD_TRANSFER_DIRECTION_IN:1 = FormatString(" (%s) %d", this.ToBitString, this);
  4280. UINT32 USBD_SHORT_TRANSFER_OK:1 = FormatString(" (%s) %d", this.ToBitString, this);
  4281. UINT32 USBD_START_ISO_TRANSFER_ASAP:1 = FormatString("(%s) %d", this.ToBitString, this);
  4282. UINT32 USBD_DEFAULT_PIPE_TRANSFER:1 = FormatString(" (%s) %d", this.ToBitString, this);
  4283. UINT32 Reserved:12;
  4284. }
  4285. //
  4286. // URB length
  4287. //
  4288. switch(Property.InternalUsbIsUrbCompletion)
  4289. {
  4290. case 1:
  4291. [Property.USBLengthCompleted]
  4292. //
  4293. // On completion, we must save the most recent requested length in an unchanging global
  4294. // in order for it to stick around and not get overwritten (all properties that
  4295. // reference it would get overwritten too). Make up a unique table index, save to it,
  4296. // and then use it.
  4297. //
  4298. [Property.InternalUsbUniqueUrbIndex = FormatString("%s_%d", Property.InternalUsbUrbPtr, FrameNumber)]
  4299. [Global.InternalUsbTblUrbLength$[Property.InternalUsbUniqueUrbIndex] = Global.InternalUsbTblLengthRequested$[Property.InternalUsbUrbPtr]]
  4300. [Property.USBLengthRequested = Global.InternalUsbTblUrbLength$[Property.InternalUsbUniqueUrbIndex]]
  4301. [Property.USBLength = FormatString("%d of %d", this, Property.USBLengthRequested)]
  4302. //
  4303. // Do the same table save for URB completion time. Must convert to seconds from
  4304. // 100-nanosecond units.
  4305. //
  4306. [Global.InternalUsbTblUrbRequestDuration$[Property.InternalUsbUniqueUrbIndex] =
  4307. TimeOffset - Global.InternalUsbTblUrbDispatchTime$[Property.InternalUsbUrbPtr]]
  4308. [Property.USBRequestDuration = Global.InternalUsbTblUrbRequestDuration$[Property.InternalUsbUniqueUrbIndex] / (1000*1000*10.0)]
  4309. UINT32 TransferBufferLength_Completed;
  4310. default:
  4311. [Global.InternalUsbTblLengthRequested$[Property.InternalUsbUrbPtr] = this]
  4312. [Global.InternalUsbTblUrbDispatchTime$[Property.InternalUsbUrbPtr] = TimeOffset]
  4313. [Property.USBLength = FormatString("%d", this)]
  4314. [Property.USBLengthRequested]
  4315. UINT32 TransferBufferLength_Requested;
  4316. }
  4317. EtlPtr TransferBuffer;
  4318. EtlPtr TransferBufferMDL;
  4319. EtlPtr UrbLink;
  4320. EtlPtr Hca[8];
  4321. switch(fid_URB_Hdr_Function)
  4322. {
  4323. case 0x9: //URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
  4324. case 0x37: //URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL
  4325. Struct
  4326. {
  4327. // No Addition information for Bulk/Interrupt Transfers
  4328. }
  4329. case 0x0038: //URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL
  4330. case 0x000A: //URB_FUNCTION_ISOCH_TRANSFER
  4331. Struct
  4332. {
  4333. [Property.USBIsochStartFrame]
  4334. UINT32 fid_URB_StartFrame;
  4335. [Property.USBIsochNumPackets]
  4336. UINT32 fid_URB_NumberOfPackets;
  4337. UINT32 fid_URB_ErrorCount;
  4338. USBPort_fid_USBPORT_URB_ISO_PACKETS fid_USBPORT_URB_ISO_PACKETS[fid_URB_NumberOfPackets];
  4339. }
  4340. //
  4341. // Remaining all are Control Transfers with a SetupPacket
  4342. //
  4343. default:
  4344. SETUP_PACKET SetupPacket;
  4345. }
  4346. }
  4347. //
  4348. // Following are all the Pipe Transfers
  4349. //
  4350. case 0x0002: //URB_FUNCTION_ABORT_PIPE
  4351. case 0x001E: //URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL
  4352. case 0x0030: //URB_FUNCTION_SYNC_RESET_PIPE
  4353. case 0x0031: //URB_FUNCTION_SYNC_CLEAR_STALL
  4354. case 0x0036: //URB_FUNCTION_CLOSE_STATIC_STREAMS
  4355. Struct
  4356. {
  4357. UsbPipeHandle fid_URB_PipeHandle;
  4358. UINT32 Reserved;
  4359. }
  4360. //
  4361. // TODO: Parsing code for the following URBs needs to be added.
  4362. //
  4363. case 0x0001: //URB_FUNCTION_SELECT_INTERFACE
  4364. case 0x0003: //URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL
  4365. case 0x0004: //URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL
  4366. case 0x0005: //URB_FUNCTION_GET_FRAME_LENGTH
  4367. case 0x0006: //URB_FUNCTION_SET_FRAME_LENGTH
  4368. case 0x0007: //URB_FUNCTION_GET_CURRENT_FRAME_NUMBER
  4369. case 0x0035: //URB_FUNCTION_OPEN_STATIC_STREAMS
  4370. Struct
  4371. {
  4372. }
  4373. default:
  4374. //
  4375. // An URB that is unexpected here. We would need to update the Parser file
  4376. // if we see this field.
  4377. //
  4378. EtlPtr Unknown;
  4379. }
  4380. }
  4381. }
  4382. Struct UsbUrbPtr = Pointer.Ptr.ToString
  4383. {
  4384. [Property.InternalUsbUrbPtr = Pointer.Ptr]
  4385. EtlPtr Pointer;
  4386. }
  4387. // Parameter: Property.InternalUsbDescriptorLength
  4388. // Set this parameter before using this struct, else it will consume the rest of the frame
  4389. Struct USB_DESCRIPTORS
  4390. {
  4391. [Local.StartOffset = Offset]
  4392. while Descriptors[Offset < (IsValueNone(Property.InternalUsbDescriptorLength) ?
  4393. DataEndOffset :
  4394. Property.InternalUsbDescriptorLength + Local.StartOffset)]
  4395. {
  4396. // All descriptors start with first byte = length, second byte = descriptor type
  4397. // Look ahead at descriptor length
  4398. switch(UINT8(FrameData, Offset))
  4399. {
  4400. case 0:
  4401. case 1:
  4402. // Length should have been >= 2
  4403. BLOB (1) InvalidLength;
  4404. default:
  4405. // Look ahead at descriptor type
  4406. switch(UsbDescriptorTypeTable(UINT8(FrameData, Offset+1)))
  4407. {
  4408. case "DEVICE": USB_DEVICE_DESCRIPTOR DeviceDescriptor;
  4409. case "CONFIGURATION": USB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
  4410. case "STRING": USB_STRING_DESCRIPTOR StringDescriptor;
  4411. case "INTERFACE": USB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
  4412. case "ENDPOINT": USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
  4413. case "SUPERSPEED_ENDPOINT_COMPANION": USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR EndpointCompanionDescriptor;
  4414. case "BOS": USB_BOS_DESCRIPTOR BosDescriptor;
  4415. case "DEVICE_CAPABILITY": USB_DEVICE_CAPABILITY_DESCRIPTOR CapabilityDescriptor;
  4416. // Get length again (first byte of descriptor) and mark that many
  4417. // bytes as an unparsed blob
  4418. default: BLOB (UINT8(FrameData, Offset)) Descriptor;
  4419. }
  4420. }
  4421. }
  4422. }
  4423. [Property.USBDStatus = UsbdStatusTable(Status)]
  4424. Struct USBD_STATUS = Status.ToString
  4425. {
  4426. UINT32 Status = FormatString("%s (0x%x)", UsbdStatusTable(this), this);
  4427. }
  4428. // Some events have endpoint pointer, some have pipe handle, some have both
  4429. // The same properties are set on both of them
  4430. Struct UsbEndpointPtr = Pointer.Ptr.ToString
  4431. {
  4432. [Property.USBEndpointPtr = Pointer.Ptr]
  4433. // Get all endpoint attributes from global tables into event properties
  4434. [Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber] = Global.InternalUsbTblEndpoint$[Pointer.Ptr]]
  4435. [Post.Property.USBEndpoint = Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber]]
  4436. EtlPtr Pointer;
  4437. }
  4438. // TODO: This can probably be reduced to a simple property once USB3 URB events have EndpointPtr. Also move UsbEndpointPtr to etl_usb3.npl and delete references to USBPipeHandle in that file.
  4439. Struct UsbPipeHandle = Pointer.Ptr.ToString
  4440. {
  4441. [Property.USBPipeHandle = Pointer.Ptr]
  4442. // Get all endpoint attributes from global tables into event properties
  4443. // Don't overwrite USBEndpoint (address) if it's already been found
  4444. [Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber] = !IsValueNone(Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber]) ? Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber] : Global.InternalUsbTblEndpoint$[Pointer.Ptr]]
  4445. [Post.Property.USBEndpoint = !IsValueNone(Property.USBEndpoint) ? Property.USBEndpoint : Global.InternalUsbTblFrameNumberToUSBEndpoint$[FrameNumber]]
  4446. EtlPtr Pointer;
  4447. }