OUT IRP* const p_irp )\r
{\r
WCHAR *p_string;\r
-\r
+ bus_port_ext_t *p_ext;\r
+ \r
BUS_ENTER( BUS_DBG_PNP );\r
\r
- UNUSED_PARAM( p_dev_obj );\r
+ \r
+ p_ext = (bus_port_ext_t*)p_dev_obj->DeviceExtension;\r
+ if( !p_ext->pdo.b_present )\r
+ {\r
+ BUS_TRACE_EXIT( BUS_DBG_ERROR, ("Device not present.\n") );\r
+ return STATUS_NO_SUCH_DEVICE;\r
+ }\r
\r
/* Device ID is "IBA\SID_<sid> where <sid> is the IPoIB Service ID. */\r
p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_DEVICE_ID) );\r
OUT IRP* const p_irp )\r
{\r
WCHAR *p_string;\r
+ bus_port_ext_t *p_ext;\r
\r
BUS_ENTER( BUS_DBG_PNP );\r
\r
- UNUSED_PARAM( p_dev_obj );\r
+\r
+ p_ext = (bus_port_ext_t*)p_dev_obj->DeviceExtension;\r
+ if( !p_ext->pdo.b_present )\r
+ {\r
+ BUS_TRACE_EXIT( BUS_DBG_ERROR, ("Device not present.\n") );\r
+ return STATUS_NO_SUCH_DEVICE;\r
+ }\r
\r
p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_HARDWARE_ID) );\r
if( !p_string )\r
\r
p_ext = p_dev_obj->DeviceExtension;\r
\r
+ if( !p_ext->pdo.b_present )\r
+ {\r
+ BUS_TRACE_EXIT( BUS_DBG_ERROR, ("Device not present.\n") );\r
+ return STATUS_NO_SUCH_DEVICE;\r
+ }\r
+\r
/* The instance ID is the port GUID. */\r
p_string = ExAllocatePool( PagedPool, sizeof(WCHAR) * 17 );\r
if( !p_string )\r
OUT IRP* const p_irp )\r
{\r
WCHAR *p_string;\r
-\r
+ bus_port_ext_t *p_ext;\r
+ \r
BUS_ENTER( BUS_DBG_PNP );\r
\r
- UNUSED_PARAM( p_dev_obj );\r
+ p_ext = p_dev_obj->DeviceExtension;\r
+ if( !p_ext->pdo.b_present )\r
+ {\r
+ BUS_TRACE_EXIT( BUS_DBG_ERROR, ("Device not present.\n") );\r
+ return STATUS_NO_SUCH_DEVICE;\r
+ }\r
+\r
\r
/* The instance ID is the port GUID. */\r
p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_DESCRIPTION) );\r
&GUID_BUS_INTERFACE_STANDARD ) )\r
{\r
p_ext = p_dev_obj->DeviceExtension;\r
+ if( !p_ext->h_ca ||\r
+ !p_ext->b_present ||\r
+ p_ext->b_reported_missing )\r
+ {\r
+ return STATUS_NO_SUCH_DEVICE;\r
+ }\r
+\r
status = cl_fwd_query_ifc(\r
p_ext->h_ca->obj.p_ci_ca->verbs.p_hca_dev, p_io_stack );\r
}\r