- Get rid of MyHeap.
- Continue using safe string functions.
- Allow event logs themselves to be their own source. And store the full list of log sources in the "Sources" registry multi-string value.
- Correctly compute the number of records.
- Correctly return the event number and the write timestamp of reported events.
- Use a helper function for ElfrReportEventW/A and for ElfrReportEventAndSourceW that is now implemented.
- Rewrite the file.c functions using NT-APIs almost exclusively for file operations.
- Modify the logic of LogfReadEvents so that a RecordNumber == 0 in sequential read mode means we need to determine where to start the read operation, depending on whether a forwards-read or a backwards-read is performed. The log handle's CurrentRecord member is therefore initialized to 0 before usage.
- Adjust LogfAllocAndBuildNewRecord to take in input the event generation timestamp.
- Do not "compute" the RecordNumber of the new event in LogfAllocAndBuildNewRecord; it will be consistently assigned by LogfWriteRecord.
- Correctly initialize the OldestRecordNumber to zero for new (empty) logs.
- Perform extensive log validity checks when opening existing logs: log header and EOF record as well as boundary checks.
- Rewrite almost of the functions to support event log wrapping (see https://msdn.microsoft.com/en-us/library/windows/desktop/bb309026(v=vs.85).aspx ) and splitted records. Now our event logs are not corrupted anymore, and are readable under Windows 2k/xp/2k3/Vista+.
- As a consequence of supporting wrapping event logs we need to iterate through them at loading time in order to locate the valid EOF record (indeed it may happen that the log header is not correctly synced, and its Start/EndOffsets are invalid. The EOF record offsets contain on the other way the correct values).
The file.c fixes are a bit still work-in-progress, but the bulk of the code works. It is extensively tested in situ in my local VM since 2 months now.
CORE-11843 #resolve
svn path=/trunk/; revision=72236
- Implement resizing the taskbar in steps based on the way the rebar resizes. It works in windows (a bit buggy) and it would work in ros if our rebar could resize on demand.
- Let CStartButton handle the creation of the start button.
svn path=/trunk/; revision=72233
- Fix regression from 62529, striped all the MF_POPUP from the code, no way to know if the submenu is a drop menu. See CORE-9269.
svn path=/trunk/; revision=72227
InstallPrivileges:
- Use LsaAddAccountRights instead of LsaAddPrivilegesToAccount. This enables us to add privileges and user rights to a given account.
- Identify SIDs by a leading asterisk. Account names do not start with an asterisk.
defltws.inf:
- Add user rights.
- Add an asterisk before all SIDs.
svn path=/trunk/; revision=72217
- LsapRegQueryKeyInfo: Return the maximum sub key name length too.
- LsarEnumerateAccounts: User the maximum sub key name length to allocate a large enough buffer instead of using a fixed size one.
- LsarAddAccountRights: Use the proper value size to retrieve the system access attribute.
svn path=/trunk/; revision=72215
- 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.
- Update some code formatting.
CORE-11842 #resolve
I don't completely touch file.c as it contains most of my upcoming eventlog fixes...
svn path=/trunk/; revision=72213
- ElfrChangeNotify takes a IELF_HANDLE handle as its first parameter, not a pointer to it.
- Since we already use NT-like types (especially for USHORT variables), do the same for the other parameters (DWORD -> ULONG), and also use the Pxxx for pointers to xxx.
- Use Windows 2003 maximum size (0x3FFFF) for the event data to be written, instead of the Vista+ limit that is much smaller (0xF000). See also revisions r72207 and r72209.
CORE-11839 #resolve
svn path=/trunk/; revision=72211
- Fix the tests so that they test what they have to test, on ReactOS & Windows 2k3/XP. (Note that here, ReactOS used the more restrained event size limitations of Vista+ compared to those of Win2k3. I choose to test, and will implement, the size limitations of Win2k3.)
- Choose a different name for the test such that it doesn't collide with the 'eventlog' test from advapi32_winetest.
CORE-11838 CORE-11839
svn path=/trunk/; revision=72209
Fix structural errors, fix some dead links, fix wrong lang inclusions, fix trailing spaces etcetc
Some entries are dead, like nirlauncher, watercolor, tahoma and audacity. Feel free to fix em. (@holiday till monday now, cya)
svn path=/trunk/; revision=72205