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