USBMon.h revision 59190ecd61435d19ba3515b876272aee7bd12298
#ifndef __USBFilter_h__
#define __USBFilter_h__
/*******************************************************************************
* Header Files *
*******************************************************************************/
#endif
#endif
#include <initguid.h>
#include <wdm.h>
#include <wmilib.h>
#include <wmistr.h>
# pragma warning(default : 4163)
#endif
# pragma warning(default : 4163)
#endif
extern "C" {
/* from ntddk.h */
);
}
#ifdef DEBUG
#define TRAP() DbgBreakPoint()
#else
#define DebugPrint(_x_)
#define TRAP()
#endif
#ifndef STATUS_CONTINUE_COMPLETION
#endif
#define POOL_TAG 'VBox'
typedef struct _DEVICE_EXTENSION
{
//
// Removelock to track IRPs so that device can be removed and
// the driver can be unloaded safely.
//
/* Number of times the device was opened. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef DEBUG
);
#else
#define DebugPrintUnicodeString(x)
#endif
);
);
);
/**
* Unload the driver.
*
* @param pDrvObj Driver object.
*/
/**
* Driver entry point.
*
* @returns appropriate status code.
* @param pDrvObj Pointer to driver object.
* @param pRegPath Registry base path.
*/
/**
* Device I/O Control entry point.
*
* @param pDevObj Device object.
* @param pIrp Request packet.
*/
/**
* Pass on or refuse entry point
*
* @param pDevObj Device object.
* @param pIrp Request packet.
*/
/**
* Create (i.e. Open) file entry point.
*
* @param pDevObj Device object.
* @param pIrp Request packet.
*/
/**
* Close file entry point.
*
* @param pDevObj Device object.
* @param pIrp Request packet.
*/
/**
* Device PnP hook
*
* @param pDevObj Device object.
* @param pIrp Request packet.
*/
/**
* Send IRP_MN_QUERY_DEVICE_RELATIONS
*
* @returns NT Status
* @param pDevObj USB device pointer
* @param pFileObj Valid file object pointer
* @param pDevRelations Pointer to DEVICE_RELATIONS pointer (out)
*/
NTSTATUS VBoxUSBQueryBusRelations(PDEVICE_OBJECT pDevObj, PFILE_OBJECT pFileObj, PDEVICE_RELATIONS *pDevRelations);
/**
* Capture specified USB device
*
* @returns NT status code
* @param usVendorId Vendor id
* @param usProductId Product id
* @param usRevision Revision
*/
/**
* Capture specified USB device
*
* @returns NT status code
* @param usVendorId Vendor id
* @param usProductId Product id
* @param usRevision Revision
*/
void VBoxUSBSignalChange();
#ifdef __cplusplus
}
#endif
#endif /* __USBFilter_h__ */