HvpGenerateLogEntryDirtyData
UINT16 __fastcall HvpGenerateLogEntryDirtyData(
INT64 BugCheckParameter2,
INT64 a2,
INT64 a3,
UINT64 *a4,
UINT64 *a5,
INT64 a6){
RTL_BITMAP *v6;
INT64 v10;
UINT64 *v11;
ULONG v12;
unsigned int v13;
UINT16 result;
INT64 Allocate;
INT64 Allocatea;
UINT8 *Address[2];
UINT64 Current;
UINT64 Length;
Address[0] = 0i64;
LODWORD(Length) = 0;
v6 = (RTL_BITMAP *)(BugCheckParameter2 + 88);
LODWORD(a6) = 0;
LODWORD(Current) = 0;
LOBYTE(Allocate) = 0;
if( (unsigned __int8)HvpFindNextDirtyBlock(
(_HHIVE *)BugCheckParameter2,
(_RTL_BITMAP *)(BugCheckParameter2 + 88),
&Current,
Address,
&Length,
(UINT64 *)&a6,
Allocate) )
{
v11 = a5;
do
{
HvpCopyDataToOffsetArray((INT64)Address[0], (unsigned int)Length, a2, v10, a4, v11);
LOBYTE(Allocatea) = 0;
}
while( (unsigned __int8)HvpFindNextDirtyBlock(
(_HHIVE *)BugCheckParameter2,
v6,
&Current,
Address,
&Length,
(UINT64 *)&a6,
Allocatea) );
}
v12 = RtlNumberOfSetBits(v6);
v13 = HvpCountSetRangesInVector(v6);
CmpLogDirtyVectorUse((_CMHIVE *)BugCheckParameter2, DirtyDataCaptureEnd, v13, v12);
return result;
}Referenced by:
HvpGenerateLogEntry