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