7 Appendix B: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include released service packs.

  • Windows 2000 operating system

  • Windows XP operating system

  • Windows XP Professional x64 Edition operating system

  • Windows Server 2003 operating system

  • Windows Vista operating system

  • Windows Server 2008 operating system

  • Windows 7 operating system

  • Windows Server 2008 R2 operating system

  • Windows 8 operating system

  • Windows Server 2012 operating system

  • Windows 8.1 operating system

  • Windows Server 2012 R2 operating system

  • Windows 10 operating system

  • Windows Server 2016 operating system

Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product 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 2.1.2: Except in Windows 2000, Windows XP, and Windows Server 2003 prior to Windows Server 2003 operating system with Service Pack 1 (SP1), the following behavior applies: When using ncacn_np as the RPC protocol sequence, the client first attempts to use an authentication level of "Packet Privacy" and the Authentication Service "Simple and Protected GSS-API Negotiation Mechanism". If this fails, the client retries by using an authentication level of "Connection" and the "Simple and Protected GSS-API Negotiation Mechanism" Authentication Service.

<2> Section 2.2.4: The KEY_WOW64_32KEY and KEY_WOW_64_64KEY rights do not apply to Windows 2000 and Windows XP (except Windows XP 64-Bit Edition operating system).

<3> Section 3.1.1.4: All 64-bit editions of Windows support both 32-bit and 64-bit key namespaces.

<4> Section 3.1.1.4: The following versions of Windows do not return an error because they assume that the client is requesting access to a key in the 64-bit key namespace:

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

<5> Section 3.1.1.4: The following Windows versions postpone the copy until the handle to the key is closed.

  • Windows 2000

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

<6> Section 3.1.1.4: Remote registry servers running Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008 do not ignore client requests to operate on the 32-bit key namespace for the listed keys.

<7> Section 3.1.5.1: The 64-bit editions of the following versions of Windows do not return ERROR_INVALID_PARAMETER when both the KEY_WOW64_64KEY and KEY_WOW64_32KEY are set in the samDesired parameter. These versions of Windows assume the client is requesting access to a key in the 64-bit key namespace:

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

<8> Section 3.1.5.3: The following versions of Windows do not return ERROR_INVALID_PARAMETER when both the KEY_WOW64_64KEY and KEY_WOW64_32KEY are set in the samDesired parameter. These versions of Windows assume the client is requesting access to a key in the 64-bit key namespace:

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

<9> Section 3.1.5.7: Windows servers check whether lpClass is equal to NULL. Although this situation is forbidden by the RPC specification and cannot occur through normal operation, Windows servers check for this condition and return ERROR_INVALID_PARAMETER as a defense against malicious clients that bypass the RPC infrastructure.

<10> Section 3.1.5.7: The 64-bit editions of the following versions of Windows do not return ERROR_INVALID_PARAMETER when both the KEY_WOW64_64KEY and KEY_WOW64_32KEY are set in the samDesired parameter. These versions of Windows assume that the client is requesting access to a key in the 64-bit key namespace:

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

<11> Section 3.1.5.9: Windows servers check whether lpValueName is equal to NULL. Although this situation is forbidden by the RPC specification and cannot occur through normal operation, Windows servers check for this condition and return ERROR_INVALID_PARAMETER as a defense against malicious clients that bypass the RPC infrastructure.

<12> Section 3.1.5.15: A single registry key can be opened only 65,534 times (18,446,744,073,709,551,615 on Windows Server 2003 operating system with Service Pack 2 (SP2), Windows Vista, and Windows Server 2008). When attempting the 65535th (18,446,744,073,709,551,616th on Windows Server 2003 SP2, Windows Vista, and Windows Server 2008) open operation, this function fails with ERROR_NO_SYSTEM_RESOURCES.

<13> Section 3.1.5.15: The following versions of Windows do not return ERROR_INVALID_PARAMETER when both KEY_WOW64_64KEY and KEY_WOW64_32KEY are set in the samDesired parameter. These versions of Windows assume the client is requesting access to a key in the 64-bit key namespace:

  • Windows XP

  • Windows Server 2003

  • Windows Server 2008

  • Windows Vista

<14> Section 3.1.5.17: If the lpData buffer size, as indicated by the client in the lpcbData parameter, is too small for the requested information, Windows Remote Registry Servers will set the lpData parameter to NULL and return the size of the value, in bytes, in the lpcbData parameter.

<15> Section 3.1.5.18: The format of Windows file names is as specified in Filenames in Chapter 12 of [WININTERNALS]. Windows file names can be up to 255 characters long and for Windows registry server methods MUST be specified as full file paths relative to the registry server instance. For example, to specify the "regfile.reg" file in the "C:\testfiles" directory on the C: volume of the registry server, the file name is specified as "C:\testfiles\regfile.reg".

<16> Section 3.1.5.18: The format of Windows file names is as specified in Filenames in Chapter 12 of [WININTERNALS]. Windows file names can be up to 255 characters long and for Windows registry server methods are specified as full file paths relative to the registry server instance. For example, to specify the "regfile.reg" file in the "C:\testfiles" directory on the C: volume of the registry server, the file name is specified as "C:\testfiles\regfile.reg".

<17> Section 3.1.5.18: Changes to the registry information take effect after restarting the computer.

<18> Section 3.1.5.18: Windows-based registry servers require the files referred to by lpNewFile and lpOldFile to be located on the same disk volume as the OS instance hosting the registry server (for example, "boot disk"). If this condition is not met, the method fails with ERROR_NOT_SAME_DEVICE (0x11).

<19> Section 3.1.5.19: The format of Windows file names is as specified in "Filenames" in Chapter 12 of [WININTERNALS]. Windows file names can be up to 255 characters long and for Windows registry server methods MUST be specified as full file paths relative to the registry server instance. For example, to specify the "regfile.reg" file in the "C:\testfiles" directory on the C: volume of the registry server, the file name is specified as "C:\testfiles\regfile.reg".

<20> Section 3.1.5.19: For Windows NT operating system, this value is not supported.

<21> Section 3.1.5.19: The format of Windows file names is as specified in "Filenames", chapter 12 of [WININTERNALS]. Windows file names can be up to 255 characters long, and for Windows registry server methods MUST be specified as full file paths relative to the registry server instance. For example, the name of file "regfile.reg" in the "C:\testfiles" directory on the C: volume of the registry server is specified as "C:\testfiles\regfile.reg".

<22> Section 3.1.5.20: The format of Windows file names is as specified in "Filenames" in Chapter 12 of [WININTERNALS]. Windows file names can be up to 255 characters long and for Windows registry server methods MUST be specified as full file paths relative to the registry server instance. For example, to specify the "regfile.reg" file in the "C:\testfiles" directory on the C: volume of the registry server, the file name is specified as "C:\testfiles\regfile.reg".

<23> Section 3.1.5.24:  Itanium-based and x64-based versions of Windows Server 2003 with SP1, Windows Vista, and Windows Server 2008 return 6 to denote the 64-bit version of the registry. In addition, Windows XP 64-Bit Edition also returns 6 to denote the 64-bit version of the registry.

All other x86 and Itanium-based versions of Windows return 5.

Show: