Skip to content

Note Reserved1 field in DSTORAGE_REQUEST_OPTIONS#2167

Open
MarijnS95 wants to merge 2 commits into
MicrosoftDocs:docsfrom
MarijnS95:patch-2
Open

Note Reserved1 field in DSTORAGE_REQUEST_OPTIONS#2167
MarijnS95 wants to merge 2 commits into
MicrosoftDocs:docsfrom
MarijnS95:patch-2

Conversation

@MarijnS95
Copy link
Copy Markdown

@MarijnS95 MarijnS95 commented Mar 12, 2026

While the notes down below mention this UINT8[7] Reserved1 field, it's not in the top-level struct "declaration sample" making it very confusing to relate how the fields are laid out (with the recent addition of GACL shuffle transform); especially because Reserved : 48 was mentioned.

Also note that that 48 was likely a typo; the field size is 56 such that together with SourceType : 1 and DestinationType : 7 it forms a full 64-bit integer.

…UEST_OPTIONS`

While the notes down below mention this `UINT8[7] Reserved1` field, it's not in the top-level struct "declaration sample" making it very confusing to relate how the fields are laid out (with the recent addition of GACL shuffle transform); especially because `Reserved : 48` was mentioned. 

Also note that that `48` was likely a typo; the field size is `56` such that together with `SourceType : 1` and `DestinationType : 7` it forms a full 64-bit integer.
@MarijnS95 MarijnS95 changed the title Note Reserved1 field and fix Reserved field size in `DSTORAGE_REQ… Note Reserved1 field and fix Reserved field size in DSTORAGE_REQUEST_OPTIONS Mar 12, 2026
@prmerger-automator
Copy link
Copy Markdown
Contributor

@MarijnS95 : Thanks for your contribution! The author(s) and reviewer(s) have been notified to review your proposed change.

@prmerger-automator
Copy link
Copy Markdown
Contributor

@MarijnS95 : Thanks for your contribution! The author(s) and reviewer(s) have been notified to review your proposed change.

@GrantMeStrength
Copy link
Copy Markdown
Contributor

Thanks for the contribution @MarijnS95 — you're right that Reserved1[7] should be in the struct declaration. The NuGet changelog confirms it was intentionally added to make the in-memory layout explicit.

However, the Reserved : 48 → 56 change appears to be incorrect. The actual dstorage.h header has Reserved : 48. While it's true that 1 + 7 + 48 = 56 doesn't fill the full 64-bit storage unit, that's intentional — C++ bitfields don't need to fill their underlying type. The 8 unused bits are just padding.

Could you update the PR to keep the Reserved1[7] addition but revert the Reserved field back to : 48? That would make this mergeable.

@MarijnS95
Copy link
Copy Markdown
Author

Hi @GrantMeStrength; the reason I corrected that is because it is listed (corrected) that way in the 1.4.0 preview as well. But by that logic the new Gacl field might need to be mentioned as well even though the release is still in preview.

Let me know if that justifies this change, or if it should really be undone and reapplied when the 1.4.0 headers come out of preview.

@GrantMeStrength GrantMeStrength requested a review from Copilot April 15, 2026 18:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the DirectStorage documentation for DSTORAGE_REQUEST_OPTIONS to make the struct layout clearer and correct the reserved bitfield width.

Changes:

  • Added the missing UINT8[7] Reserved1 field to the top-level declaration sample.
  • Corrected Reserved bitfield size from 48 to 56 to complete a 64-bit block with the other bitfields.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

@GrantMeStrength GrantMeStrength left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the missing Reserved1[7] field — that part is correct and matches the actual SDK header.

However, Reserved : 48 should stay as 48, not 56. Two independent mirrors of the current DirectStorage header both show UINT64 Reserved : 48. The 64-bit block is 1+7+48=56 bits, with 8 bits intentionally left for future use.

The PR author's reasoning ("1+7+56=64 fills the full UINT64") assumes no slack bits, but the actual SDK deliberately leaves those 8 bits unused.

Please revert the bit count change and the Reserved1[7] addition will be a clean, correct fix on its own.

@GrantMeStrength GrantMeStrength requested a review from Copilot April 15, 2026 18:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@GrantMeStrength
Copy link
Copy Markdown
Contributor

Thanks for the context @MarijnS95. The 1.4.0 preview headers do show 56 — but the current released SDK (10.0.26100.0) still has Reserved : 48, and we document the released API, not previews. Once 1.4.0 ships, we can update it then. Could you revert Reserved : 56 back to Reserved : 48 while keeping the Reserved1[7] addition? That would let us merge this now.

@MarijnS95 MarijnS95 changed the title Note Reserved1 field and fix Reserved field size in DSTORAGE_REQUEST_OPTIONS Note Reserved1 field in DSTORAGE_REQUEST_OPTIONS Apr 15, 2026
@GrantMeStrength GrantMeStrength requested a review from Copilot May 1, 2026 22:03
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 52 to 54
DSTORAGE_REQUEST_SOURCE_TYPE SourceType : 1;
DSTORAGE_REQUEST_DESTINATION_TYPE DestinationType : 7;
UINT64 Reserved : 48;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants