#endif\r
#include <ntstrsafe.h>\r
\r
+extern uint32_t g_iou_dbg_level;\r
+extern uint32_t g_iou_dbg_flags;\r
+\r
+#if defined(EVENT_TRACING)\r
+//\r
+// Software Tracing Definitions \r
+//\r
+\r
+#define WPP_CONTROL_GUIDS \\r
+ WPP_DEFINE_CONTROL_GUID(IOUCtlGuid,(A0090FEF,01BB,4617,AF1E,FD02FD5B24ED), \\r
+ WPP_DEFINE_BIT( IOU_DBG_ERROR) \\r
+ WPP_DEFINE_BIT( IOU_DBG_DRV) \\r
+ WPP_DEFINE_BIT( IOU_DBG_PNP) \\r
+ WPP_DEFINE_BIT( IOU_DBG_POWER) \\r
+ WPP_DEFINE_BIT( IOU_DBG_PORT) \\r
+ WPP_DEFINE_BIT( IOU_DBG_IOU))\r
+\r
+\r
+\r
+#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)\r
+#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)\r
+#define WPP_FLAG_ENABLED(flags)(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= TRACE_LEVEL_VERBOSE)\r
+#define WPP_FLAG_LOGGER(flags) WPP_LEVEL_LOGGER(flags)\r
+\r
+\r
+// begin_wpp config\r
+// IOU_ENTER(FLAG);\r
+// IOU_EXIT(FLAG);\r
+// USEPREFIX(IOU_PRINT, "%!STDPREFIX! [IOU] :%!FUNC!() :");\r
+// USESUFFIX(IOU_ENTER, " [IOU] :%!FUNC!():[");\r
+// USESUFFIX(IOU_EXIT, " [IOU] :%!FUNC!():]");\r
+// end_wpp\r
+\r
+\r
+#else\r
+\r
+\r
+#include <evntrace.h>\r
\r
/*\r
- * Main header for IB Bus driver.\r
+ * Debug macros\r
*/\r
\r
-#define IOU_ENTER( lvl ) \\r
- CL_ENTER( lvl, iou_globals.dbg_lvl )\r
\r
-#define IOU_EXIT( lvl ) \\r
- CL_EXIT( lvl, iou_globals.dbg_lvl )\r
+#define IOU_DBG_ERR (1 << 0)\r
+#define IOU_DBG_DRV (1 << 1)\r
+#define IOU_DBG_PNP (1 << 2)\r
+#define IOU_DBG_POWER (1 << 3)\r
+#define IOU_DBG_PORT (1 << 4)\r
+#define IOU_DBG_IOU (1 << 5)\r
+\r
+#define IOU_DBG_ERROR (CL_DBG_ERROR | IOU_DBG_ERR)\r
+#define IOU_DBG_ALL CL_DBG_ALL\r
+\r
+#if DBG\r
+\r
+// assignment of _level_ is need to to overcome warning C4127\r
+#define IOU_PRINT(_level_,_flag_,_msg_) \\r
+ { \\r
+ if( g_iou_dbg_level >= (_level_) ) \\r
+ CL_TRACE( _flag_, g_iou_dbg_flags, _msg_ ); \\r
+ }\r
+\r
+#define IOU_PRINT_EXIT(_level_,_flag_,_msg_) \\r
+ { \\r
+ if( g_iou_dbg_level >= (_level_) ) \\r
+ CL_TRACE( _flag_, g_iou_dbg_flags, _msg_ );\\r
+ IOU_EXIT(_flag_);\\r
+ }\r
\r
-#define IOU_TRACE( lvl, msg ) \\r
- CL_TRACE( lvl, iou_globals.dbg_lvl, msg )\r
+#define IOU_ENTER(_flag_) \\r
+ { \\r
+ if( g_iou_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
+ CL_ENTER( _flag_, g_iou_dbg_flags ); \\r
+ }\r
\r
-#define IOU_TRACE_EXIT( lvl, msg ) \\r
- CL_TRACE_EXIT( lvl, iou_globals.dbg_lvl, msg )\r
+#define IOU_EXIT(_flag_)\\r
+ { \\r
+ if( g_iou_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
+ CL_EXIT( _flag_, g_iou_dbg_flags ); \\r
+ }\r
+\r
+\r
+#else\r
+\r
+#define IOU_PRINT(lvl, flags, msg)\r
+\r
+#define IOU_PRINT_EXIT(_level_,_flag_,_msg_)\r
+\r
+#define IOU_ENTER(_flag_)\r
+\r
+#define IOU_EXIT(_flag_)\r
+\r
+\r
+#endif\r
+\r
+\r
+#endif //EVENT_TRACING\r
+\r
+/*\r
+ * Main header for IB Bus driver.\r
+ */\r
\r
-#define IOU_PRINT( lvl, msg ) \\r
- CL_PRINT( lvl, iou_globals.dbl_lvl, msg )\r
\r
-#define IOU_DBG_ERROR CL_DBG_ERROR\r
-#define IOU_DBG_DRV (1 << 0)\r
-#define IOU_DBG_PNP (1 << 1)\r
-#define IOU_DBG_POWER (1 << 2)\r
-#define IOU_DBG_PORT (1 << 3)\r
-#define IOU_DBG_IOU (1 << 4)\r
\r
/*\r
* ALLOC_PRAGMA sections:\r
*/\r
typedef struct _iou_globals\r
{\r
- /* Debug level. */\r
- uint32_t dbg_lvl;\r
-\r
/* Driver object. Used for creating child devices. */\r
DRIVER_OBJECT *p_driver_obj;\r
\r
#include <iba/ib_types.h>\r
#include <complib/cl_async_proc.h>\r
#include <complib/cl_bus_ifc.h>\r
+#include "iou_driver.h"\r
+#if defined(EVENT_TRACING)\r
+#ifdef offsetof\r
+#undef offsetof\r
+#endif\r
+#include "iou_ioc_mgr.tmh"\r
+#endif\r
#include "iou_pnp.h"\r
#include "iou_ioc_mgr.h"\r
#include <initguid.h>\r
if( cl_status != CL_SUCCESS )\r
{\r
free_ioc_mgr( &p_ioc_mgr->obj );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("cl_mutex_init returned %s.\n", cl_status_text[cl_status]) );\r
return IB_ERROR;\r
}\r
if( cl_status != CL_SUCCESS )\r
{\r
free_ioc_mgr( &p_ioc_mgr->obj );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("cl_obj_init returned %s.\n", cl_status_text[cl_status]) );\r
return IB_ERROR;\r
}\r
if( status != IB_SUCCESS )\r
{\r
cl_obj_destroy( &p_ioc_mgr->obj );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("ib_reg_pnp returned %s.\n",\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("ib_reg_pnp returned %s.\n",\r
p_ioc_mgr->ifc.get_err_str(status)) );\r
return status;\r
}\r
if( status != IB_SUCCESS )\r
{\r
cl_obj_destroy( &p_ioc_mgr->obj );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("ib_reg_pnp returned %s.\n",\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("ib_reg_pnp returned %s.\n",\r
p_ioc_mgr->ifc.get_err_str(status)) );\r
return status;\r
}\r
if( !n_devs )\r
{\r
cl_mutex_release( &p_ioc_mgr->pdo_mutex );\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("No child PDOs.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("No child PDOs.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
if( !NT_SUCCESS( status ) )\r
{\r
cl_mutex_release( &p_ioc_mgr->pdo_mutex );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("cl_alloc_relations returned %08x.\n", status) );\r
return status;\r
}\r
p_pnp_rec->info.chassis_slot != p_ioc_mgr->info.slot||\r
p_pnp_rec->info.iou_guid != p_ioc_mgr->info.guid )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("IOC not in this IOU.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("IOC not in this IOU.\n") );\r
return IB_NOT_DONE;\r
}\r
\r
FALSE, &p_pdo );\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("IoCreateDevice returned %08x.\n", status) );\r
return IB_ERROR;\r
}\r
\r
/* Initialize the device extension. */\r
- cl_init_pnp_po_ext( p_pdo, NULL, p_pdo, iou_globals.dbg_lvl,\r
+ cl_init_pnp_po_ext( p_pdo, NULL, p_pdo, g_iou_dbg_flags,\r
&vfptr_ioc_pnp, &vfptr_iou_query_txt );\r
\r
/* Set the DO_BUS_ENUMERATED_DEVICE flag to mark it as a PDO. */\r
\r
/* Remove this PDO from its list. */\r
cl_mutex_acquire( &p_ioc_mgr->pdo_mutex );\r
- IOU_TRACE( IOU_DBG_PNP, ("Removing IOC from list.\n") );\r
+ IOU_PRINT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("Removing IOC from list.\n") );\r
cl_qlist_remove_item( &p_ioc_mgr->ioc_list, &p_ext->pdo.list_item );\r
cl_mutex_release( &p_ioc_mgr->pdo_mutex );\r
po_state.DeviceState = PowerDeviceD3;\r
cl_set_pnp_state( &p_ext->pdo.cl_ext, NotStarted );\r
/* Don't delete the device. It may simply be disabled. */\r
*p_action = IrpComplete;\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("Device still present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("Device still present.\n") );\r
return STATUS_SUCCESS;\r
}\r
\r
/* Reset the state to RemovePending. Complib set it to Deleted. */\r
cl_rollback_pnp_state( &p_ext->pdo.cl_ext );\r
*p_action = IrpComplete;\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("Device not reported missing yet.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("Device not reported missing yet.\n") );\r
return STATUS_SUCCESS;\r
}\r
\r
status = cl_alloc_relations( p_irp, 1 );\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("cl_alloc_relations returned 0x%08x.\n", status) );\r
return status;\r
}\r
p_ext = (ioc_ext_t*)p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_string = ExAllocatePool( PagedPool, IOC_DEV_ID_SIZE );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate device ID buffer (%d bytes).\n",\r
IOC_DEV_ID_SIZE) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format device ID string.\n") );\r
return status;\r
}\r
p_ext = (ioc_ext_t*)p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_string = ExAllocatePool( PagedPool, IOC_HW_ID_SIZE );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate hardware ID buffer (%d bytes).\n",\r
IOC_HW_ID_SIZE) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format hardware ID string.\n") );\r
return status;\r
}\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format hardware ID string.\n") );\r
return status;\r
}\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format hardware ID string.\n") );\r
return status;\r
}\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format hardware ID string.\n") );\r
return status;\r
}\r
p_ext = (ioc_ext_t*)p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_string = ExAllocatePool( PagedPool, IOC_COMPAT_ID_SIZE );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate compatible ID buffer (%d bytes).\n",\r
IOC_HW_ID_SIZE) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format device ID string.\n") );\r
return status;\r
}\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format device ID string.\n") );\r
return status;\r
}\r
p_ext = p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_string = ExAllocatePool( PagedPool, sizeof(WCHAR) * 17 );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate instance ID buffer (%d bytes).\n",\r
sizeof(WCHAR) * 17) );\r
return STATUS_NO_MEMORY;\r
{\r
CL_ASSERT( NT_SUCCESS( status ) );\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("RtlStringCchPrintfW returned %08x.\n", status) );\r
return status;\r
}\r
p_ext = p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
PagedPool, sizeof(WCHAR) * sizeof(p_ext->info.profile.id_string) );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate device description buffer (%d bytes).\n",\r
sizeof(WCHAR) * sizeof(p_ext->info.profile.id_string)) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
{\r
CL_ASSERT( NT_SUCCESS( status ) );\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("RtlStringCchPrintfW returned %08x.\n", status) );\r
return status;\r
}\r
p_ext = (ioc_ext_t*)p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_string = ExAllocatePool( PagedPool, IOC_LOCATION_SIZE );\r
if( !p_string )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate location buffer (%d bytes).\n",\r
IOC_LOCATION_SIZE) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
if( !NT_SUCCESS( status ) )\r
{\r
ExFreePool( p_string );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to format device ID string.\n") );\r
return status;\r
}\r
p_ext = (ioc_ext_t*)p_dev_obj->DeviceExtension;\r
if( !p_ext->pdo.b_present )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Device not present.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Device not present.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
p_iou_info = ExAllocatePool( PagedPool, sizeof(PNP_BUS_INFORMATION) );\r
if( !p_iou_info )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to allocate PNP_BUS_INFORMATION (%d bytes).\n",\r
sizeof(PNP_BUS_INFORMATION)) );\r
return STATUS_INSUFFICIENT_RESOURCES;\r
/* Compare requested GUID with our supported interface GUIDs. */\r
if( IsEqualGUID( p_guid, &GUID_BUS_INTERFACE_STANDARD ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("BUS_INTERFACE_STANDARD\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("BUS_INTERFACE_STANDARD\n") );\r
return cl_fwd_query_ifc(\r
p_ext->pdo.p_parent_ext->cl_ext.p_self_do, p_io_stack );\r
}\r
\r
if( !IsEqualGUID( p_guid, &GUID_IB_AL_INTERFACE ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_PNP, ("Unsupported interface: \n\t"\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
+ ("Unsupported interface: \n\t"\r
"0x%08x, 0x%04x, 0x%04x, 0x%02x, 0x%02x, 0x%02x,"\r
"0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x.\n",\r
p_guid->Data1, p_guid->Data2, p_guid->Data3,\r
p_ext->pdo.p_parent_ext->cl_ext.p_self_do, p_io_stack );\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to forward interface query: %08X\n", status) );\r
return status;\r
}\r
\r
if( !p_io_stack->Parameters.QueryInterface.InterfaceSpecificData )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("No interface specific data!\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("No interface specific data!\n") );\r
return status;\r
}\r
\r
p_ifc_data->version != IOC_INTERFACE_DATA_VERSION )\r
{\r
p_ifc->wdm.InterfaceDereference( p_ifc->wdm.Context );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("Unsupported interface data: \n\t"\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("Unsupported interface data: \n\t"\r
"0x%08x, 0x%04x, 0x%04x, 0x%02x, 0x%02x, 0x%02x,"\r
"0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x.\n",\r
p_guid->Data1, p_guid->Data2, p_guid->Data3,\r
if( p_ifc_data->size != sizeof(ioc_ifc_data_t) )\r
{\r
p_ifc->wdm.InterfaceDereference( p_ifc->wdm.Context );\r
- IOU_TRACE_EXIT( IOU_DBG_PNP,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IOU_DBG_PNP,\r
("Buffer too small (%d given, %d required).\n",\r
p_ifc_data->size,\r
sizeof(ioc_ifc_data_t)) );\r
*/\r
\r
\r
+#include "iou_driver.h"\r
+#if defined(EVENT_TRACING)\r
+#ifdef offsetof\r
+#undef offsetof\r
+#endif\r
+#include "iou_pnp.tmh"\r
+#endif\r
#include "iou_pnp.h"\r
#include "iou_ioc_mgr.h"\r
#include <complib/cl_memory.h>\r
FILE_DEVICE_SECURE_OPEN, FALSE, &p_dev_obj );\r
if( !NT_SUCCESS(status) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, \r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to create bus root FDO device.\n") );\r
return status;\r
}\r
if( !p_next_do )\r
{\r
IoDeleteDevice( p_dev_obj );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("IoAttachToDeviceStack failed.\n") );\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("IoAttachToDeviceStack failed.\n") );\r
return STATUS_NO_SUCH_DEVICE;\r
}\r
\r
- cl_init_pnp_po_ext( p_dev_obj, p_next_do, p_pdo, iou_globals.dbg_lvl,\r
+ cl_init_pnp_po_ext( p_dev_obj, p_next_do, p_pdo, g_iou_dbg_flags,\r
&vfptr_fdo_pnp, NULL );\r
\r
IOU_EXIT( IOU_DBG_PNP );\r
status = cl_do_sync_pnp( p_dev_obj, p_irp, p_action );\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, \r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Lower drivers failed IRP_MN_START_DEVICE.\n") );\r
return status;\r
}\r
status = __get_iou_ifc( p_ext );\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR,\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("Failed to get IOU interface.\n") );\r
return status;\r
}\r
ib_status = ioc_mgr_init( &p_ext->ioc_mgr );\r
if( ib_status != IB_SUCCESS )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, ("ioc_mgr_init returned %s.\n",\r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
+ ("ioc_mgr_init returned %s.\n",\r
p_ext->ioc_mgr.ifc.get_err_str(ib_status)) );\r
return STATUS_UNSUCCESSFUL;\r
}\r
\r
if( !NT_SUCCESS( status ) )\r
{\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, \r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("cl_do_sync_pnp returned %08x.\n", status) );\r
return status;\r
}\r
{\r
PoStartNextPowerIrp( p_irp );\r
IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, p_irp );\r
- IOU_TRACE_EXIT( IOU_DBG_ERROR, \r
+ IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("IRP_MN_SET_POWER for system failed by lower driver with %08x.\n",\r
p_irp->IoStatus.Status) );\r
return STATUS_SUCCESS;\r
p_irp->IoStatus.Status = status;\r
IoCompleteRequest( p_irp, IO_NO_INCREMENT );\r
IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, p_irp );\r
- IOU_TRACE( IOU_DBG_ERROR,\r
+ IOU_PRINT( TRACE_LEVEL_ERROR, IOU_DBG_ERROR,\r
("PoRequestPowerIrp returned %08x.\n", status) );\r
}\r
\r