Microsoft KB Archive/278046

From BetaArchive Wiki

Article ID: 278046

Article Last Modified on 2/21/2007



APPLIES TO

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition



This article was previously published under Q278046

SYMPTOMS

A program that registers a callback method to a DCOM object may not register a callback method after a restart. The failure response that is returned to the program is E_OUTOFMEMORY.

CAUSE

The remote server saves information about the client when the client initially registers its callback method. On restarting the client, the server can incorrectly attempt to contact the client by using old context information. Typically, if the client is restarted while network connectivity exists with the RPC server, the server becomes aware of this situation and discards the client context. If, however, the client restart occurs when network connectivity is not established (for example, when a RAS client is dropped or the client is physically powered off), the RPC server does not become aware that the client has terminated, which can lead to this problem.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack


The English version of this fix should have the following file attributes or later:

   Date        Time    Version        Size     File name
   ------------------------------------------------------
   4/30/2001   08:02p  5.0.2195.3556  427,280   Rpcrt4.dll



WORKAROUND

The RPC program can retry the method that returned the E_OUTOFMEMORY response. This will eventually force the RPC server to discard the improper client context information. It may be necessary to retry the method as many as 40 times.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.

MORE INFORMATION

For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 The Datacenter Program and Windows 2000 Datacenter Server Product


For additional information about how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot


Examination of the RPC packets reveals that the server attempts to issue an RPC Bind to the client, which is met with an RPC Bind NAK by the client. This in turn causes the original RPC request to the server to be returned as an RPC fault with a status of 0x8007000E.

The packets look similar to:

Client -> Server : MSRPC: c/o RPC Request:      call 0x5  opnum 0x6 
context 0x1  hint 0x1BE

Server -> Client : MSRPC: c/o RPC Bind:         UUID 
12341234-1234-1234-1234-123412341234  call 0x5  assoc grp 0xA731  xmit 
0x16D0  recv 0x16D0

Client -> Server : MSRPC: c/o RPC Bind Nak:     call 0x5  reject reason 

(Reason not specified)

Server -> Client : MSRPC: c/o RPC Fault:        call 0x5  context 0x1  
status 0x8007000E  cancels 0x0
                    

For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes



Additional query words: kbNetworking

Keywords: kbhotfixserver kbqfe kbbug kbfix kbnetwork kbwin2000presp3fix kbwin2000sp3fix KB278046