Use NT functions to retrieve timestamps for events.
Log kernel events with the current computer name.
Don't hardcode variables types for sizeofs.
Add type-checks for the data to be retrieved from the registry, and use default values in case the values do not exist or are invalid.
Use ULONG_PTR to perform pointer arithmetics.
Use string-safe functions for copy/concatenation.
Cache EventLog source for eventlog service self-logging.
Unlock the LogFile in LogfClearFile.
Fix rounding in LogfAllocAndBuildNewRecord.
Verify ELF handle validity in ElfrGetLogInformation.
Implement IELF_HANDLE_rundown to correctly cleanup ELF handles when client apps shut down. Adapt also the parameter of ElfDeleteEventLogHandle for reusing it there.