X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=imports.cpp;h=18c8bb0372484da8a919bba906ecfb0c10d8d82d;hb=aece13df3cc7a17d5827cc59fc59c13538b52517;hp=d0970bdc8a894d5e28c87921c5e03bb1ed731e1f;hpb=565d5e4871c26bebf0417f290a21e449a6b049e0;p=nssm.git diff --git a/imports.cpp b/imports.cpp index d0970bd..18c8bb0 100644 --- a/imports.cpp +++ b/imports.cpp @@ -69,10 +69,24 @@ int get_imports() { } else if (error != ERROR_MOD_NOT_FOUND) return 1; + imports.advapi32 = get_dll(_T("advapi32.dll"), &error); + if (imports.advapi32) { + imports.CreateWellKnownSid = (CreateWellKnownSid_ptr) get_import(imports.advapi32, "CreateWellKnownSid", &error); + if (! imports.CreateWellKnownSid) { + if (error != ERROR_PROC_NOT_FOUND) return 6; + } + imports.IsWellKnownSid = (IsWellKnownSid_ptr) get_import(imports.advapi32, "IsWellKnownSid", &error); + if (! imports.IsWellKnownSid) { + if (error != ERROR_PROC_NOT_FOUND) return 7; + } + } + else if (error != ERROR_MOD_NOT_FOUND) return 5; + return 0; } void free_imports() { if (imports.kernel32) FreeLibrary(imports.kernel32); + if (imports.advapi32) FreeLibrary(imports.advapi32); ZeroMemory(&imports, sizeof(imports)); }