VfPacketCreateAndLock
_IOV_REQUEST_PACKET *__stdcall VfPacketCreateAndLock(_IRP *Irp){
_IOV_REQUEST_PACKET *result;
INT64 v3;
_IOV_REQUEST_PACKET *v4;
_IOV_REQUEST_PACKET *v5;
_IOV_REQUEST_PACKET *v6;
result = (_IOV_REQUEST_PACKET *)ExAllocateFromNPagedLookasideList(&ViPacketLookaside);
v4 = result;
if( result )
{
result[14] = 0;
v5 = result;
v6 = result + 16;
*((_QWORD *)v6 + 1) = v6;
*(_QWORD *)v6 = v6;
LOBYTE(v6) = Irp->StackCount;
*((_QWORD *)v4 + 12) = 0i64;
*((_BYTE *)v4 + 104) = 0;
*((_QWORD *)v4 + 14) = 0i64;
*((_WORD *)v4 + 92) = 0;
*((_BYTE *)v4 + 186) = 0;
v4[47] = 0;
*((_QWORD *)v4 + 30) = 0i64;
v4[21] = 0;
*((_QWORD *)v4 + 11) = 0i64;
*((_QWORD *)v4 + 24) = 0i64;
*((_QWORD *)v4 + 25) = 0i64;
v4[52] = 0;
*((_QWORD *)v4 + 27) = 0i64;
*((_QWORD *)v4 + 31) = 0i64;
*((_QWORD *)v4 + 28) = 0i64;
*((_BYTE *)v4 + 80) = (_BYTE)v6;
v4[58] = MmVerifierData;
VfIrpDatabaseEntryInsertAndLock((UINT64)Irp, v3, (INT64)v5);
return v4;
}
return result;
}Referenced by:
IovpCallDriver1
VfIoAllocateIrp2
ViIrpAllocateLockedPacket