How does LoadLibrary distinguish between different versions of the same DLL?
<p>I know that when LoadLibrary is called, it checks whether the DLL was already loaded, and if so it increments its reference count and returns a handle to it.</p>

<p>Now say I have loaded MyLibrary.dll and then replaced the implementation of one function inside, or even removed it completely, and loaded it again with LoadLibrary. What would happen?</p>

<p>Based on what does LoadLibrary know that a certain DLL was already loaded?<br>
What does it compare/check against? Is it just the DLL name and path?</p>