www.pudn.com > win2ksrc.rar > elfproto.h, change:2000-07-26,size:6380b


/*++ 
 
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 
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( 
    VOID 
    ); 
 
NTSTATUS 
SetUpDataStruct ( 
    PUNICODE_STRING     LogFileName, 
    ULONG               MaxFileSize, 
    ULONG               Retention, 
    ULONG               GuestAccessRestriction, 
    PUNICODE_STRING     ModuleName, 
    HANDLE              hLogFile, 
    ELF_LOG_TYPE        LogType, 
    LOGPOPUP            logpLogPopup 
    ); 
 
NTSTATUS 
SetUpModules ( 
    HANDLE              hLogFile, 
    PLOGFILE            pLogFile, 
    BOOLEAN             bAllowDupes 
    ); 
 
BOOL 
StartLPCThread ( 
    VOID 
    ); 
 
VOID 
StopLPCThread ( 
    VOID 
    ); 
 
BOOL 
ElfStartRegistryMonitor ( 
    VOID 
    ); 
 
VOID 
StopRegistryMonitor ( 
    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, 
    BOOL  fCheckBeginEndRange 
    ); 
 
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 
    ); 
 
VOID 
FlushQueuedEvents ( 
    VOID 
    ); 
 
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 
    ); 
 
NTSTATUS 
ElfpTestClientPrivilege( 
    IN ULONG  ulPrivilege, 
    IN HANDLE hThreadToken     OPTIONAL 
    ); 
 
//SS: added to extend clustering support 
NTSTATUS 
FindSizeofEventsSinceStart ( 
    OUT PULONG               pulTotalEventSize, 
    IN PULONG                pulNumLogFiles, 
    OUT PPROPLOGFILEINFO     *ppPropLogFileInfo 
    );     
     
NTSTATUS 
GetEventsToProp( 
    IN PEVENTLOGRECORD       pEventLogRecords, 
    IN PPROPLOGFILEINFO      pPropLogFileInfo 
    ); 
 
//SS: end of changes for clustering 
 
VOID 
ElfWriteTimeStamp( 
    TIMESTAMPEVENT  EventType, 
    BOOLEAN         Append 
    ); 
 
VOID CALLBACK 
ElfWriteLastAliveTimeStamp( 
    UINT    uID, 
    UINT    uMsg, 
    DWORD   dwUser, 
    DWORD   dw1, 
    DWORD   dw2 
    ); 
 
#endif // ifndef _ELFPROTO_