6 Appendix A: Product Behavior
The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.
The terms "earlier" and "later", when used with a product version, refer to either all preceding versions or all subsequent versions, respectively. The term "through" refers to the inclusive range of versions. Applicable Microsoft products are listed chronologically in this section.
Windows 8.1 operating system
Windows Server 2012 R2 operating system
Windows 10 operating system
Windows Server 2016 operating system
Windows Server 2019 operating system
Windows Server 2022 operating system
Windows 11 operating system
Windows Server 2025 operating system
Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.
Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.
<1> Section 1.7: The following table illustrates Windows operating system versions that support RSVD clients and RSVD servers.
RSVD client |
RSVD server |
---|---|
Windows 8.1 Windows Server 2012 R2 Windows 10 Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows 11 Windows Server 2025 |
Windows Server 2012 R2 Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025 |
<2> Section 3.1.3: Windows 8.1 and Windows Server 2012 R2 set ClientServiceVersion to RSVD Protocol version 1(0x00000001). Windows 10 and later, Windows Server 2016 operating system and later set ClientServiceVersion to RSVD Protocol version 2(0x00000002).
<3> Section 3.1.3: Windows-based RSVD clients initialize to zero.
<4> Section 3.1.4.9: Microsoft Windows applications set unspecified bits in SrbFlags in addition to the specified bits in section 2.2.4.7. All bits set in SrbFlags are ignored for processing by Windows servers as specified in section 3.2.5.5.5.
<5> Section 3.1.4.9: Windows-based RSVD clients set Disposition to 0x01 when SrbFlags includes both SRB_FLAGS_DATA_IN and SRB_FLAGS_DATA_OUT.
<6> Section 3.2.2: The time-out on Windows–based servers is 700 milliseconds.
<7> Section 3.2.3: Windows Server 2012 R2 sets ServerServiceVersion to RSVD Protocol version 1 (0x00000001). Windows Server 2016 operating system and later set ServerServiceVersion to RSVD Protocol version 2(0x00000002).
<8> Section 3.2.5.1: Windows Server 2012 R2 without [MSKB-3025091] fails the operation with status code zero (0x00000000).
<9> Section 3.2.5.1: When the shared virtual disk file does not previously exist, Windows Server 2012 R2 operating system and later attempt to open with a create disposition which allows an empty file to be created. This in turn will cause the RSVD request to return STATUS_FILE_CORRUPT_ERROR.
<10> Section 3.2.5.1: If the OriginatorFlags in the request is 0x00000008, Windows-based RSVD servers will incorrectly set Open.IsVirtualSCSIDisk to FALSE.
<11> Section 3.2.5.1: Windows Server 2012 R2 without [MSKB-3025091] doesn't return SVHDX_OPEN_DEVICE_CONTEXT_RESPONSE.
<12> Section 3.2.5.3: Windows-based RSVD servers set SenseError.SrbStatus to 0x02, SenseError.ScsiStatus to 0x02, and SenseError.SenseData to 0xF00000000000000A000000000000000000000000.
<13> Section 3.2.5.3: Windows Server 2012 R2 without [MSKB-3025091] sets the returned sense data to an arbitrary value.
<14> Section 3.2.5.4: Windows-based RSVD servers set SenseError.SrbStatus to 0x02, SenseError.ScsiStatus to 0x02, and SenseError.SenseData to 0xF00000000000000A000000000000000000000000.
<15> Section 3.2.5.4: Windows Server 2012 R2 without [MSKB-3025091] sets the returned sense data to an arbitrary value.
<16> Section 3.2.5.5.3: Windows Server 2012 R2 sets the SenseInfoExLength field to 20 bytes.
<17> Section 3.2.5.5.4: Windows sets BlockSize to zero for DiskType VHD_TYPE_FIXED.
<18> Section 3.2.5.5.4: Windows sets LinkageID to zero.
<19> Section 3.2.5.5.5: Windows Server 2012 R2 operating system and later append [MaxOutputResponse – (size of SVHDX_TUNNEL_OPERATION_HEADER + size of SVHDX_TUNNEL_SCSI_RESPONSE)] number of bytes, all set to zeroes, at the end of the response.
<20> Section 3.2.5.5.5: Windows-based servers set the value of the Length field to 36.
<21> Section 3.2.5.5.5: Windows Server 2012 R2 returns 18 bytes of valid sense data, but sends a 20-byte buffer with the final 2 bytes set to any value.
<22> Section 3.2.5.5.7.3: Checks performed only after updating according to [MSFT-CVE-2022-26783] and [MSFT-CVE-2022-24490].
<23> Section 3.2.5.5.7.4: Checks performed only after updating according to [MSFT-CVE-2022-26783] and [MSFT-CVE-2022-24490].