kernel32: Fix two tests that fail in win2k3 and modify LoadLibraryEx to match this behavior.

This commit is contained in:
James Hawkins 2008-09-02 01:01:59 -05:00 committed by Alexandre Julliard
parent b1ff962182
commit 731306bf78
2 changed files with 16 additions and 9 deletions

View file

@ -922,6 +922,12 @@ HMODULE WINAPI LoadLibraryExW(LPCWSTR libnameW, HANDLE hfile, DWORD flags)
UNICODE_STRING wstr;
HMODULE res;
if (hfile)
{
SetLastError(ERROR_INVALID_PARAMETER);
return 0;
}
if (!libnameW)
{
SetLastError(ERROR_INVALID_PARAMETER);

View file

@ -245,13 +245,12 @@ static void testLoadLibraryEx(void)
SetLastError(0xdeadbeef);
hmodule = LoadLibraryExA("testfile.dll", hfile, 0);
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
todo_wine
{
ok(GetLastError() == ERROR_SHARING_VIOLATION,
"Expected ERROR_SHARING_VIOLATION, got %d\n", GetLastError());
}
ok(GetLastError() == ERROR_SHARING_VIOLATION ||
GetLastError() == ERROR_INVALID_PARAMETER, /* win2k3 */
"Expected ERROR_SHARING_VIOLATION or ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
/* has nothing to do with hFile */
/* try to open a file that is locked */
SetLastError(0xdeadbeef);
hmodule = LoadLibraryExA("testfile.dll", NULL, 0);
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());
}
/* one last try with hFile */
/* lpFileName does not matter */
SetLastError(0xdeadbeef);
hmodule = LoadLibraryExA(NULL, hfile, 0);
ok(hmodule == 0, "Expected 0, got %p\n", hmodule);
ok(GetLastError() == ERROR_MOD_NOT_FOUND,
"Expected ERROR_MOD_NOT_FOUND, got %d\n", GetLastError());
ok(GetLastError() == ERROR_MOD_NOT_FOUND ||
GetLastError() == ERROR_INVALID_PARAMETER, /* win2k3 */
"Expected ERROR_MOD_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
CloseHandle(hfile);