There's only three weeks to go till Launch Day. Today, we're going to talk about the Dynamic Link Library (DLL) Loader and Address Space Load Randomization. In Windows Vista and Windows Server 2008, when talking about process and thread creation, it is important to understand the role of the DLL Loader. The user-mode DLL Loader is invoked every time a process or thread is created to complete the following tasks related to the DLL's required by the process or thread as needed:
* Determine appropriate DLL load order and resolve dependencies
* Load all required DLLs
* Unload DLLs when they are no longer needed
Starting with Windows Vista, there were several improvements made to the DLL Loader that provide benefits such as improved process creation time and fewer reboots as a result of system DLL servicing. Let's look at each of these in turn beginning with the improved process creation time. When you think about process creation, a significant portion of the creation time is spent resolving DLL dependencies and processing DLL imports. Improvements to import processing algorithms have reduced processing time significantly. For some applications that are heavily dependent on DLL's, the end-to-end process creation time may be improved by as much as ten percent.
|