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