mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
384 lines
5.8 KiB
384 lines
5.8 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
elfproto.h
|
|
|
|
Abstract:
|
|
|
|
This file contains the prototypes for the Eventlog service.
|
|
|
|
Author:
|
|
|
|
Rajen Shah (rajens) 12-Aug-1991
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _ELFPROTO_
|
|
#define _ELFPROTO
|
|
|
|
//
|
|
// Other prototypes
|
|
//
|
|
PVOID
|
|
ElfpAllocateBuffer (ULONG size);
|
|
|
|
VOID
|
|
ElfpFreeBuffer (PVOID BufPtr);
|
|
|
|
VOID
|
|
ElfPerformRequest( PELF_REQUEST_RECORD Request);
|
|
|
|
|
|
PLOGMODULE
|
|
GetModuleStruc( PUNICODE_STRING ModuleName );
|
|
|
|
PLOGMODULE
|
|
FindModuleStrucFromAtom ( ATOM Atom );
|
|
|
|
|
|
VOID
|
|
ElfControlResponse(
|
|
DWORD);
|
|
|
|
VOID
|
|
ElfAnnounceServiceStatus();
|
|
|
|
VOID
|
|
Elfmain (
|
|
DWORD argc,
|
|
LPWSTR argv[]
|
|
);
|
|
|
|
VOID
|
|
ElfPrepareForPause();
|
|
|
|
VOID
|
|
ElfPrepareForContinue();
|
|
|
|
VOID
|
|
IELF_HANDLE_rundown(
|
|
IELF_HANDLE ElfHandle
|
|
);
|
|
|
|
VOID
|
|
LinkContextHandle(
|
|
IELF_HANDLE LogHandle
|
|
);
|
|
|
|
VOID
|
|
UnlinkContextHandle (
|
|
IELF_HANDLE LogHandle
|
|
);
|
|
|
|
VOID
|
|
LinkLogModule (
|
|
PLOGMODULE pLogModule,
|
|
ANSI_STRING * pModuleNameA
|
|
);
|
|
|
|
VOID
|
|
UnlinkLogModule (
|
|
PLOGMODULE pLogModule
|
|
);
|
|
|
|
VOID
|
|
LinkLogFile (
|
|
PLOGFILE pLogFile
|
|
);
|
|
|
|
VOID
|
|
UnlinkLogFile (
|
|
PLOGFILE pLogFile
|
|
);
|
|
|
|
VOID
|
|
GetGlobalResource (DWORD Type
|
|
);
|
|
|
|
VOID
|
|
ReleaseGlobalResource();
|
|
|
|
NTSTATUS
|
|
SetUpDataStruct (
|
|
PUNICODE_STRING LogFileName,
|
|
ULONG MaxFileSize,
|
|
ULONG Retention,
|
|
ULONG GuestAccessRestriction,
|
|
PUNICODE_STRING ModuleName,
|
|
HANDLE hLogFile,
|
|
ELF_LOG_TYPE LogType
|
|
);
|
|
|
|
NTSTATUS
|
|
SetUpModules (
|
|
HANDLE hLogFile,
|
|
PLOGFILE pLogFile,
|
|
BOOLEAN bAllowDupes
|
|
);
|
|
|
|
BOOL
|
|
StartLPCThread ();
|
|
|
|
VOID
|
|
StopLPCThread ();
|
|
|
|
BOOL
|
|
ElfStartRegistryMonitor ();
|
|
|
|
VOID
|
|
StopRegistryMonitor ();
|
|
|
|
NTSTATUS
|
|
ElfImpersonateClient(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfRevertToSelf(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
ReadRegistryInfo (
|
|
HANDLE hLogFiles,
|
|
PUNICODE_STRING SubKeyName,
|
|
PLOG_FILE_INFO LogFileInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfOpenLogFile (
|
|
PLOGFILE pLogFile,
|
|
ELF_LOG_TYPE LogType
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfpCloseLogFile (
|
|
PLOGFILE pLogFile,
|
|
DWORD Flags
|
|
);
|
|
|
|
BOOL
|
|
ValidFilePos (
|
|
PVOID Position,
|
|
PVOID BeginningRecord,
|
|
PVOID EndingRecord,
|
|
PVOID PhysicalEOF,
|
|
PVOID BaseAddress
|
|
);
|
|
|
|
VOID
|
|
ElfpCleanUp (
|
|
ULONG EventFlags
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfpCopyFile (
|
|
IN HANDLE SourceHandle,
|
|
IN PUNICODE_STRING TargetFileName
|
|
);
|
|
|
|
VOID
|
|
FreeModuleAndLogFileStructs (VOID);
|
|
|
|
NTSTATUS
|
|
ElfpFlushFiles (VOID);
|
|
|
|
|
|
VOID
|
|
InvalidateContextHandlesForLogFile (
|
|
PLOGFILE pLogFile
|
|
);
|
|
|
|
VOID
|
|
FixContextHandlesForRecord (
|
|
DWORD RecordOffset,
|
|
DWORD NewRecordOffset
|
|
);
|
|
|
|
PLOGFILE
|
|
FindLogFileFromName (
|
|
PUNICODE_STRING LogFileName
|
|
);
|
|
|
|
BOOL
|
|
SendAdminAlert (
|
|
ULONG MessageID,
|
|
ULONG NumStrings,
|
|
UNICODE_STRING *pStrings
|
|
);
|
|
|
|
PVOID
|
|
NextRecordPosition (
|
|
ULONG ReadFlags,
|
|
PVOID CurrPosition,
|
|
ULONG CurrRecordLength,
|
|
PVOID BeginRecord,
|
|
PVOID EndRecord,
|
|
PVOID PhysicalEOF,
|
|
PVOID PhysStart
|
|
);
|
|
|
|
VOID
|
|
NotifyChange (
|
|
PLOGFILE pLogFile
|
|
);
|
|
|
|
|
|
VOID
|
|
WriteQueuedEvents (
|
|
);
|
|
|
|
VOID
|
|
FlushQueuedEvents (
|
|
);
|
|
|
|
VOID
|
|
PerformWriteRequest ( PELF_REQUEST_RECORD Request
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfpCreateLogFileObject(
|
|
PLOGFILE LogFile,
|
|
DWORD Type,
|
|
ULONG GuestAccessRestriction
|
|
);
|
|
|
|
VOID
|
|
ElfpDeleteLogFileObject(
|
|
PLOGFILE LogFile
|
|
);
|
|
|
|
VOID
|
|
ElfpCloseAudit(
|
|
IN LPWSTR SubsystemName,
|
|
IN IELF_HANDLE ContextHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfpAccessCheckAndAudit(
|
|
IN LPWSTR SubsystemName,
|
|
IN LPWSTR ObjectTypeName,
|
|
IN LPWSTR ObjectName,
|
|
IN OUT IELF_HANDLE ContextHandle,
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
IN ACCESS_MASK DesiredAccess,
|
|
IN PGENERIC_MAPPING GenericMapping,
|
|
IN BOOL ForSecurityLog
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfCreateWellKnownSids(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElfFreeWellKnownSids(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfCreateAndSetSD(
|
|
IN PRTL_ACE_DATA AceData,
|
|
IN ULONG AceCount,
|
|
IN PSID OwnerSid OPTIONAL,
|
|
IN PSID GroupSid OPTIONAL,
|
|
OUT PSECURITY_DESCRIPTOR *NewDescriptor
|
|
);
|
|
|
|
NTSTATUS
|
|
ElfCreateUserSecurityObject(
|
|
IN PRTL_ACE_DATA AceData,
|
|
IN ULONG AceCount,
|
|
IN PSID OwnerSid,
|
|
IN PSID GroupSid,
|
|
IN BOOLEAN IsDirectoryObject,
|
|
IN PGENERIC_MAPPING GenericMapping,
|
|
OUT PSECURITY_DESCRIPTOR *NewDescriptor
|
|
);
|
|
|
|
VOID
|
|
ElfpCreateElfEvent(
|
|
IN ULONG EventId,
|
|
IN USHORT EventType,
|
|
IN USHORT EventCategory,
|
|
IN USHORT NumStrings,
|
|
IN LPWSTR * Strings,
|
|
IN LPVOID Data,
|
|
IN ULONG DataSize,
|
|
IN USHORT Flags
|
|
);
|
|
|
|
|
|
VOID
|
|
ElfpCreateQueuedAlert(
|
|
DWORD MessageId,
|
|
DWORD NumberOfStrings,
|
|
LPWSTR Strings[]
|
|
);
|
|
|
|
VOID
|
|
ElfpCreateQueuedMessage(
|
|
DWORD MessageId,
|
|
DWORD NumberOfStrings,
|
|
LPWSTR Strings[]
|
|
);
|
|
|
|
DWORD
|
|
ElfStatusUpdate(
|
|
IN DWORD NewState
|
|
);
|
|
|
|
DWORD
|
|
GetElState (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElfpGenerateLogClearedEvent(
|
|
IELF_HANDLE LogHandle
|
|
);
|
|
|
|
VOID
|
|
ElInitStatus(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElCleanupStatus(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
ElfBeginForcedShutdown(
|
|
IN BOOL PendingCode,
|
|
IN DWORD ExitCode,
|
|
IN DWORD ServiceSpecificCode
|
|
);
|
|
|
|
#ifdef _CAIRO_
|
|
|
|
BOOL
|
|
GetSourceAlertFilterFromRegistry(
|
|
HANDLE hKeyLogFile,
|
|
UNICODE_STRING * pswszSourceName,
|
|
SHORT * psCategoryFilter,
|
|
SHORT * psSeverityFilter);
|
|
|
|
BOOL
|
|
TestFilter(
|
|
WORD NTEventType,
|
|
SHORT sAlertSeverity);
|
|
|
|
HRESULT
|
|
RaiseCairoAlert(
|
|
PLOGMODULE pLogModule,
|
|
EVENTLOGRECORD * pEventLogRecord);
|
|
|
|
#endif // _CAIRO_
|
|
|
|
#endif // ifndef _ELFPROTO_
|