A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
MSVC 19.44 output-file contract for precreated NTFS object and XML-analysis files
Is there a documented, build-applicable contract—or an appropriate Microsoft contact—for the following output-file compatibility question?
Toolchain: cl.exe FileVersion 19.44.35209.0, ProductVersion 14.44.35209.0, from the self-contained Windows 25H2 EWDK with kit 10.0.26100.0.
One C source per invocation, using:
/c /kernel /TC /std:c17 /Z7 /analyze /analyze:WX-
/Fo"<object-file>"
/analyze:log "<analysis-file>"
/analyze:log:format:xml
The proposed targets are precreated, empty, SYSTEM-owned regular NTFS files. The compiler would have FILE_GENERIC_READ | FILE_GENERIC_WRITE, but no DELETE, WRITE_DAC or WRITE_OWNER. The output directory would grant no FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY or FILE_DELETE_CHILD. Temporary work would have a separate permitted TMP location.
Please address /Fo object output and the XML-analysis-log writer separately:
- Is populating these existing files supported under those restrictions?
- What access rights, sharing modes, creation dispositions and attribute requirements apply?
- Does either writer require deletion, superseding/replacing the target, or temporary-file rename into it? Is existing file identity, ownership and security preserved?
- Are transient, sibling, per-source, merge or helper files required in the output directory?
- Do these requirements differ on normal completion, error or cancellation paths? If incompatible, which specific operation or right causes the incompatibility?
The published option references establish final output-path selection and XML format, but I have not found guarantees about the underlying opening, sharing or replacement behavior. No restricted-permission compiler experiment is being claimed.
Could you point to an authoritative contract applicable to this build, or the appropriate Microsoft team/contact for clarification?