internal EventLogInformation(EventLogSession session, string channelName, PathType pathType) { EventLogHandle logHandle = NativeWrapper.EvtOpenLog(session.Handle, channelName, pathType); using (logHandle) { _creationTime = (DateTime?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogCreationTime); _lastAccessTime = (DateTime?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogLastAccessTime); _lastWriteTime = (DateTime?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogLastWriteTime); _fileSize = (long?)((ulong?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogFileSize)); _fileAttributes = (int?)((uint?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogAttributes)); _recordCount = (long?)((ulong?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogNumberOfLogRecords)); _oldestRecordNumber = (long?)((ulong?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogOldestRecordNumber)); _isLogFull = (bool?)NativeWrapper.EvtGetLogInfo(logHandle, UnsafeNativeMethods.EvtLogPropertyId.EvtLogFull); } }
internal static extern bool EvtSeek(EventLogHandle resultSet, long position, EventLogHandle bookmark, int timeout, [MarshalAs(UnmanagedType.I4)] EvtSeekFlags flags);
internal static extern bool EvtClearLog( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string channelPath, [MarshalAs(UnmanagedType.LPWStr)] string targetFilePath, int flags );
internal static extern EventLogHandle EvtOpenLog( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.I4)] PathType flags );
internal static extern bool EvtSaveChannelConfig( EventLogHandle channelConfig, int flags );
internal static extern bool EvtNextPublisherId( EventLogHandle publisherEnum, int publisherIdBufferSize, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder publisherIdBuffer, out int publisherIdBufferUsed );
internal static extern EventLogHandle EvtOpenChannelEnum( EventLogHandle session, int flags );
internal static extern EventLogHandle EvtOpenEventMetadataEnum( EventLogHandle publisherMetadata, int flags );
internal static partial EventLogHandle EvtOpenPublisherMetadata( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string publisherId, [MarshalAs(UnmanagedType.LPWStr)] string logFilePath, int locale, int flags);
internal static partial bool EvtGetQueryInfo( EventLogHandle queryHandle, EvtQueryPropertyId propertyId, int bufferSize, IntPtr buffer, ref int bufferRequired);
internal static partial bool EvtGetEventInfo( EventLogHandle eventHandle, EvtEventPropertyId propertyId, int bufferSize, IntPtr bufferPtr, out int bufferUsed);
internal static partial bool EvtCancel(EventLogHandle handle);
internal static partial bool EvtSeek( EventLogHandle resultSet, long position, EventLogHandle bookmark, int timeout, EvtSeekFlags flags);
internal static extern EventLogHandle EvtSubscribe(EventLogHandle session, SafeWaitHandle signalEvent, [MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.LPWStr)] string query, EventLogHandle bookmark, IntPtr context, IntPtr callback, int flags);
internal static extern bool EvtCancel(EventLogHandle handle);
internal static partial bool EvtNextChannelPath( EventLogHandle channelEnum, int channelPathBufferSize, [Out] char[]?channelPathBuffer, out int channelPathBufferUsed);
internal static extern bool EvtGetObjectArraySize( EventLogHandle objectArray, out int objectArraySize );
internal static partial bool EvtNextPublisherId( EventLogHandle publisherEnum, int publisherIdBufferSize, [Out] char[]?publisherIdBuffer, out int publisherIdBufferUsed);
// public static extern IntPtr EvtNextEventMetadata( internal static extern EventLogHandle EvtNextEventMetadata( EventLogHandle eventMetadataEnum, int flags );
internal static partial bool EvtSetChannelConfigProperty( EventLogHandle channelConfig, EvtChannelConfigPropertyId propertyId, int flags, ref EvtVariant propertyValue);
internal static extern EventLogHandle EvtOpenPublisherEnum( EventLogHandle session, int flags );
internal static partial bool EvtGetLogInfo( EventLogHandle log, EvtLogPropertyId propertyId, int propertyValueBufferSize, IntPtr propertyValueBuffer, out int propertyValueBufferUsed);
internal static extern EventLogHandle EvtOpenChannelConfig( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] String channelPath, int flags );
internal static partial bool EvtExportLog( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string channelPath, [MarshalAs(UnmanagedType.LPWStr)] string query, [MarshalAs(UnmanagedType.LPWStr)] string targetFilePath, int flags);
internal static extern bool EvtSetChannelConfigProperty( EventLogHandle channelConfig, [MarshalAs(UnmanagedType.I4)] EvtChannelConfigPropertyId propertyId, int flags, ref EvtVariant propertyValue );
internal static partial bool EvtUpdateBookmark( EventLogHandle bookmark, EventLogHandle eventHandle);
internal static extern bool EvtArchiveExportedLog( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string logFilePath, int locale, int flags );
internal static extern EventLogHandle EvtQuery( EventLogHandle session, [MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.LPWStr)] string query, int flags);
internal static extern bool EvtUpdateBookmark( EventLogHandle bookmark, EventLogHandle eventHandle );
internal static extern bool EvtRender(EventLogHandle context, EventLogHandle eventHandle, EvtRenderFlags flags, int buffSize, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder buffer, out int buffUsed, out int propCount);