You should use module handles to identify dlls, not file names.
Okay.
You can use GetModuleHandle to find out if a dll is loaded already.
I'm not sure that's safe: if the calling application has loaded a dll containing a SIP already, calls CryptSIPLoad, unloads the dll, then calls a function via the SIP, it'll fail. If I want to make sure that doesn't happen, I should LoadLibrary myself, yes? Then I'm forced to search by name myself, am I not?
Thanks, --Juan