• last updated 47 mins ago
Constraints: committers
Constraints: files
Constraints: dates

- Fix logic error in LdrpInit that caused us to busy-wait instead of sleep. This makes LibreOffice start up in a few seconds instead of sitting around at 100% CPU for a minute or two.

CORE-13268 #resolve

    • -2
    • +2

- Do not change RTL_HANDLE_TABLE::CommittedHandles when committing a new page of handle entries. This value must always point to the beginning of the allocation, to correctly track the entire committed range. Fixes LibreOffice Writer (and ntdll_apitest) crash.

CORE-13271 #resolve


- Add a test for RTL handle tables


    • -0
    • +201
    • -0
    • +2
[SCSIPORT]: Fixes:

- In SpiScanAdapter(), after an SCSI INQUIRY command has succeeded and we are setting up a LUN extension structure,

cache in its InquiryData member the inquiry data retrieved from the INQUIRY command (alternatively we might just cache

a pointer to a valid "LunInfo" since the latter are also cached elsewhere).

- This allows SpiBuildDeviceMap(), which is called just after SpiScanAdapter(), to correctly report in the registry SCSI tree

the correct Identifier and DeviceType values for the enumerated logical units.

- Use ExFreePoolWithTag in SpiScanAdapter().

[SCSIPORT]: Code formatting only.
[SCSIPORT]: Fixes + documentation:

- In SpiSendInquiry():

* use ExFreePoolWithTag;

* if IoBuildDeviceIoControlRequest() fails, exit correctly the loop so that the allocated buffers are cleaned up;

- In SpiBuildDeviceMap():

* support new peripheral type names, as documented in the links in the comments;

* fix the "CommunicationsPeripheral" name (communication'S') as documented, and as done in windows' scsiport driver.

[SCSIPORT]: Code formatting in the functions I'm going to touch next (in addition, add few "continue;" inside some loops so that I can reduce the indent level of code blocks).
[UXTHEME] -Use and RTL handle table for HTHEME handles. In this way we can ensure that a value we take is valid even if it is non NULL. We can also detect leaks.
    • -8
    • +18
    • -14
    • +12
    • -26
    • +41
    • -13
    • +91
    • -0
    • +12
[UXTHEME] Greatly reduce the number of times we open the theme data for the non client area.

- Implement OTD_NONCLIENT for OpenThemeDataEx and OpenThemeDataFromFile.

- Open the WINDOW or the SCROLLBAR theme classes only when needed. Use OpenThemeDataEx instead of the internal MSSTYLES_OpenThemeClass. Cache the open theme in the WND_DATA for later use.

    • -5
    • +5
    • -4
    • +4
    • -5
    • +68
Forgot to add the cmake changes

- Add a rather messy header that I've been slowly building as I'm starting to understand the internals.

- Mostly taken from the MS PDBs and info gained from OSR and Alex Carp's blog. (https://fsfilters.blogspot.co.uk)

    • -0
    • +284

- Implement FltCreateCommunicationPort, FltCloseCommunicationPort, FltCloseClientPort, and stub FltSendMessage

- Add two new object types for the server port and client ports

- Implement object type callbacks for closing and deleting these new ports

- Create the comms object and create the symbolic link (FltMgrMsg) to allow usermode to open a handle to the comms layer (aka FilterConnectCommunicationPort)

- Although untested, the comms layer objects should be mostly setup, and we should be able to open a connection from usermode.

    • -0
    • +373

- Implement FltAcquirePushLockExclusive, FltAcquirePushLockShared and FltReleasePushLock. Lifted from ntos' internal pushlock routines.

- Implement FltpObjectPointerReference and partially implement FltpObjectPointerDerference

    • -0
    • +113
[UXTHEME] -Rename WND_CONTEXT to WND_DATA to avoid confusion with the DRAW_CONTEXT. The WND_DATA is information valid throughout the life of a window and DRAW_CONTEXT is information throughout a draw operation in the non client area of the window.
    • -66
    • +66
    • -21
    • +21
    • -45
    • +45

- Add the missing IOCTLs that were added to fltlib

    • -15
    • +43
[NTOS]: Use the correct access rights for ZwOpenDirectoryObject call.
    • -1
    • +1
[NTOS]: Close an opened handle after usage.
    • -1
    • +4

- Implement FilterConnectCommunicationPort

- Add the remaining IOCTLs fltlib sends to the fltmgr

    • -0
    • +6
    • -0
    • +2
    • -0
    • +180
    • -71
    • +0
    • -1
    • +13

- Add custom draw function for the codepages listview.

- User gray text color for codepages that cannot be uninstalled.


    • -6
    • +60

- Guard Ke386CallBios calls against concurrent execution.


[UXTHEME] -Remove a debug print that was never meant to be committed.
    • -2
    • +0
[UXTHEME] -Apply some suggestions by Thomas.
    • -3
    • +3
[MSTSC] Addendum to r74577. CORE-13263
[MSTSC] Fix BSOD when we can't acquire context from CryptoAPI. CORE-13263 #resolve
[USETUP]: Implement most of the "upgrade" page (where existing NTOS installations are listed).

- Modify a bit the page flow so that the upgrade page is inserted before the Device-settings page, and after the Install-Intro page.

- Insert some extra 'RepairUpdateFlag' checks in SelectPartitionPage() and InstallDirectoryPage() to take specific actions in case the flag is TRUE.

- As overviewed in r74573, move 'TempPartition' and 'FormatState' back to USETUP.

    • -0
    • +15
[USETUP]: Massage the USETUP interface code:

- The "intro" page is renamed into the "Welcome" page, because its corresponding resource indeed is the welcome screen;

- Because the "setup start" page can only be displayed once, move it out of the while-loop, and use its result as the initial value of the 'Page' variable.

- Remove unneeded _PAGE_NUMBER_DEFINED guards;

- Add a DPRINT in the RepairUpdateFlag case of RegistryPage() (because we don't implement yet a correct upgrading or repairing of the registry.

- Use the previously-introduced 'PreparePartitionForFormatting()' function; set the FormatState of the newly-formatted partition to Formatted.

- In InstallIntroPage(), display the page itself only if needed (i.e. after all the validation checks & repair/update or unattended checks are done). Similar modifications are done also in DeviceSettingsPage(), SelectPartitionPage()

- Remove the hackish call to CreateFileSystemList() in SelectFileSystemPage().

- Turn both CheckUnattendedSetup() and UpdateKBLayout() into static functions.

- Put large "case"-blocks into brackets.

- Fix the code of ScsiControllerPage() so that it can be compiled if needed, and add a dummy OemDriverPage().

[USETUP]: Fix some spacings in the french translation.
[USETUP]: Consolidate the PartList module of the setuplib.

- The 'FORMATMACHINESTATE FormatState' machine-state and the 'TempPartition' members of the partition list structure is purely a USETUP convenience, so remove them from the PARTLIST structure and move them back into USETUP.

- Attempt to recognize the filesystem (set the 'FileSystem' member of PARTENTRY) of partitions we are adding into the PARTLIST list.

- Fix the return value of the SelectPartition function, which is by the way completely broken (it doesn't do what it is supposed to do; alternatively its naming is completely wrong...).

[USETUP]: Consolidate the FsUtil module of the setuplib.

- Add a PreparePartitionForFormatting routine that sets the partition ID depending on the chosen filesystem.


- Avoid uninitialized ComputeHash variable in BlImgLoadImageWithProgress2

CORE-13265 #resolve