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.