ntdll: Fix NtUnloadKey to match the DDK.

This commit is contained in:
Bang Jun-Young 2007-01-29 22:55:02 +09:00 committed by Alexandre Julliard
parent b71e42b794
commit fdff5c3a3a
3 changed files with 9 additions and 5 deletions

View file

@ -2089,6 +2089,8 @@ LONG WINAPI RegUnLoadKeyW( HKEY hkey, LPCWSTR lpSubKey )
{
DWORD ret;
HKEY shkey;
OBJECT_ATTRIBUTES attr;
UNICODE_STRING subkey;
TRACE("(%p,%s)\n",hkey, debugstr_w(lpSubKey));
@ -2096,7 +2098,9 @@ LONG WINAPI RegUnLoadKeyW( HKEY hkey, LPCWSTR lpSubKey )
if( ret )
return ERROR_INVALID_PARAMETER;
ret = RtlNtStatusToDosError(NtUnloadKey(shkey));
RtlInitUnicodeString(&subkey, lpSubKey);
InitializeObjectAttributes(&attr, &subkey, OBJ_CASE_INSENSITIVE, shkey, NULL);
ret = RtlNtStatusToDosError(NtUnloadKey(&attr));
RegCloseKey(shkey);

View file

@ -775,15 +775,15 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data,
* NtUnloadKey [NTDLL.@]
* ZwUnloadKey [NTDLL.@]
*/
NTSTATUS WINAPI NtUnloadKey(IN HANDLE KeyHandle)
NTSTATUS WINAPI NtUnloadKey(IN POBJECT_ATTRIBUTES attr)
{
NTSTATUS ret;
TRACE("(%p)\n", KeyHandle);
TRACE("(%p)\n", attr);
SERVER_START_REQ( unload_registry )
{
req->hkey = KeyHandle;
req->hkey = attr->RootDirectory;
ret = wine_server_call(req);
}
SERVER_END_REQ;

View file

@ -1935,7 +1935,7 @@ NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG);
NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG);
NTSTATUS WINAPI NtTestAlert(VOID);
NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *);
NTSTATUS WINAPI NtUnloadKey(HANDLE);
NTSTATUS WINAPI NtUnloadKey(POBJECT_ATTRIBUTES);
NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE);
NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG);
NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);