title: How does LoadLibrary distinguish between different versions of the same DLL?
body: <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>