@H_404_3@现在开始仔细地分析GDI32.DLL@H_404_3@的实现代码,看看这里的API@H_404_3@函数是怎么样实现的,又做了些什么样的工作,然后才能深入地了解WIN32K.SYS@H_404_3@所需要做的工作。在ReactOS@H_404_3@操作系统里,所有DLL@H_404_3@库都有一个默认的首先加载函数函数,名称叫做DllMain@H_404_3@。这个函数是操作系统加载DLL@H_404_3@时就调用,那么我们就从这个函数开始分析,这是DLL@H_404_3@最先的入口点函数。它的实现代码如下:
#001@H_404_3@ BOOL
#002@H_404_3@ WINAPI
#003@H_404_3@ DllMain (
#004@H_404_3@ HANDLE@H_404_3@ hDll,
#005@H_404_3@ DWORD@H_404_3@ dwReason,
#006@H_404_3@ LPVOID@H_404_3@ lpReserved)
#007@H_404_3@ {
#008@H_404_3@ switch (dwReason)
#009@H_404_3@ {
@H_404_3@当进程加载动态连接库时发出这个消息。
#010@H_404_3@ case DLL_PROCESS_ATTACH :
@H_404_3@在这里调用函数DisableThreadLibraryCalls@H_404_3@来禁止线程创建和退出时调用本函数。
#011@H_404_3@ DisableThreadLibraryCalls(hDll);
#012@H_404_3@ break;
#013@H_404_3@
#014@H_404_3@ default:
#015@H_404_3@ break;
#016@H_404_3@ }
#017@H_404_3@ return TRUE;
#018}