IopLiveDumpWriteBuffer
INT64 __stdcall IopLiveDumpWriteBuffer(VOID *FileHandle, VOID *Buffer, UINT64 Length, LARGE_INTEGER *ByteOffset){
__int64 v5;
bool v8;
INT64 result;
NTSTATUS Status;
UINT64 v11;
struct _IO_STATUS_BLOCK IoStatusBlock;
__int64 v13;
char v14;
v11 = 0i64;
v5 = (unsigned int)Length;
v8 = *(_BYTE *)(v13 + 880) == 0;
IoStatusBlock = 0i64;
if( v8
|| v14
|| (result = SecureDump_Encrypt_DmpData(
(UINT8 *)Buffer,
(unsigned int)Length,
(UINT64 *)Buffer,
(unsigned int)Length,
&v11),
(int)result >= 0) )
{
Status = ZwWriteFile(FileHandle, 0i64, 0i64, 0i64, &IoStatusBlock, Buffer, v5, ByteOffset, 0i64);
if( Status >= 0 )
{
Status = IoStatusBlock.Status;
if( IoStatusBlock.Status >= 0 )
ByteOffset->QuadPart += v5;
}
return(unsigned int)Status;
}
return result;
}Referenced by:
IopLiveDumpWriteDumpFile
IopLiveDumpWriteDumpFileWithExtraPages
IopLiveDumpWriteSecondaryData