Pointer May Not Be Visible if an OpenGL Program Has Data in the Overlay Planes

This article was previously published under Q265253
This article has been archived. It is offered "as is" and will no longer be updated.
Under the following conditions, your pointer may not be visible:
  • Your driver receives a pointer shape that your hardware cannot support, for example, one that is too large, has too many colors, and so on.
  • A program is running with some data that is written in the overlay planes by using OpenGL.
When a driver declines a pointer because the hardware cannot support it, GDI draws the pointer by using DrvCopyBits() to the main planes and the overlay planes are unchanged. Because of this, if a program has data in the overlay planes, the cursor may not be visible.
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 theMicrosoft 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   ---------------------------------------------------------   03/22/2000  10:26 PM  5.0.2195.1333  221,968   Gdi32.dll   05/31/2000  04:45 PM  5.0.2195.2096  379,152   User32.dll   06/21/2000  07:54 PM  5.0.2195.2096  1,639,568 Win32k.sys   03/22/2000  10:27 PM  5.0.2195.1333  242,960   Winsrv.dll				

Microsoft has confirmed that this is a problem in Microsoft Windows 2000. This problem was first corrected in Windows 2000 Service Pack 2.
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
NOTE: This hotfix adds an ability to the driver so that the driver can move the pointer in hardware while other drawing is occurring on the device. If you want to be able to report GCAPS_ASYNCMOVE from your driver and for the other pointers, you cannot support this asynchronously. If you want to override this asynchronous behavior with the GCAPS_ASYNCMOVE flag, your driver must return (SPS_ACCEPT_NOECLUDE | SPS_ACCEPT_SYNCHRONOUS) when it accepts the pointer.

GCAPS_ASYNCMOVE: The driver can move the pointer in hardware while other drawing is occurring on the device.

Article ID: 265253 - Last Review: 10/20/2013 21:55:03 - Revision: 3.3

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbenv kbfix kbui kbwin2000presp2fix KB265253