KiTpWriteUmMemory

NTSTATUS __fastcall KiTpWriteUmMemory(
        PFN_WDFDRIVERERRORREPORTAPIMISSING *a1,
        VOID *ToAddress,
        VOID *FromAddress,
        UINT64 BufferSize){
  _EPROCESS *v4; 
  UINT64 v7; 
  int v9; 
  int v10; 
  INT64 v12; 
  INT64 v13; 
  __int64 NumberOfBytesRead[2]; 
  _XSTATE_FEATURE *v15; 
  PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP *v16; 
  PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP DeviceObject; 

  v4 = PsInitialSystemProcess;
  NumberOfBytesRead[0] = 0i64;
  LODWORD(DeviceObject) = 0;
  v7 = (unsigned int)BufferSize;
  v16 = (PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP *)ToAddress;
  LODWORD(v12) = 128;
  v15 = (_XSTATE_FEATURE *)(unsigned int)BufferSize;
  v9 = MmProtectVirtualMemory(
         (PFN_WDFDRIVERERRORREPORTAPIMISSING *)PsInitialSystemProcess,
         a1,
         &v16,
         &v15,
         v12,
         &DeviceObject);
  if( v9 >= 0 )
  {
    MmCopyVirtualMemory(v4, FromAddress, (_EPROCESS *)a1, ToAddress, v7, 0, (UINT64 *)NumberOfBytesRead);
    v9 = v10;
    LODWORD(v13) = (_DWORD)DeviceObject;
    MmProtectVirtualMemory((PFN_WDFDRIVERERRORREPORTAPIMISSING *)v4, a1, &v16, &v15, v13, &DeviceObject);
  }
  return v9;
}

Referenced by:

KiTpWriteMemory