What is 0xC0000263

 
Previous Next
STATUS_DRIVER_ORDINAL_NOT_FOUND STATUS_RESOURCE_NOT_OWNED

STATUS_DRIVER_ENTRYPOINT_NOT_FOUND

An entry point is a function within a device driver that can be called by an external entity to get access to some driver functionality or to operate a device. Each device driver provides a standard set of functions as entry points.

That global initialization is the responsibility of the DriverEntry routine.

DriverEntry have to be set as entrypoint by linker at generating Portable Executable (PE) binary file. Otherwise Windows kernel driver loader generates STATUS_DRIVER_ENTRYPOINT_NOT_FOUND (0xC0000263) error.

When a driver is loaded, its DriverEntry routine is called with a pointer to the driver object. When a driver's DriverEntry routine is called, it sets Dispatch, StartIo (if any), and Unload (if any) entry points directly in the driver object

extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) { ... }

link /ENTRY

The /ENTRY option specifies an entry point function as the starting address for an .exe file or DLL.

The function must be defined to use the __stdcall calling convention. The parameters and return value depend on if the program is a console application, a windows application or a DLL. It is recommended that you let the linker set the entry point so that the C run-time library is initialized correctly, and C++ constructors for static objects are executed.

PE executable and STATUS_DRIVER_ENTRYPOINT_NOT_FOUND (0xC0000263<)

If the /DLL or /SUBSYSTEM option is not specified, the linker selects a subsystem and entry point depending on whether main or WinMain is defined.

The functions main, WinMain, and DllMain are the three forms of the user-defined entry point.

When creating a managed image, the function specified to /ENTRY must have a signature of (LPVOID var1, DWORD var2, LPVOID var3).