What? Entry point not found?
One common, confusing and sometimes panic-inducing error message that appears in Windows 2000 is when a user attempts to execute an application and is greeted with the following error:
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
"Entry Point Not Found. The procedure entry point <procedurename> could not be located in the dynamic link library KERNEL32.DLL."
Because of the wording of the error message, it may inspire people to believe that KERNEL32.DLL is damaged in some way, and is missing some critical function. The real explanation is usually somewhat more benign.
Many .DLLs depend on function calls in the kernel (that's what the error message refers to as a "procedure entry point") to accomplish certain tasks. Some of these functions exist only in specific versions of Windows, such as Windows 98 or Windows Me. In Windows 2000, these "missing" functions may be rolled into other functions, or may simply not exist. The .DLL usually has no way of knowing this and will simply put the call through, yielding this error. The SetHandleContext() API is one such function call.
Generally this happens when an application is written and compiled for Windows 9x, without proper regard for compatibility with other versions of Windows. In some instances this is unavoidable, but generally speaking, it is possible to write the vast majority of generic applications to run transparently on all 32-bit versions of Windows. Often what will happen is a .DLL written specifically for another version of Windows will come packaged with a particular application, and the installer will not correctly sense that the host OS requires a different edition of the DLL. Many games written for Win98 will yield this error when run on Win2K, and some network applications written for Win98 will also return it if they came bundled with an older version of Winsock.DLL.
The solution is usually to find an upgraded version of the program that is written to run on Win2K as well as Win98, or to replace the offending .DLL, making the function call with one that works with Win2K APIs.
Note that Windows XP has a special trapping mechanism that redirects most, if not all, invalid entry-point errors, so they are handled by the correct kernel routines.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.