MSVC 19.44 output-file contract for precreated NTFS object and XML-analysis files

esa mlore 0 Reputation points
2026-11-08T10:11:31.38+00:00

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:

  1. Is populating these existing files supported under those restrictions?
  2. What access rights, sharing modes, creation dispositions and attribute requirements apply?
  3. Does either writer require deletion, superseding/replacing the target, or temporary-file rename into it? Is existing file identity, ownership and security preserved?
  4. Are transient, sibling, per-source, merge or helper files required in the output directory?
  5. 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?

Developer technologies | C++
Developer technologies | C++

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.

0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.