<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY><!-- Converted from text/plain format --><FONT size=2>
<P><FONT face=Arial>To remind: i'm running 'pnpdtest Rebalance(FailRestart)' 
test over IPoIB.</FONT></P>
<P><FONT face=Arial>[pnpddtest is taken from 6001.18001 DDK, v. 3.4.0.0, 
created 01/19/2008]</FONT></P>
<P><FONT face=Arial></FONT><BR>The test fails with 'Device node status not as 
expected: problem code 0' yet on the preliminary (QUERY_STOP) phase.<BR>I've run 
it with WinDbg, while stopping at the beginning of each IRP and printing the 
relative device nodes.<BR>The test reports an error after CANCEL_STOP_DEVICE 
IRP, while device node changes from <BR>  State = DeviceNodeQueryStopped 
(0x309)<BR><STRONG>  Previous State = DeviceNodeStarted (0x308)<BR>  
StateHistory[01] = DeviceNodeStarted (0x308)<BR></STRONG>to    
<BR>  State = DeviceNodeStarted (0x308)<BR><STRONG>  <FONT 
color=#ff0000>Previous State = DeviceNodeStarted 
(0x308)<BR></FONT>  StateHistory[02] = DeviceNodeQueryStopped 
(0x309)<BR></STRONG>  StateHistory[01] = DeviceNodeStarted (0x308)</P>
<P>I would expect     <BR>  <STRONG> <FONT 
color=#0000ff>Previous State = DeviceNodeQueryStopped 
(0x309)</FONT></STRONG></P>
<P><STRONG>Is that what causes the test failure ?</STRONG></P>
<P><STRONG>Why does it happen ?</STRONG> (I complete CANCEL_STOP_DEVICE with 
SUCCESS)</P>
<P>Here is the trace.</P>
<P>//<BR>// here is the previous IRP sequence (important ones are marked with 
***)<BR>//<BR>IRP_MN_QUERY_PNP_DEVICE_STATE for IPoIB - 
0<BR>IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB - 
0xc00000bb<BR>IRP_MN_QUERY_PNP_DEVICE_STATE for IPoIB - 0</P>
<P>IRP_MN_QUERY_STOP_DEVICE for IB Bus - 0x103 
<BR>IRP_MN_CANCEL_STOP_DEVICE for IB Bus - 0</P>
<P><STRONG>*** IRP_MN_QUERY_STOP_DEVICE for IPoIB - 
0</STRONG><BR>IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB - 
0xc00000bb<BR>IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB - 
0<BR>IRP_MN_QUERY_INTERFACE for IPoIB - 0xc00000bb</P>
<P>IRP_MN_QUERY_INTERFACE for IB Bus - 0xc00000bb<BR>IRP_MN_QUERY_INTERFACE for 
IB Bus - 0xc00000bb<BR><STRONG>*** IRP_MN_QUERY_STOP_DEVICE for IB Bus - 
0x103</STRONG></P>
<P>IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB - 
0xc00000bb<BR>IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB - 0</P>
<P>IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IB Bus - 
0<BR>IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IB Bus - 0</P>
<P>//<BR>// Comes IRP_MN_CANCEL_STOP_DEVICE for IPoIB (not completed 
yet)<BR>//<BR>PNPFILTR: Received IRP_MN_CANCEL_STOP_DEVICE for stack with PDO 
0xFFFFFADF315C1840<BR>cl_pnp() [<BR>cl_pnp(): PDO FFFFFADF315C1840, ext 
FFFFFADF315C1990<BR>cl_pnp(): IRP_MN_CANCEL_STOP_DEVICE for IPoIB</P>
<P>// <BR>// Here is IPoIB's node at this moment (looks OK)<BR>//</P>
<P>2: kd> !DevNode fffffadf31481360<BR>DevNode 0xfffffadf31481360 for PDO 
0xfffffadf315c1840<BR>  Parent 0xfffffadf31943e40   Sibling 
0xfffffadf31c5b5c0   Child 0000000000<BR>  InstancePath is 
"IBA\IPoIB\c181250002c90200ffff"<BR>  ServiceName is "ipoib"<BR>  
State = DeviceNodeQueryStopped (0x309)<BR>  Previous State = 
DeviceNodeStarted (0x308)<BR>  StateHistory[01] = DeviceNodeStarted 
(0x308)<BR>  StateHistory[00] = DeviceNodeEnumerateCompletion 
(0x30d)<BR>  StateHistory[19] = DeviceNodeStarted (0x308)<BR>  
StateHistory[18] = DeviceNodeStartPostWork (0x307)<BR>  StateHistory[17] = 
DeviceNodeStartCompletion (0x306)<BR>  StateHistory[16] = 
DeviceNodeResourcesAssigned (0x304)<BR>  StateHistory[15] = 
DeviceNodeDriversAdded (0x303)<BR>  StateHistory[14] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[13] = 
DeviceNodeUninitialized (0x301)<BR>  StateHistory[12] = DeviceNodeRemoved 
(0x312)<BR>  StateHistory[11] = DeviceNodeQueryRemoved (0x310)<BR>  
StateHistory[10] = DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  
StateHistory[02] = DeviceNodeDriversAdded (0x303)<BR>  Flags 
(0x00000430)  DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_RESOURCE_REQUIREMENTS_CHANGED<BR>  CapabilityFlags (0x000000c0)  
UniqueID, SilentInstall</P>
<P>// <BR>// Here is MLX4_HCA's node at this moment (looks OK)<BR>//</P>
<P>2: kd> !DevNode fffffadf31943e40<BR>DevNode 0xfffffadf31943e40 for PDO 
0xfffffadf314ece40<BR>  Parent 0xfffffadf386dbe40   Sibling 
0000000000   Child 0xfffffadf31481360<BR>  InstancePath is 
"MLX4\ConnectX_Hca\5&2814ebde&0&00"<BR>  ServiceName is 
"mlx4_hca"<BR>  TargetDeviceNotify List - f 0xfffffa8011960260  b 
0xfffffa8011960260<BR>  State = DeviceNodeQueryStopped (0x309)<BR>  
Previous State = DeviceNodeStarted (0x308)<BR>  StateHistory[18] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[17] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[16] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[15] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[14] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[13] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[12] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[11] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[10] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  
StateHistory[02] = DeviceNodeDriversAdded (0x303)<BR>  StateHistory[01] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[00] = 
DeviceNodeUninitialized (0x301)<BR>  StateHistory[19] = Unknown State 
(0x0)<BR>  Flags (0x00000130)  DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_NO_RESOURCE_REQUIRED</P>
<P>//<BR>// Here comes the next IRP, IRP_MN_CANCEL_STOP_DEVICE for IB Bus<BR>// 
The previous one i've completed OK  - see the next line<BR>//</P>
<P>cl_pnp(): IrpComplete: complete IRP with status 0</P>
<P>PNPFILTR: FilterCompletionRoutine Completed, event set.<BR>cl_pnp(): returned 
with status 0<BR>cl_pnp() ]</P>
<P><FONT face=Arial color=#0000ff>// I don't know, what the following means 
-</FONT><FONT face=Arial color=#0000ff>maybe it designates some 
problem</FONT><BR>PNPFILTR: FilterCancelStop Setting TestCompleteEvent for stack 
with PDO 0xFFFFFADF315C1840<BR>PNPFILTR: FilterCancelStop returning 
0x0000000000000000 for stack with PDO 0xFFFFFADF315C1840<BR>PNPFILTR: Query 
Result Wait Satisfied...  8<BR>PNPFILTR: Number of IRPs Stored...  
8<BR>PNPFILTR: Query Result - Releasing the remove<BR>PNPFILTR: Query Result 
-Result Stored Event set <BR>cl_pnp() [<BR>cl_pnp(): PDO FFFFFADF35966B80, ext 
FFFFFADF35966CD0<BR>cl_pnp(): IRP_MN_CANCEL_STOP_DEVICE for IB Bus</P>
<P>// <BR>// Here is IPoIB's node at this moment<BR>// <STRONG><FONT 
color=#ff0000>The field 'Previous State' looks very strange. It should be 
DeviceNodeQueryStopped to my mind.<BR></FONT></STRONG>//</P>
<P>2: kd> !DevNode fffffadf31481360<BR>DevNode 0xfffffadf31481360 for PDO 
0xfffffadf315c1840<BR>  Parent 0xfffffadf31943e40   Sibling 
0xfffffadf31c5b5c0   Child 0000000000<BR>  InstancePath is 
"IBA\IPoIB\c181250002c90200ffff"<BR>  ServiceName is "ipoib"<BR>  
State = DeviceNodeStarted (0x308)<BR><STRONG><FONT color=#ff0000>  Previous 
State = DeviceNodeStarted (0x308)<BR></FONT></STRONG>  StateHistory[02] = 
DeviceNodeQueryStopped (0x309)<BR>  StateHistory[01] = DeviceNodeStarted 
(0x308)<BR>  StateHistory[00] = DeviceNodeEnumerateCompletion 
(0x30d)<BR>  StateHistory[19] = DeviceNodeStarted (0x308)<BR>  
StateHistory[18] = DeviceNodeStartPostWork (0x307)<BR>  StateHistory[17] = 
DeviceNodeStartCompletion (0x306)<BR>  StateHistory[16] = 
DeviceNodeResourcesAssigned (0x304)<BR>  StateHistory[15] = 
DeviceNodeDriversAdded (0x303)<BR>  StateHistory[14] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[13] = 
DeviceNodeUninitialized (0x301)<BR>  StateHistory[12] = DeviceNodeRemoved 
(0x312)<BR>  StateHistory[11] = DeviceNodeQueryRemoved (0x310)<BR>  
StateHistory[10] = DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  Flags 
(0x00000430)  DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_RESOURCE_REQUIREMENTS_CHANGED<BR>  CapabilityFlags (0x000000c0)  
UniqueID, SilentInstall</P>
<P>// <BR>// Here is MLX4_HCA's node at this moment - it looks OK<BR>// (We are 
standing in 'IRP_MN_CANCEL_STOP_DEVICE for IB Bus'<BR>// It is not completed 
yet)<BR>//</P>
<P>2: kd> !DevNode fffffadf31943e40<BR>DevNode 0xfffffadf31943e40 for PDO 
0xfffffadf314ece40<BR>  Parent 0xfffffadf386dbe40   Sibling 
0000000000   Child 0xfffffadf31481360<BR>  InstancePath is 
"MLX4\ConnectX_Hca\5&2814ebde&0&00"<BR>  ServiceName is 
"mlx4_hca"<BR>  TargetDeviceNotify List - f 0xfffffa8011960260  b 
0xfffffa8011960260<BR>  State = DeviceNodeQueryStopped (0x309)<BR>  
Previous State = DeviceNodeStarted (0x308)<BR>  StateHistory[18] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[17] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[16] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[15] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[14] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[13] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[12] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[11] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[10] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  
StateHistory[02] = DeviceNodeDriversAdded (0x303)<BR>  StateHistory[01] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[00] = 
DeviceNodeUninitialized (0x301)<BR>  StateHistory[19] = Unknown State 
(0x0)<BR>  Flags (0x00000130)  DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_NO_RESOURCE_REQUIRED</P>
<P>//<BR>// I make 'go' and get the following before getting more IRPs - because 
the test throws a window<BR>// with 'Device node status not as expected: problem 
code 0' text.<BR>// (the next line is completion of 'IRP_MN_CANCEL_STOP_DEVICE 
for IB Bus')<BR>// </P>
<P>cl_pnp(): IrpComplete: complete IRP with status 0<BR>cl_pnp(): returned with 
status 0<BR>cl_pnp() ]<BR>Relevant Sequence of 
Irps:<BR>IRP_MN_QUERY_PNP_DEVICE_STATE<BR>IRP_MN_QUERY_STOP_DEVICE<BR>IRP_MN_QUERY_RESOURCE_REQUIREMENTS<BR>IRP_MN_FILTER_RESOURCE_REQUIREMENTS<BR>IRP_MN_QUERY_INTERFACE<BR>IRP_MN_QUERY_RESOURCE_REQUIREMENTS<BR>IRP_MN_FILTER_RESOURCE_REQUIREMENTS<BR>IRP_MN_CANCEL_STOP_DEVICE<BR>Assert: 
Device node status not as expected: problem code 
0<BR> File=e:\rtm_test\testsrc\basetest\pnp\pnpdtest\user\pnpdtest.c, 
Line=323</P>
<P><BR>//<BR>// Next IRP: IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB<BR>//</P>
<P>UnInstalling the filter driver from IBA\IPoIB\c181250002c90200ffff...</P>
<P>PNPFILTR: Received IRP_MN_QUERY_DEVICE_RELATIONS  which I am simply 
passing down<BR>cl_pnp() [<BR>cl_pnp(): PDO FFFFFADF315C1840, ext 
FFFFFADF315C1990<BR>cl_pnp(): IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB</P>
<P>//<BR>// Devnode of IPoIB is still strange<BR>//<BR>1: kd> !DevNode 
fffffadf31481360<BR>DevNode 0xfffffadf31481360 for PDO 
0xfffffadf315c1840<BR>  Parent 0xfffffadf31943e40   Sibling 
0xfffffadf31c5b5c0   Child 0000000000<BR>  InstancePath is 
"IBA\IPoIB\c181250002c90200ffff"<BR>  ServiceName is "ipoib"<BR>  
State = DeviceNodeStarted (0x308)<BR>  Previous State = DeviceNodeStarted 
(0x308)<BR>  StateHistory[02] = DeviceNodeQueryStopped (0x309)<BR>  
StateHistory[01] = DeviceNodeStarted (0x308)<BR>  StateHistory[00] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[19] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[18] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[17] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[16] = DeviceNodeResourcesAssigned (0x304)<BR>  
StateHistory[15] = DeviceNodeDriversAdded (0x303)<BR>  StateHistory[14] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[13] = 
DeviceNodeUninitialized (0x301)<BR>  StateHistory[12] = DeviceNodeRemoved 
(0x312)<BR>  StateHistory[11] = DeviceNodeQueryRemoved (0x310)<BR>  
StateHistory[10] = DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  Flags 
(0x00000430)  DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_RESOURCE_REQUIREMENTS_CHANGED<BR>  CapabilityFlags (0x000000c0)  
UniqueID, SilentInstall</P>
<P><BR>//<BR>// Devnode of MLX4_HCA is OK<BR>//</P>
<P>1: kd> !DevNode fffffadf31943e40<BR>DevNode 0xfffffadf31943e40 for PDO 
0xfffffadf314ece40<BR>  Parent 0xfffffadf386dbe40   Sibling 
0000000000   Child 0xfffffadf31481360<BR>  InstancePath is 
"MLX4\ConnectX_Hca\5&2814ebde&0&00"<BR>  ServiceName is 
"mlx4_hca"<BR>  TargetDeviceNotify List - f 0xfffffa8011960260  b 
0xfffffa8011960260<BR>  State = DeviceNodeStarted (0x308)<BR>  
Previous State = DeviceNodeStarted (0x308)<BR>  StateHistory[19] = 
DeviceNodeQueryStopped (0x309)<BR>  StateHistory[18] = DeviceNodeStarted 
(0x308)<BR>  StateHistory[17] = DeviceNodeEnumerateCompletion 
(0x30d)<BR>  StateHistory[16] = DeviceNodeStarted (0x308)<BR>  
StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)<BR>  
StateHistory[14] = DeviceNodeStarted (0x308)<BR>  StateHistory[13] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[12] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[11] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[10] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[09] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[08] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[07] = 
DeviceNodeEnumerateCompletion (0x30d)<BR>  StateHistory[06] = 
DeviceNodeStarted (0x308)<BR>  StateHistory[05] = DeviceNodeStartPostWork 
(0x307)<BR>  StateHistory[04] = DeviceNodeStartCompletion (0x306)<BR>  
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)<BR>  
StateHistory[02] = DeviceNodeDriversAdded (0x303)<BR>  StateHistory[01] = 
DeviceNodeInitialized (0x302)<BR>  StateHistory[00] = 
DeviceNodeUninitialized (0x301)<BR>  Flags (0x00000130)  
DNF_ENUMERATED, DNF_IDS_QUERIED, 
<BR>                      
DNF_NO_RESOURCE_REQUIRED</P>
<P>//<BR>// here are the structures<BR>//</P>
<P>// IPoIB's PDO<BR>2: kd> dt DEVICE_OBJECT 
0xfffffadf315c1840<BR>ipoib!DEVICE_OBJECT<BR>   +0x000 
Type             : 
3<BR>   +0x002 
Size             : 
0x308<BR>   +0x004 ReferenceCount   : 0<BR>   
+0x008 DriverObject     : 0xfffffadf`31c5ecb0 
_DRIVER_OBJECT<BR>   +0x010 
NextDevice       : 0xfffffadf`35966b80 
_DEVICE_OBJECT<BR>   +0x018 AttachedDevice   : 
0xfffffadf`31bfc090 _DEVICE_OBJECT<BR>   +0x020 
CurrentIrp       : (null) <BR>   +0x028 
Timer            : (null) 
<BR>   +0x030 
Flags            : 
0x3040<BR>   +0x034 Characteristics  : 0x180<BR>   
+0x038 
Vpb              
: (null) <BR>   +0x040 DeviceExtension  : 0xfffffadf`315c1990 
<BR>   +0x048 DeviceType       : 
4<BR>   +0x04c StackSize        : 1 
''<BR>   +0x050 
Queue            : 
<unnamed-tag><BR>   +0x098 AlignmentRequirement : 
0<BR>   +0x0a0 DeviceQueue      : 
_KDEVICE_QUEUE<BR>   +0x0c8 
Dpc              
: _KDPC<BR>   +0x108 ActiveThreadCount : 0<BR>   +0x110 
SecurityDescriptor : 0xfffffa80`0034e600 <BR>   +0x118 
DeviceLock       : _KEVENT<BR>   +0x130 
SectorSize       : 0<BR>   +0x132 
Spare1           : 
2<BR>   +0x138 DeviceObjectExtension : 0xfffffadf`315c1b48 
_DEVOBJ_EXTENSION<BR>   +0x140 
Reserved         : (null) </P>
<P>// It's devobj extension<BR>2: kd> dt 0xfffffadf`315c1b48 
_DEVOBJ_EXTENSION<BR>nt!_DEVOBJ_EXTENSION<BR>   +0x000 
Type             : 
13<BR>   +0x002 
Size             : 
0<BR>   +0x008 DeviceObject     : 
0xfffffadf`315c1840 _DEVICE_OBJECT<BR>   +0x010 
PowerFlags       : 0x10<BR>   +0x018 
Dope             : 
(null) <BR>   +0x020 ExtensionFlags   : 0<BR>   
+0x028 DeviceNode       : 0xfffffadf`31481360 
<BR>   +0x030 AttachedTo       : (null) 
<BR>   +0x038 StartIoCount     : 0<BR>   
+0x03c StartIoKey       : 0<BR>   +0x040 
StartIoFlags     : 0<BR>   +0x048 
Vpb              
: (null) </P>
<P>// It's node<BR>2: kd> dt 0xfffffadf`31481360 
_DEVICE_NODE<BR>nt!_DEVICE_NODE<BR>   +0x000 
Sibling          : 
0xfffffadf`31c5b5c0 _DEVICE_NODE<BR>   +0x008 
Child            : (null) 
<BR>   +0x010 
Parent           : 
0xfffffadf`31943e40 _DEVICE_NODE<BR>   +0x018 
LastChild        : (null) <BR>   
+0x020 Level            : 
7<BR>   +0x028 
Notify           : (null) 
<BR>   +0x030 
State            : 308 ( 
DeviceNodeStarted )<BR>   +0x034 PreviousState    : 308 
( DeviceNodeStarted )<BR>   +0x038 
StateHistory     : [20] 30d ( DeviceNodeEnumerateCompletion 
)<BR>   +0x088 StateHistoryEntry : 3<BR>   +0x08c 
CompletionStatus : -1073741637<BR>   +0x090 
PendingIrp       : (null) <BR>   +0x098 
Flags            : 
0x430<BR>   +0x09c UserFlags        
: 0<BR>   +0x0a0 
Problem          : 
0<BR>   +0x0a8 PhysicalDeviceObject : 0xfffffadf`315c1840 
_DEVICE_OBJECT<BR>   +0x0b0 ResourceList     : 
(null) <BR>   +0x0b8 ResourceListTranslated : (null) <BR>   
+0x0c0 InstancePath     : _UNICODE_STRING 
"IBA\IPoIB\c181250002c90200ffff"<BR>   +0x0d0 
ServiceName      : _UNICODE_STRING 
"ipoib"<BR>   +0x0e0 DuplicatePDO     : (null) 
<BR>   +0x0e8 ResourceRequirements : 0xfffffa80`14de7640 
_IO_RESOURCE_REQUIREMENTS_LIST<BR>   +0x0f0 
InterfaceType    : 0xffffffff (No matching name)<BR>   
+0x0f4 BusNumber        : 
0xfffffff0<BR>   +0x0f8 ChildInterfaceType : f ( PNPBus 
)<BR>   +0x0fc ChildBusNumber   : 0<BR>   +0x100 
ChildBusTypeIndex : 3<BR>   +0x102 RemovalPolicy    : 
0x1 ''<BR>   +0x103 HardwareRemovalPolicy : 0x1 ''<BR>   
+0x108 TargetDeviceNotify : _LIST_ENTRY [ 0xfffffadf`31481468 - 
0xfffffadf`31481468 ]<BR>   +0x118 DeviceArbiterList : _LIST_ENTRY [ 
0xfffffadf`31481478 - 0xfffffadf`31481478 ]<BR>   +0x128 
DeviceTranslatorList : _LIST_ENTRY [ 0xfffffadf`31481488 - 0xfffffadf`31481488 
]<BR>   +0x138 NoTranslatorMask : 8<BR>   +0x13a 
QueryTranslatorMask : 8<BR>   +0x13c NoArbiterMask    : 
0<BR>   +0x13e QueryArbiterMask : 0<BR>   +0x140 
OverUsed1        : 
<unnamed-tag><BR>   +0x148 
OverUsed2        : 
<unnamed-tag><BR>   +0x150 BootResources    : 
(null) <BR>   +0x158 CapabilityFlags  : 0xc0<BR>   
+0x160 DockInfo         : 
<unnamed-tag><BR>   +0x180 DisableableDepends : 
0<BR>   +0x188 PendedSetInterfaceState : _LIST_ENTRY [ 
0xfffffadf`314814e8 - 0xfffffadf`314814e8 ]<BR>   +0x198 
LegacyBusListEntry : _LIST_ENTRY [ 0xfffffadf`314814f8 - 0xfffffadf`314814f8 
]<BR>   +0x1a8 DriverUnloadRetryCount : 0<BR>   +0x1b0 
PreviousParent   : (null) <BR>   +0x1b8 
DeletedChildren  : 0</P>
<P><FONT face=Arial color=#0000ff></FONT><BR><BR>> -----Original 
Message-----<BR>> From: ofw-bounces@lists.openfabrics.org<BR>> [<A 
href="mailto:ofw-bounces@lists.openfabrics.org">mailto:ofw-bounces@lists.openfabrics.org</A>] 
On Behalf Of Leonid Keller<BR>> Sent: Saturday, November 15, 2008 11:14 
PM<BR>> To: Fab Tillier; Stan C. Smith<BR>> Cc: 
ofw@lists.openfabrics.org<BR>> Subject: [ofw] RE: pnpdtest problems with 
IPoIB<BR>><BR>> See inline<BR>><BR>> > -----Original 
Message-----<BR>> > From: Fab Tillier [<A 
href="mailto:ftillier@windows.microsoft.com">mailto:ftillier@windows.microsoft.com</A>]<BR>> 
> Sent: Friday, November 14, 2008 6:20 PM<BR>> > To: Leonid Keller; 
Stan C. Smith<BR>> > Cc: ofw@lists.openfabrics.org<BR>> > Subject: 
RE: pnpdtest problems with IPoIB<BR>> ><BR>> > Hi Leo,<BR>> 
><BR>> > >The test first sends IRP_MN_QUERY_STOP_DEVICE to 
IPoIB.<BR>> > >IPoIB skips it down to IB_BUS, it skips it down to 
MLX4_HCA<BR>> > and the latter >returns 103 (STATUS_PENDING), which get 
returned to<BR>> > PnP manager.<BR>> ><BR>> > Why is the bus 
driver passing the IRP from the PDO's device<BR>> node down<BR>> > to 
its parent?  The IPoIB instance is being QUERY_STOP'd,<BR>> not the 
HCA. <BR>> > Why isn't the bus driver completing it (in the context 
of the PDO)?<BR>><BR>> My description was not exact, sorry.<BR>> The 
bus driver (bus_port_mgr.c) completes it OK.<BR>> But then PnP manager sends 
QUERY_STOP to the FDO (bus_pnp.c),<BR>> which - as FDO is expected to - skips 
it down the stack till<BR>> the bus driver.<BR>> I've attached a trace 
with more prints.<BR>> Here is a quote from this trace with snips (lines 
85-148):<BR>><BR>> cl_pnp() [<BR>> cl_pnp(): IRP_MN_QUERY_STOP_DEVICE 
for IPoIB<BR>> cl_pnp(): IrpComplete: complete IRP with status 0<BR>> 
cl_pnp() ]<BR>><BR>> cl_pnp() [<BR>> cl_pnp(): 
IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB<BR>> cl_pnp(): IrpComplete: 
complete IRP with status 0xc00000bb<BR>> cl_pnp() ]<BR>><BR>> cl_pnp() 
[<BR>> cl_pnp(): IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB<BR>> 
cl_pnp(): IrpComplete: complete IRP with status 0xc00000bb<BR>> cl_pnp() 
]<BR>><BR>> cl_pnp() [<BR>> cl_pnp(): IRP_MN_QUERY_STOP_DEVICE for IB 
Bus<BR>> cl_pnp(): IrpSkip/IrpIgnore: passing down to PDO 92E964C0,<BR>> 
ext 85BE83E0, status 0<BR>> cl_pnp() [<BR>> cl_pnp(): 
IRP_MN_QUERY_STOP_DEVICE for MLX4_HCA driver<BR>> cl_pnp(): 
IrpSkip/IrpIgnore: passing down to PDO 87D77D58,<BR>> ext 92E96578, status 
0<BR>> cl_pnp(): returned with status 0x103<BR>> cl_pnp() ]<BR>> 
cl_pnp(): returned with status 0x103<BR>> cl_pnp() ]<BR>><BR>> 
...<BR>><BR>> PNPFILTR: FilterCompletionRoutine Completed, event 
set.<BR>> PNPFILTR: FilterCancelStop Setting TestCompleteEvent for<BR>> 
stack with PDO 0x874A8530<BR>> PNPFILTR: FilterCancelStop returning 
0x00000000 for stack<BR>> with PDO 0x874A8530<BR>> PNPFILTR: Query Result 
Wait Satisfied...  6<BR>> PNPFILTR: Number of IRPs Stored...  
6<BR>> PNPFILTR: Query Result - Releasing the remove<BR>> PNPFILTR: Query 
Result -Result Stored Event set Relevant<BR>> Sequence of Irps:<BR>> 
IRP_MN_QUERY_PNP_DEVICE_STATE<BR>> IRP_MN_QUERY_STOP_DEVICE<BR>> 
IRP_MN_QUERY_RESOURCE_REQUIREMENTS<BR>> 
IRP_MN_FILTER_RESOURCE_REQUIREMENTS<BR>> IRP_MN_QUERY_INTERFACE<BR>> 
IRP_MN_CANCEL_STOP_DEVICE<BR>> Assert: Device node status not as expected: 
problem code 0<BR>>       
File=d:\rtm_test\testsrc\basetest\pnp\pnpdtest\user\pnpdtest.c,<BR>> 
Line=323<BR>><BR>> ><BR>> > -Fab<BR>> ><BR>> 
</FONT></P></BODY></HTML>