kernel32: Fix two tests that fail in win2k3 and modify LoadLibraryEx to match this behavior.
This commit is contained in:
parent
b1ff962182
commit
731306bf78
|
@ -922,6 +922,12 @@ HMODULE WINAPI LoadLibraryExW(LPCWSTR libnameW, HANDLE hfile, DWORD flags)
|
||||||
UNICODE_STRING wstr;
|
UNICODE_STRING wstr;
|
||||||
HMODULE res;
|
HMODULE res;
|
||||||
|
|
||||||
|
if (hfile)
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!libnameW)
|
if (!libnameW)
|
||||||
{
|
{
|
||||||
SetLastError(ERROR_INVALID_PARAMETER);
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
|
|
@ -245,13 +245,12 @@ static void testLoadLibraryEx(void)
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
hmodule = LoadLibraryExA("testfile.dll", hfile, 0);
|
hmodule = LoadLibraryExA("testfile.dll", hfile, 0);
|
||||||
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
||||||
todo_wine
|
ok(GetLastError() == ERROR_SHARING_VIOLATION ||
|
||||||
{
|
GetLastError() == ERROR_INVALID_PARAMETER, /* win2k3 */
|
||||||
ok(GetLastError() == ERROR_SHARING_VIOLATION,
|
"Expected ERROR_SHARING_VIOLATION or ERROR_INVALID_PARAMETER, got %d\n",
|
||||||
"Expected ERROR_SHARING_VIOLATION, got %d\n", GetLastError());
|
GetLastError());
|
||||||
}
|
|
||||||
|
|
||||||
/* has nothing to do with hFile */
|
/* try to open a file that is locked */
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
hmodule = LoadLibraryExA("testfile.dll", NULL, 0);
|
hmodule = LoadLibraryExA("testfile.dll", NULL, 0);
|
||||||
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
||||||
|
@ -261,12 +260,14 @@ static void testLoadLibraryEx(void)
|
||||||
"Expected ERROR_SHARING_VIOLATION, got %d\n", GetLastError());
|
"Expected ERROR_SHARING_VIOLATION, got %d\n", GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* one last try with hFile */
|
/* lpFileName does not matter */
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
hmodule = LoadLibraryExA(NULL, hfile, 0);
|
hmodule = LoadLibraryExA(NULL, hfile, 0);
|
||||||
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
|
||||||
ok(GetLastError() == ERROR_MOD_NOT_FOUND,
|
ok(GetLastError() == ERROR_MOD_NOT_FOUND ||
|
||||||
"Expected ERROR_MOD_NOT_FOUND, got %d\n", GetLastError());
|
GetLastError() == ERROR_INVALID_PARAMETER, /* win2k3 */
|
||||||
|
"Expected ERROR_MOD_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n",
|
||||||
|
GetLastError());
|
||||||
|
|
||||||
CloseHandle(hfile);
|
CloseHandle(hfile);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue