diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 1e15016c3a2..0c481a692cc 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2071,6 +2071,28 @@ PVOID WINAPI RtlImageRvaToVa( const IMAGE_NT_HEADERS *nt, HMODULE module, } +/*********************************************************************** + * NtLoadDriver (NTDLL.@) + * ZwLoadDriver (NTDLL.@) + */ +NTSTATUS WINAPI NtLoadDriver( const UNICODE_STRING *DriverServiceName ) +{ + FIXME("(%p), stub!\n",DriverServiceName); + return STATUS_NOT_IMPLEMENTED; +} + + +/*********************************************************************** + * NtUnloadDriver (NTDLL.@) + * ZwUnloadDriver (NTDLL.@) + */ +NTSTATUS WINAPI NtUnloadDriver( const UNICODE_STRING *DriverServiceName ) +{ + FIXME("(%p), stub!\n",DriverServiceName); + return STATUS_NOT_IMPLEMENTED; +} + + /****************************************************************** * __wine_init_windows_dir (NTDLL.@) * diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 692d7e4e45d..7118a304904 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -129,7 +129,7 @@ @ stub NtImpersonateThread @ stub NtInitializeRegistry @ stdcall NtListenPort(ptr ptr) -@ stub NtLoadDriver +@ stdcall NtLoadDriver(ptr) @ stdcall NtLoadKey(ptr ptr) @ stdcall NtLockFile(long long ptr ptr ptr ptr ptr ptr long long) @ stdcall NtLockVirtualMemory(long ptr ptr long) @@ -254,7 +254,7 @@ @ stdcall NtTerminateProcess(long long) @ stdcall NtTerminateThread(long long) @ stub NtTestAlert -@ stub NtUnloadDriver +@ stdcall NtUnloadDriver(ptr) @ stdcall NtUnloadKey(long) @ stub NtUnloadKeyEx @ stdcall NtUnlockFile(long ptr ptr ptr ptr) @@ -719,7 +719,7 @@ @ stub ZwImpersonateThread @ stub ZwInitializeRegistry @ stdcall ZwListenPort(ptr ptr) NtListenPort -@ stub ZwLoadDriver +@ stdcall ZwLoadDriver(ptr) NtLoadDriver @ stdcall ZwLoadKey(ptr ptr) NtLoadKey @ stdcall ZwLockFile(long long ptr ptr ptr ptr ptr ptr long long) NtLockFile @ stdcall ZwLockVirtualMemory(long ptr ptr long) NtLockVirtualMemory @@ -840,7 +840,7 @@ @ stdcall ZwTerminateProcess(long long) NtTerminateProcess @ stdcall ZwTerminateThread(long long) NtTerminateThread @ stub ZwTestAlert -@ stub ZwUnloadDriver +@ stdcall ZwUnloadDriver(ptr) NtUnloadDriver @ stdcall ZwUnloadKey(long) NtUnloadKey @ stub ZwUnloadKeyEx @ stdcall ZwUnlockFile(long ptr ptr ptr ptr) NtUnlockFile diff --git a/include/winternl.h b/include/winternl.h index 0ce1223952d..bccdb3d96ed 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -1378,6 +1378,7 @@ NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*); NTSTATUS WINAPI NtImpersonateAnonymousToken(HANDLE); NTSTATUS WINAPI NtImpersonateClientOfPort(HANDLE,PPORT_MESSAGE); NTSTATUS WINAPI NtImpersonateThread(HANDLE,HANDLE,PSECURITY_QUALITY_OF_SERVICE); +NTSTATUS WINAPI NtLoadDriver(const UNICODE_STRING *); NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES *,const OBJECT_ATTRIBUTES *); NTSTATUS WINAPI NtLockFile(HANDLE,HANDLE,PIO_APC_ROUTINE,void*,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,ULONG*,BOOLEAN,BOOLEAN); NTSTATUS WINAPI NtLockVirtualMemory(HANDLE,PVOID*,ULONG*,ULONG); @@ -1447,6 +1448,7 @@ NTSTATUS WINAPI NtSetValueKey(HKEY,const UNICODE_STRING *,ULONG,ULONG,const voi NTSTATUS WINAPI NtSuspendThread(HANDLE,PULONG); NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG); NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG); +NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *); NTSTATUS WINAPI NtUnloadKey(HKEY); NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG); NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,ULONG*,ULONG);