VfPnpDumpIrpStack
VOID __stdcall VfPnpDumpIrpStack(_IO_STACK_LOCATION *IrpSp){
__int64 MinorFunction;
INT8 *v3;
INT8 *v4;
unsigned __int8 v5;
unsigned int Options;
unsigned int v7;
unsigned int v8;
const char *v9;
INT8 *v10;
int v11;
int v12;
int v13;
int v14;
int SecurityContext;
int v16;
int v17;
int v18;
DbgPrintEx(0x5Du, 0, "IRP_MJ_PNP.");
MinorFunction = IrpSp->MinorFunction;
v3 = (INT8 *)"(Bogus)";
if( (unsigned __int8)MinorFunction > 0x18u )
{
v4 = "IRP_MN_BOGUS";
if( (_BYTE)MinorFunction != 0xFF )
v4 = (INT8 *)"(Bogus)";
}
else
{
v4 = PnPIrpNames[MinorFunction];
}
VfUtilDbgPrint(v4);
v5 = IrpSp->MinorFunction;
if( v5 == 7 )
{
SecurityContext = (int)IrpSp->Parameters.SecurityContext;
if( !SecurityContext )
{
v10 = (INT8 *)"(BusRelations)";
goto LABEL_49;
}
v16 = SecurityContext - 1;
if( !v16 )
{
v10 = "(EjectionRelations)";
goto LABEL_49;
}
v17 = v16 - 1;
if( !v17 )
{
v10 = "(PowerRelations)";
goto LABEL_49;
}
v18 = v17 - 1;
if( !v18 )
{
v10 = "(RemovalRelations)";
goto LABEL_49;
}
if( v18 == 1 )
{
v10 = "(TargetDeviceRelation)";
goto LABEL_49;
}
}
else if( v5 == 12 )
{
v14 = (int)IrpSp->Parameters.SecurityContext;
if( v14 )
{
if( v14 == 1 )
v3 = "(DeviceTextLocationInformation)";
}
else
{
v3 = "(DeviceTextDescription)";
}
}
else
{
if( v5 <= 0xEu )
return;
if( v5 <= 0x10u )
{
DbgPrintEx(
0x5Du,
0,
"(WhichSpace=%x, Buffer=%p, Offset=%x, Length=%x)",
LODWORD(IrpSp->Parameters.SecurityContext),
*(const void **)&IrpSp->Parameters.Options,
*(_DWORD *)&IrpSp->Parameters.FileAttributes,
IrpSp->Parameters.EaLength);
return;
}
if( v5 == 18 )
{
v9 = "(False)";
v10 = "(True)";
LABEL_21:
if( !LOBYTE(IrpSp->Parameters.SecurityContext) )
v10 = (INT8 *)v9;
goto LABEL_49;
}
if( v5 != 19 )
{
if( v5 != 22 )
return;
Options = IrpSp->Parameters.Options;
if( Options )
{
v7 = Options - 1;
if( v7 )
{
v8 = v7 - 1;
if( v8 )
{
if( v8 == 1 )
v3 = "(DeviceUsageTypeDumpFile";
}
else
{
v3 = "(DeviceUsageTypeHibernation";
}
}
else
{
v3 = "(DeviceUsageTypePaging";
}
}
else
{
v3 = "(DeviceUsageTypeUndefined";
}
VfUtilDbgPrint(v3);
v9 = ", InPath=FALSE)";
v10 = ", InPath=TRUE)";
goto LABEL_21;
}
v11 = (int)IrpSp->Parameters.SecurityContext;
if( v11 )
{
v12 = v11 - 1;
if( v12 )
{
v13 = v12 - 1;
if( v13 )
{
if( v13 == 1 )
v3 = "(BusQueryInstanceID)";
}
else
{
v3 = "(BusQueryCompatibleIDs)";
}
}
else
{
v3 = "(BusQueryHardwareIDs)";
}
}
else
{
v3 = "(BusQueryDeviceID)";
}
}
v10 = v3;
LABEL_49:
VfUtilDbgPrint(v10);
}Referenced by:
No references.