IopRetryDeviceRemovalForReset

VOID __stdcall IopRetryDeviceRemovalForReset(VOID *Parameter){
  __int64 v1; 
  _DEVICE_NODE *v3; 
  int IsDevNodeEffectivelyRemoved; 
  int v5; 

  v1 = *((_QWORD *)Parameter + 23);
  if( v1 )
    v3 = *(_DEVICE_NODE **)(*(_QWORD *)(v1 + 312) + 40i64);
  else
    v3 = 0i64;
  PpDevNodeLockTree(PPL_SIMPLE_READ);
  IsDevNodeEffectivelyRemoved = PipIsDevNodeEffectivelyRemoved(v3);
  PpDevNodeUnlockTree(PPL_SIMPLE_READ);
  if( IsDevNodeEffectivelyRemoved )
    v5 = -1073741823;
  else
    v5 = PnpSetTargetDeviceRemove(
           *((PVOID *)Parameter + 23),
           0,
           1,
           0,
           1,
           54,
           0,
           0i64,
           (__int64)IopDeviceRemovalForResetComplete,
           (__int64)Parameter,
           (__int64)Parameter + 164,
           (__int64)Parameter + 192,
           (__int64)Parameter + 200,
           (__int64)Parameter + 168);
  if( v5 < 0 )
    IopFreeResetRemovalContext((_RESET_REMOVAL_CONTEXT *)Parameter);
}

Referenced by:

No references.