Commit 92b2329d authored by Santino Mazza's avatar Santino Mazza Committed by Alexandre Julliard

ntdll: Create NtLoadKeyEx syscall stub.

parent ebbdbff5
......@@ -244,6 +244,7 @@
@ stdcall -syscall NtLoadDriver(ptr)
@ stdcall -syscall NtLoadKey2(ptr ptr long)
@ stdcall -syscall NtLoadKey(ptr ptr)
@ stdcall -syscall NtLoadKeyEx(ptr ptr long long long long ptr ptr)
@ stdcall -syscall NtLockFile(long long ptr ptr ptr ptr ptr ptr long long)
# @ stub NtLockProductActivationKeys
# @ stub NtLockRegistryKey
......
......@@ -203,6 +203,7 @@ static void * const syscalls[] =
NtLoadDriver,
NtLoadKey,
NtLoadKey2,
NtLoadKeyEx,
NtLockFile,
NtLockVirtualMemory,
NtMakeTemporaryObject,
......
......@@ -729,6 +729,16 @@ NTSTATUS WINAPI NtLoadKey2( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fi
return NtLoadKey( attr, file );
}
/******************************************************************************
* NtLoadKeyEx (NTDLL.@)
*/
NTSTATUS WINAPI NtLoadKeyEx( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *file, ULONG flags, HANDLE trustkey,
HANDLE event, ACCESS_MASK access, HANDLE *roothandle, IO_STATUS_BLOCK *iostatus )
{
FIXME( "(%p,%p,0x%08x,%p,%p,0x%08x,%p,%p) stub\n", attr, file, flags, trustkey, event,
access, roothandle, iostatus );
return STATUS_NOT_IMPLEMENTED;
}
/******************************************************************************
* NtUnloadKey (NTDLL.@)
......
......@@ -181,6 +181,30 @@ NTSTATUS WINAPI wow64_NtLoadKey2( UINT *args )
return NtLoadKey2( objattr_32to64( &attr, attr32 ), objattr_32to64( &file, file32 ), flags );
}
/**********************************************************************
* wow64_NtLoadKeyEx
*/
NTSTATUS WINAPI wow64_NtLoadKeyEx( UINT *args )
{
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
OBJECT_ATTRIBUTES32 *file32 = get_ptr( &args );
ULONG flags = get_ulong( &args );
HANDLE trustkey = get_handle( &args );
HANDLE event = get_handle( &args );
ACCESS_MASK desired_access = get_ulong( &args );
HANDLE *rootkey = get_ptr( &args );
IO_STATUS_BLOCK32 *io32 = get_ptr( &args );
struct object_attr64 attr, file;
IO_STATUS_BLOCK io;
NTSTATUS status;
status = NtLoadKeyEx( objattr_32to64( &attr, attr32 ), objattr_32to64( &file, file32 ), flags,
trustkey, event, desired_access, rootkey, iosb_32to64( &io, io32 ) );
put_iosb( io32, &io );
return status;
}
/**********************************************************************
* wow64_NtNotifyChangeKey
......
......@@ -104,6 +104,7 @@
SYSCALL_ENTRY( NtLoadDriver ) \
SYSCALL_ENTRY( NtLoadKey ) \
SYSCALL_ENTRY( NtLoadKey2 ) \
SYSCALL_ENTRY( NtLoadKeyEx ) \
SYSCALL_ENTRY( NtLockFile ) \
SYSCALL_ENTRY( NtLockVirtualMemory ) \
SYSCALL_ENTRY( NtMakeTemporaryObject ) \
......
......@@ -4024,6 +4024,7 @@ NTSYSAPI NTSTATUS WINAPI NtListenPort(HANDLE,PLPC_MESSAGE);
NTSYSAPI NTSTATUS WINAPI NtLoadDriver(const UNICODE_STRING *);
NTSYSAPI NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *);
NTSYSAPI NTSTATUS WINAPI NtLoadKey2(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *,ULONG);
NTSYSAPI NTSTATUS WINAPI NtLoadKeyEx(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *,ULONG,HANDLE,HANDLE,ACCESS_MASK,HANDLE *,IO_STATUS_BLOCK *);
NTSYSAPI NTSTATUS WINAPI NtLockFile(HANDLE,HANDLE,PIO_APC_ROUTINE,void*,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,ULONG*,BOOLEAN,BOOLEAN);
NTSYSAPI NTSTATUS WINAPI NtLockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
NTSYSAPI NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment