VfPnpDumpIrpStack

VOID __stdcall VfPnpDumpIrpStack(_IO_STACK_LOCATION *IrpSp){
  __int64 v2; 
  INT8 *v3; 
  INT8 *v4; 
  unsigned __int8 v5; 
  int v6; 
  int v7; 
  int v8; 
  const char *v9; 
  INT8 *v10; 
  int v11; 
  int v12; 
  int v13; 
  int v14; 
  int v15; 
  int v16; 
  int v17; 
  int v18; 
  DbgPrintEx(0x5Du, 0, "IRP_MJ_PNP.");
  v2 = *((unsigned __int8 *)IrpSp + 1);
  v3 = (INT8 *)"(Bogus)";
  if( (unsigned __int8)v2 > 0x18u )
  {
    v4 = "IRP_MN_BOGUS";
    if( (_BYTE)v2 != 0xFF )
      v4 = (INT8 *)"(Bogus)";
  }
  else
  {
    v4 = PnPIrpNames[v2];
  }
  VfUtilDbgPrint(v4);
  v5 = *((_BYTE *)IrpSp + 1);
  if( v5 == 7 )
  {
    v15 = *((_DWORD *)IrpSp + 2);
    if( !v15 )
    {
      v10 = (INT8 *)"(BusRelations)";
      goto LABEL_49;
    }
    v16 = v15 - 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 = *((_DWORD *)IrpSp + 2);
    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)",
        *((unsigned int *)IrpSp + 2),
        *((const void **)IrpSp + 2),
        *((_DWORD *)IrpSp + 6),
        *((_DWORD *)IrpSp + 8));
      return;
    }
    if( v5 == 18 )
    {
      v9 = "(False)";
      v10 = "(True)";
LABEL_21:
      if( !*((_BYTE *)IrpSp + 8) )
        v10 = (INT8 *)v9;
      goto LABEL_49;
    }
    if( v5 != 19 )
    {
      if( v5 != 22 )
        return;
      v6 = *((_DWORD *)IrpSp + 4);
      if( v6 )
      {
        v7 = v6 - 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 = *((_DWORD *)IrpSp + 2);
    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.