EtwpPrepareHeader

NTSTATUS __stdcall EtwpPrepareHeader(_WMI_LOGGER_CONTEXT *LoggerContext, _WMI_BUFFER_HEADER *Buffer, UINT64 BufferFlag){
  int v3; 
  __int64 v5; 

  v3 = *((_DWORD *)Buffer + 1);
  if( !v3 )
    v3 = *((_DWORD *)Buffer + 2);
  *((_DWORD *)Buffer + 12) = v3;
  if( (_WORD)BufferFlag != 1 && v3 == 72 )
    return -2147483614;
  *((_WORD *)Buffer + 26) = BufferFlag | 0x20;
  if( LoggerContext->LogFileHandle || (BufferFlag & 0x40) == 0 )
  {
    v5 = *((unsigned int *)Buffer + 12);
    if( *(_DWORD *)Buffer - (int)v5 > 0 )
      memset((char *)Buffer + v5, 255i64, *(_DWORD *)Buffer - v5);
  }
  if( *((_DWORD *)Buffer + 12) == 72 )
    return -2147483614;
  else
    return 0;
}

Referenced by:

EtwpAddLogHeader
EtwpBufferingModeFlush
EtwpFlushBuffer