IopIncrementCompletionContextUsageCountAndReadData
NTSTATUS __stdcall IopIncrementCompletionContextUsageCountAndReadData(PVOID BugCheckParameter1){
UINT64 v1;
_QWORD *v2;
_QWORD *v3;
UINT64 *v4;
_QWORD *v6;
_QWORD *v7;
_BYTE *v8;
signed __int64 BugCheckParameter4;
UINT8 v10;
_QWORD *v11;
__int64 v12;
v4 = (UINT64 *)((char *)BugCheckParameter1 + 184);
v6 = v3;
v7 = v2;
v8 = (_BYTE *)v1;
BugCheckParameter4 = -1i64;
KeAcquireSpinLockRaiseToDpc((UINT64 *)BugCheckParameter1 + 23, v1);
v11 = (_QWORD *)*((_QWORD *)BugCheckParameter1 + 22);
if( v11 )
{
BugCheckParameter4 = v11[2];
v11[2] = BugCheckParameter4 + 1;
}
KeReleaseSpinLock(v4, v10);
if( v11 )
{
*v8 = 1;
*v7 = *v11;
v12 = v11[1];
*v6 = v12;
if( BugCheckParameter4 < 0 )
KeBugCheckEx(
0x18u,
(ULONG_PTR)BugCheckParameter1,
*((_QWORD *)BugCheckParameter1 + 22),
0x81ui64,
BugCheckParameter4);
}
else
{
*v8 = 0;
*v7 = 0i64;
*v6 = 0i64;
}
return v12;
}Referenced by:
IopCompleteRequest
IopXxxControlFile
NtLockFile