PRB: RPC Numeric Endpoints Should Not Contain Leading Zeros (256881)
The information in this article applies to:
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Professional
- Microsoft Windows 98
- Microsoft Windows NT Server 4.0
- Microsoft Windows NT Workstation 4.0
This article was previously published under Q256881 SYMPTOMS
When you run a RPC program on a Microsoft Windows NT 4.0-based computer or a Microsoft Windows 2000-based computer, if the remote program runs on a Microsoft Windows 95-based computer or a Microsoft Windows 98-based computer, the use of numeric endpoints, which contain leading zeros, causes RPC calls to fail with error 1722:
(RPC_S_SERVER_UNAVAILABLE).
CAUSE
In C or C++, a number with a leading zero is normally considered an octal number. For instance, 03322 should be interpreted as decimal 1746.
On Windows 95-based computers or Windows 98-based computers, a numeric endpoint with a leading zero is interpreted as an octal number by the RPC run-time. On a Windows NT 4.0-based computer or a Microsoft Windows 2000-based computer, however, all leading zeros in a numeric endpoint are stripped off and the number is interpreted by the RPC run-time as decimal.
RESOLUTION
To resolve the problem, numeric RPC endpoints should not contain leading zeros, whether the endpoints are specified interactively or through an Interface Definition Language (IDL) file.
STATUS
This behavior is by design.
REFERENCES
For more information, refer to the "Specifying Endpoints" topic in the Microsoft Developer Network (MSDN) RPC online documentation.
Modification Type: | Minor | Last Reviewed: | 12/20/2004 |
---|
Keywords: | kbDSWNET2003Swept kbAPI kbnetwork kbprb kbRPC KB256881 |
---|
|