The high-performance event interface for native (C/C++) listeners.
This is a local interface, which means that it can only be used by the in-proc binary compatible clients, written, for example, in unmanaged C++ language.
Register your native listener with a call to IMonitoring.AddNativeListener method call. Using native listener interface, you will be able to match the performance of the HHD Software USB Monitor application.
You must implement this interface in your native code to be able to receive monitored events. The USB Monitoring Control library uses the methods of this interface to notify your code about monitored events.
// This interface is not available in scripting environment
// This interface is not available in managed environment
struct INativeListener : IUnknown
{
// Methods
HRESULT ${OnClearFeatureToEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short nIndex);
HRESULT ${OnClearFeatureToInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short nIndex);
HRESULT ${OnClearFeatureToOther}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
HRESULT ${OnConnection}(FILETIME * fTime,
long bConnected,
wchar_t * DeviceName);
HRESULT ${OnControlTransfer}(FILETIME * fTime,
void * pData,
unsigned long Size,
void * SetupPacket,
unsigned long SetupPacketSize);
HRESULT ${OnGetConfiguration}(FILETIME * fTime,
void * Data,
unsigned long Size);
HRESULT ${OnGetCurrentFrameNumber}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long FrameNumber);
HRESULT ${OnGetDescriptorFromDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
HRESULT ${OnGetDescriptorFromEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
HRESULT ${OnGetDescriptorFromInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
HRESULT ${OnGetFrameLength}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long FrameLength,
unsigned long FrameNumber);
HRESULT ${OnGetInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
HRESULT ${OnGetStatusFromDevice}(FILETIME * fTime,
void * pData,
unsigned long Size);
HRESULT ${OnGetStatusFromEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Index);
HRESULT ${OnGetStatusFromInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Index);
HRESULT ${OnGetStatusFromOther}(FILETIME * fTime,
void * pData,
unsigned long Size);
HRESULT ${OnIsochTransfer}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long nTransferFlags,
unsigned long StartFrame,
unsigned long NumberOfPackets,
unsigned long ErrorCount);
HRESULT ${OnPacketDown}(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
HRESULT ${OnPacketUp}(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
HRESULT ${OnQueryID}(FILETIME * fTime);
HRESULT ${OnQueryInterface}(FILETIME * fTime);
HRESULT ${OnQueryText}(FILETIME * fTime);
HRESULT ${OnReleaseFrameLengthControl}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
HRESULT ${OnResetPipe}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned __int64 PipeHandle);
HRESULT ${OnSelectConfiguration}(FILETIME * fTime,
void * pData,
unsigned long Size);
HRESULT ${OnSelectInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long InterfaceNumber,
unsigned long AlternateSetting);
HRESULT ${OnSetDescriptorToDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
HRESULT ${OnSetDescriptorToEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
HRESULT ${OnSetDescriptorToInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
HRESULT ${OnSetFeatureToDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
HRESULT ${OnSetFeatureToEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short Index);
HRESULT ${OnSetFeatureToInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short Index);
HRESULT ${OnSetFeatureToOther}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
HRESULT ${OnSetFrameLength}(FILETIME * fTime,
void * pData,
unsigned long Size,
long FrameLengthDelta);
HRESULT ${OnSurpriseRemoval}(FILETIME * fTime);
HRESULT ${OnTakeFrameLengthControl}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
HRESULT ${OnUrb}(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
HRESULT ${OnVendorDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
HRESULT ${OnVendorEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
HRESULT ${OnVendorInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
HRESULT ${OnVendorOther}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
HRESULT ${ProcessRAWBuffer}(void * pData, unsinged long Size, long * bStopParsing);
HRESULT ${OnAbortPipe}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned __int64 PipeHandle);
HRESULT ${OnBulkOrInterruptTransfer}(FILETIME * fTime,
void * pData,
unsigned long Size,
void * Payload,
unsigned long PayloadSize);
HRESULT ${OnClassDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
HRESULT ${OnClassEndpoint}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
HRESULT ${OnClassInterface}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
HRESULT ${OnClassOther}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
HRESULT ${OnClearFeatureToDevice}(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
};
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClearFeatureToEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short nIndex);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.nIndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClearFeatureToInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short nIndex);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.nIndexwIndex field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClearFeatureToOther(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLEAR_FEATURE_TO_OTHER is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnConnection(FILETIME * fTime,
long bConnected,
wchar_t * DeviceName);
fTimebConnectedTRUE if device is connected and FALSE if device is disconnected.DeviceNameCalled when the control attaches/detaches itself to/from the USB device.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnControlTransfer(FILETIME * fTime,
void * pData,
unsigned long Size,
void * SetupPacket,
unsigned long SetupPacketSize);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.SetupPacketSetupPacketSizeFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CONTROL_TRANSFER is received. See _URB_CONTROL_DESCRIPTOR_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetConfiguration(FILETIME * fTime,
void * Data,
unsigned long Size);
fTimeDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.See _URB_BULK_OR_INTERRUPT_TRANSFER in MSDN for more details.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetDescriptorFromDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE/USB_CONFIGURATION_DESCRIPTOR_TYPE/USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE is received. See _URB_CONTROL_DESCRIPTOR_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetDescriptorFromEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE/USB_CONFIGURATION_DESCRIPTOR_TYPE/USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT is received. See _URB_CONTROL_DESCRIPTOR_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetDescriptorFromInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned short LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE/USB_CONFIGURATION_DESCRIPTOR_TYPE/USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE is received. See _URB_CONTROL_DESCRIPTOR_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetFrameLength(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long FrameLength,
unsigned long FrameNumber);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FrameLengthFrameNumberFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_FRAME_LENGTH is received. See _URB_GET_FRAME_LENGTH in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.InterfaceFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_INTERFACE is received. See _URB_CONTROL_GET_INTERFACE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetStatusFromDevice(FILETIME * fTime,
void * pData,
unsigned long Size);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_STATUS_FROM_DEVICE is received. See _URB_CONTROL_GET_STATUS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetStatusFromEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_STATUS_FROM_ENDPOINT is received. See _URB_CONTROL_GET_STATUS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetStatusFromInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_STATUS_FROM_INTERFACE is received. See _URB_CONTROL_GET_STATUS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnGetStatusFromOther(FILETIME * fTime,
void * pData,
unsigned long Size);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_GET_STATUS_FROM_OTHER is received. See _URB_CONTROL_GET_STATUS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnIsochTransfer(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long nTransferFlags,
unsigned long StartFrame,
unsigned long NumberOfPackets,
unsigned long ErrorCount);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.nTransferFlagsUSBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK, USBD_START_ISO_TRANSFER_ASAP.StartFrameUSBD_ISO_START_FRAME_RANGE. If START_ISO_TRANSFER_ASAP is set in TransferFlags, this member contains the frame number that the transfer began on, when the request is returned by the host controller driver. Otherwise, this member must contain the frame number that this transfer will begin on.NumberOfPacketsIsoPacket.ErrorCountFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_ISOCH_TRANSFER is received. See _URB_ISOCH_TRANSFER and USBD_ISO_PACKET_DESCRIPTOR for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnPacketDown(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.bStopParsingTRUE if you don't need USBMC to parse this packet any more. That means that USBMC will not call methods like OnUrb / OnGetDescriptorFromDevice / OnGetDescriptorFromEndpoint for this packet. That could be used for optimization if you manually parse URB packet.Called when packet is going down.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnPacketUp(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.bStopParsingTRUE if you don't need USBMC to parse this packet any more. That means that USBMC will not call methods like OnUrb / OnGetDescriptorFromDevice / OnGetDescriptorFromEndpoint for this packet. That could be used for optimization if you manually parse URB packet.Called when packet is going up.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnQueryID(FILETIME * fTime);
fTimeCalled when id is queried with EVENT_DEVICEQUERYID.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnQueryInterface(FILETIME * fTime);
fTimeCalled when id is queried with EVENT_DEVICEQUERYINTERFACE.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnQueryText(FILETIME * fTime);
fTimeCalled when id is queried with EVENT_DEVICEQUERYTEXT.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnReleaseFrameLengthControl(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.InterfaceFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL is received. See _URB_CONTROL_GET_INTERFACE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnResetPipe(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned __int64 PipeHandle);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.PipeHandleURB of type URB_FUNCTION_SELECT_CONFIGURATION or when the client driver changes the settings for an interface with a URB of type URB_FUNCTION_SELECT_INTERFACE.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_RESET_PIPE is received. See _URB_PIPE_REQUEST in MSDN for more details.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSelectConfiguration(FILETIME * fTime,
void * pData,
unsigned long Size);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SELECT_CONFIGURATION is received. See _URB_SELECT_CONFIGURATION for more details.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSelectInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned long InterfaceNumber,
unsigned long AlternateSetting);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.InterfaceNumberAlternateSettingFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SELECT_INTERFACE is received. See _URB_SELECT_INTERFACE in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetDescriptorToDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE, USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE is received. See _URB_CONTROL_DESCRIPTOR_REQUEST for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetDescriptorToEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE, USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT is received. See _URB_CONTROL_DESCRIPTOR_REQUEST for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetDescriptorToInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char Index,
unsigned char DescriptorType,
unsigned long LanguageId);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.IndexDescriptorTypeUSB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE, USB_STRING_DESCRIPTOR_TYPE.LanguageIdUSB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This member must be set to zero for any other value in DescriptorType.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE is received. See _URB_CONTROL_DESCRIPTOR_REQUEST for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetFeatureToDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_FEATURE_TO_DEVICE is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetFeatureToEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.IndexIndex member to the wIndex field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_FEATURE_TO_ENDPOINT is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetFeatureToInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.IndexIndex member to the wIndex field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_FEATURE_TO_INTERFACE is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetFeatureToOther(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_FEATURE_TO_OTHER is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSetFrameLength(FILETIME * fTime,
void * pData,
unsigned long Size,
long FrameLengthDelta);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FrameLengthDeltaURB is 1.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_SET_FRAME_LENGTH is received. See _URB_SET_FRAME_LENGTH for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnSurpriseRemoval(FILETIME * fTime);
fTime
Called when device is removed with EVENT_DEVICESURPRISEREMOVAL.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnTakeFrameLengthControl(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short Interface);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.InterfaceFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL is received. See _URB_CONTROL_GET_INTERFACE_REQUEST for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnUrb(FILETIME * fTime,
void * pData,
unsigned long Size,
long * bStopParsing);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.bStopParsingTRUE if you don't need USBMC to parse this packet any more. That means that USBMC will not call methods like OnGetDescriptorFromDevice / OnGetDescriptorFromEndpoint for this packet. That could be used for optimization if you manually parse URB packet.Called when URB is transmitted. See USBPACKET_URB for more information.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnVendorDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_VENDOR_DEVICE is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more information. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnVendorEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueIndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_VENDOR_ENDPOINT is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more information. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnVendorInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueIndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_VENDOR_INTERFACE is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more information. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnVendorOther(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_VENDOR_OTHER is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more information. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT ProcessRAWBuffer(void * pData, unsinged long Size, long * bStopParsing);
pDataSizebStopParsingTRUE if you don't need USBMC to parse this buffer any more. That means that USBMC will not call methods like OnPacketUp, OnPacketDown, OnUrb, OnGetDescriptorFromDevice, OnGetDescriptorFromEndpoint for all packets that are contained in buffer. That could be used for optimization if you manually parse this buffer.Called by the control to process the monitored events at the lowest possible level.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnAbortPipe(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned __int64 PipeHandle);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.PipeHandleURB of type URB_FUNCTION_SELECT_CONFIGURATION or when the client driver changes the settings for an interface with a URB of type URB_FUNCTION_SELECT_INTERFACE.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_ABORT_PIPE is received. See _URB_PIPE_REQUEST in MSDN for more details.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnBulkOrInterruptTransfer(FILETIME * fTime,
void * pData,
unsigned long Size,
void * Payload,
unsigned long PayloadSize);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.PayloadPayloadSizeFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER is received. See _URB_BULK_OR_INTERRUPT_TRANSFER for more details.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClassDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLASS_DEVICE is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClassEndpoint(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueIndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLASS_ENDPOINT is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClassInterface(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value,
unsigned short Index);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueIndexFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLASS_INTERFACE is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClassOther(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned char RequestTypeReservedBits,
unsigned char Request,
unsigned short Value);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.RequestTypeReservedBitsRequestValueFired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLASS_OTHER is received. See _URB_CONTROL_VENDOR_OR_CLASS_REQUEST in MSDN for more details. The library decodes several parameters from this packet.
// This method is not available in scripting environment
// This method is not available in managed environment
HRESULT OnClearFeatureToDevice(FILETIME * fTime,
void * pData,
unsigned long Size,
unsigned short FeatureSelector);
fTimepDataUSBPACKET. Use it to manually parse all fields. See MFCSample for more details.SizeUSBPACKET and all payload data.FeatureSelectorFeatureSelector member to the wValue field of the setup packet.Fired when URB packet with urb.UrbHeader.Function == URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE is received. See _URB_CONTROL_FEATURE_REQUEST in MSDN for more details. The library decodes several parameters from this packet.