Repository navigation
M4: C31 Dokany check, M4 row audit, webdav-tune hook - #2
Merged
Merged
Conversation
C31 (first week of M4): dumpbin /dependents on dokan2.dll from the pinned v2.3.1.1000 Dokan_x86, Dokan_x64 and Dokan_ARM64 MSIs. Every architecture imports KERNEL32, USER32, ADVAPI32 and SHELL32 only, with no VC++ runtime, so D32 selects the official per-arch MSIs and the VC++ redistributable is not a prerequisite for GPO/Intune. Package and DLL hashes are recorded in docs/dev/m4-notes.md. docs/dev/m4-notes.md also audits the M4 milestone row requirement by requirement (done, partial, missing or blocked, with evidence). webdav-tune (C28) was a silent no-op. --apply now sets the WebClient FileSizeLimitInBytes (0xFFFFFFFF) and FileAttributesLimitInBytes (100000000) after recording the previous values once in service\state\webdav-tune.ini. --revert restores them (deleting values that were absent) and removes the record. BasicAuthLevel is never touched. The hook fails closed on a value of another type or a damaged record. Tests: five new cases in tests/apps/test_hooks.c run the real hook through sd-test-host-fake.exe, redirected to an HKCU key and a temporary ProgramData folder. Gate: tools/ci-local.ps1 passes on x64-modern, x64-xp, x86-ia32, x86-sse2 and x64-analysis (dokany.mount skipped under WOW64 on the x86 presets, as expected).
An arm64 or arm32 tree with SD_BUILD_MSI takes sd-msigen, sd-msiembed and sd-test-msi from its nested x64 host-tools build, so it builds its own MSI and runs the msi.* checks on the x64 host. - packaging/msi: arm64 and arm32 rows of the flavour table (04 section 8.2). ARM64 also carries the x86-sse2 shell extension in the 32-bit view. - ShellDrive.wxs: SD_UI and SD_DOKANY defines. The ARM32 package has Core and Autostart only and no Dokany option. Its launch condition refuses Windows RT and builds 26100 and later. - sd-msigen registry --ui no drops the shell extension and App Paths rows. - New installer string msi.os.arm32 in all six catalogs. - sd-test-msi: ui and platform arguments; ARM32 layout and launch condition checks; the admin image checks the PE machine of shelldrive.exe. - ARM ctest presets select ^msi[.]; ci-local builds the ARM MSIs when WiX is installed and runs their checks in Release. Gate: tools/ci-local.ps1 green on x64-modern, x64-xp, x86-ia32, x86-sse2, x64-analysis, arm64 and arm32 (msi.arm64.* and msi.arm32.* pass).
…4, arm32 A matrix include marks the four MSI entries. Each one checks for WiX 3.14 on the runner, configures with SD_BUILD_MSI=ON, runs the msi.* checks in Release and uploads the package. On arm64 and arm32 these checks are the only Release tests. x64-modern and arm64 now also install v141_xp, which the x86-sse2 shell extension in their MSI needs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First pass of milestone M4 ("Packaging and updates",
docs/design/00-integration-review.md§6).C31: Dokany VC++ dependency (first-week check)
dumpbin /dependentsondokan2.dllfrom the pinnedv2.3.1.1000Dokan_x86.msi,Dokan_x64.msiandDokan_ARM64.msi(each expanded withmsiexec /a). Every architecture imports onlyKERNEL32,USER32,ADVAPI32andSHELL32, with no VC++ runtime.DokanSetup.exebundle is not needed.Package and DLL SHA-256 values are recorded in
docs/dev/m4-notes.md.M4 row audit
docs/dev/m4-notes.md→ "M4 row audit" goes through the M4 row requirement by requirement (done / partial / missing / blocked, with evidence).Main open items:
TRANSFORMS(C43).dokany.lockis missing.Gap closed:
webdav-tune(C28)webdav-tunewas a silent no-op, so per-machine installs kept WebClient's 50 MB file and 1 MB PROPFIND limits.--applysetsFileSizeLimitInBytes = 0xFFFFFFFFandFileAttributesLimitInBytes = 100000000. It first records the original values, once, inservice\state\webdav-tune.ini; repair runs keep that first record.--revertrestores the originals (deleting values that were absent before) and removes the record.BasicAuthLevelis never touched.The MSI custom actions were already authored.
Tests
tests/apps/test_hooks.crun the real hook throughsd-test-host-fake.exe. They are redirected to an HKCU key and a temporary ProgramData folder, so no machine state is touched.tools/ci-local.ps1passes onx64-modern,x64-xp,x86-ia32,x86-sse2andx64-analysis.dokany.mountis skipped under WOW64 on the x86 presets, as expected.SD_SSH_WSL_FIXTURE_DIR); the notes explain why a worktree needs that.Open decisions (not taken here)
msitarget in this milestone, or deferred to M6 with ARM64?x86-ia32/x86-sse2/x64-xp/x64-modernpayloads in one EXE) be assembled in CMake or only in the release pipeline?ARM64 and ARM32 MSIs (D31, commit 636fa87)
SD_BUILD_MSIbuild their MSI. They use thesd-msigen,sd-msiembedandsd-test-msitools from their nested x64 host-tools build.CoreandAutostart), with no Dokany option. Its launch condition refuses Windows RT and Windows 11 24H2 or later (build 26100+). It adds one new installer string, localized in all six locales.msi.arm64.*andmsi.arm32.*pass on the x64 host: tables, admin image with a PE machine check, and wixui. The ARM ctest presets now select^msi[.].tools/ci-local.ps1passes on x64-modern, x64-xp, x86-ia32, x86-sse2, x64-analysis, arm64 and arm32.