<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The NT DLL loader: dynamic unloads</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx</link><description>To recap our story from last time: The NT DLL loader starts from some PE (either the main EXE or the DLL which is passed in to the LoadLibrary() API), walks the graph of static imports rooted with that first PE. You can think of the loader as then building</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: The NT DLL loader: dynamic unloads</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx#430566</link><pubDate>Sun, 19 Jun 2005 16:14:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430566</guid><dc:creator>LarryOsterman</dc:creator><description>How does delayload enter into the picture?  When an EXE with delay load imports finally does load the DLL, is the newly loaded DLL pinned, or is it treated like LoadLibrary?</description></item><item><title>re: The NT DLL loader: dynamic unloads</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx#430602</link><pubDate>Sun, 19 Jun 2005 21:29:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430602</guid><dc:creator>mgrier</dc:creator><description>Delayload is coming.  I'm trying to take a more organized approach to the brain dump I sent around internally.  First I wanted to explain normal non-reentrant behavior and what quirks come out of it - specifically the ordering problems when cycles are in the graph.&lt;br&gt;&lt;br&gt;Next I'm going to explain the ExitProcess() hazard; we have all the right tools to understand why not to do anything during ExitProcess() now.&lt;br&gt;&lt;br&gt;Then I'm going to go into loader reentrancy, starting again with deadlocks and then going into the problems with reentrancy (including delayloads used during DLL_PROCESS_ATTACH / DLL_PROCESS_DETACH).&lt;br&gt;&lt;br&gt;Then I'll finish up with the fact that sloppy error handling can tank the whole process when the code runs as part of DLL_PROCESS_ATTACH which will be exacerbated by the use of explicit (loadlibrary/getprocaddress) or implicit (linker delayloads) delay loading techniques.</description></item><item><title>re: The NT DLL loader: dynamic unloads</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx#430606</link><pubDate>Sun, 19 Jun 2005 21:38:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430606</guid><dc:creator>mgrier</dc:creator><description>After rereading Larry's comment and questions, I'll answer the pinning question.&lt;br&gt;&lt;br&gt;Delayloads are just wrappers around dynamic loads.  The loader doesn't know anything at all about them.  The fact that they do have a standard form documenting them in the PE header is just to assist analysis tools like depends.exe.&lt;br&gt;&lt;br&gt;Thus the answer is that they don't inherit any pinning.  Because of the problem where you can't know who your caller is, it's not possible to implicitly pin delayloads from pinned DLLs.</description></item><item><title>nt dll</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx#8572055</link><pubDate>Tue, 03 Jun 2008 22:58:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572055</guid><dc:creator>nt dll</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://christopherhome.yourfreehosting.net/ntdll.html"&gt;http://christopherhome.yourfreehosting.net/ntdll.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> mgrier s WebLog The NT DLL loader dynamic unloads | Weak Bladder</title><link>http://blogs.msdn.com/mgrier/archive/2005/06/18/430522.aspx#9740650</link><pubDate>Sat, 13 Jun 2009 03:05:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9740650</guid><dc:creator> mgrier s WebLog The NT DLL loader dynamic unloads | Weak Bladder</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://weakbladder.info/story.php?id=2492"&gt;http://weakbladder.info/story.php?id=2492&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>