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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
member to the wValue field of the setup packet.nIndex
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
member to the wValue
field of the setup packet.nIndex
wIndex
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
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);
fTime
bConnected
TRUE
if device is connected and FALSE
if device is disconnected.DeviceName
Called 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.SetupPacket
SetupPacketSize
Fired 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);
fTime
Data
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
/USB_CONFIGURATION_DESCRIPTOR_TYPE
/USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
/USB_CONFIGURATION_DESCRIPTOR_TYPE
/USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
/USB_CONFIGURATION_DESCRIPTOR_TYPE
/USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FrameLength
FrameNumber
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Interface
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.nTransferFlags
USBD_TRANSFER_DIRECTION_IN
, USBD_SHORT_TRANSFER_OK
, USBD_START_ISO_TRANSFER_ASAP
.StartFrame
USBD_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.NumberOfPackets
IsoPacket
.ErrorCount
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.bStopParsing
TRUE
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.bStopParsing
TRUE
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);
fTime
Called 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);
fTime
Called 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);
fTime
Called 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Interface
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.PipeHandle
URB
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.InterfaceNumber
AlternateSetting
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
, USB_CONFIGURATION_DESCRIPTOR_TYPE
, USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
, USB_CONFIGURATION_DESCRIPTOR_TYPE
, USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Index
DescriptorType
USB_DEVICE_DESCRIPTOR_TYPE
, USB_CONFIGURATION_DESCRIPTOR_TYPE
, USB_STRING_DESCRIPTOR_TYPE
.LanguageId
USB_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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
member to the wValue
field of the setup packet.Index
Index
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
member to the wValue
field of the setup packet.Index
Index
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FrameLengthDelta
URB
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Interface
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.bStopParsing
TRUE
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Fired 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);
pData
Size
bStopParsing
TRUE
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.PipeHandle
URB
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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.Payload
PayloadSize
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Index
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.RequestTypeReservedBits
Request
Value
Fired 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);
fTime
pData
USBPACKET
. Use it to manually parse all fields. See MFCSample for more details.Size
USBPACKET
and all payload data.FeatureSelector
FeatureSelector
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.