wow64: Add thunks for the registry value syscalls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4307429b4a
commit
44eac1543e
|
@ -27,6 +27,9 @@
|
|||
#include "winnt.h"
|
||||
#include "winternl.h"
|
||||
#include "wow64_private.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(wow);
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
|
@ -93,6 +96,20 @@ NTSTATUS WINAPI wow64_NtDeleteKey( UINT *args )
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtDeleteValueKey
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtDeleteValueKey( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
UNICODE_STRING32 *str32 = get_ptr( &args );
|
||||
|
||||
UNICODE_STRING str;
|
||||
|
||||
return NtDeleteValueKey( handle, unicode_str_32to64( &str, str32 ));
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtEnumerateKey
|
||||
*/
|
||||
|
@ -109,6 +126,22 @@ NTSTATUS WINAPI wow64_NtEnumerateKey( UINT *args )
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtEnumerateValueKey
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtEnumerateValueKey( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
ULONG index = get_ulong( &args );
|
||||
KEY_VALUE_INFORMATION_CLASS class = get_ulong( &args );
|
||||
void *ptr = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
ULONG *retlen = get_ptr( &args );
|
||||
|
||||
return NtEnumerateValueKey( handle, index, class, ptr, len, retlen );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtOpenKey
|
||||
*/
|
||||
|
@ -208,6 +241,41 @@ NTSTATUS WINAPI wow64_NtQueryKey( UINT *args )
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryMultipleValueKey
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryMultipleValueKey( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
KEY_MULTIPLE_VALUE_INFORMATION *info = get_ptr( &args );
|
||||
ULONG count = get_ulong( &args );
|
||||
void *ptr = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
ULONG *retlen = get_ptr( &args );
|
||||
|
||||
FIXME( "%p %p %u %p %u %p: stub\n", handle, info, count, ptr, len, retlen );
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryValueKey
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryValueKey( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
UNICODE_STRING32 *str32 = get_ptr( &args );
|
||||
KEY_VALUE_INFORMATION_CLASS class = get_ulong( &args );
|
||||
void *ptr = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
ULONG *retlen = get_ptr( &args );
|
||||
|
||||
UNICODE_STRING str;
|
||||
|
||||
return NtQueryValueKey( handle, unicode_str_32to64( &str, str32 ), class, ptr, len, retlen );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtRenameKey
|
||||
*/
|
||||
|
@ -249,3 +317,21 @@ NTSTATUS WINAPI wow64_NtSetInformationKey( UINT *args )
|
|||
|
||||
return NtSetInformationKey( handle, class, info, len );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtSetValueKey
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtSetValueKey( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
const UNICODE_STRING32 *str32 = get_ptr( &args );
|
||||
ULONG index = get_ulong( &args );
|
||||
ULONG type = get_ulong( &args );
|
||||
const void *data = get_ptr( &args );
|
||||
ULONG count = get_ulong( &args );
|
||||
|
||||
UNICODE_STRING str;
|
||||
|
||||
return NtSetValueKey( handle, unicode_str_32to64( &str, str32 ), index, type, data, count );
|
||||
}
|
||||
|
|
|
@ -51,8 +51,10 @@
|
|||
SYSCALL_ENTRY( NtDelayExecution ) \
|
||||
SYSCALL_ENTRY( NtDeleteAtom ) \
|
||||
SYSCALL_ENTRY( NtDeleteKey ) \
|
||||
SYSCALL_ENTRY( NtDeleteValueKey ) \
|
||||
SYSCALL_ENTRY( NtDuplicateObject ) \
|
||||
SYSCALL_ENTRY( NtEnumerateKey ) \
|
||||
SYSCALL_ENTRY( NtEnumerateValueKey ) \
|
||||
SYSCALL_ENTRY( NtFindAtom ) \
|
||||
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
|
||||
SYSCALL_ENTRY( NtListenPort ) \
|
||||
|
@ -80,6 +82,7 @@
|
|||
SYSCALL_ENTRY( NtQueryInstallUILanguage ) \
|
||||
SYSCALL_ENTRY( NtQueryIoCompletion ) \
|
||||
SYSCALL_ENTRY( NtQueryKey ) \
|
||||
SYSCALL_ENTRY( NtQueryMultipleValueKey ) \
|
||||
SYSCALL_ENTRY( NtQueryMutant ) \
|
||||
SYSCALL_ENTRY( NtQueryObject ) \
|
||||
SYSCALL_ENTRY( NtQueryPerformanceCounter ) \
|
||||
|
@ -88,6 +91,7 @@
|
|||
SYSCALL_ENTRY( NtQuerySymbolicLinkObject ) \
|
||||
SYSCALL_ENTRY( NtQueryTimer ) \
|
||||
SYSCALL_ENTRY( NtQueryTimerResolution ) \
|
||||
SYSCALL_ENTRY( NtQueryValueKey ) \
|
||||
SYSCALL_ENTRY( NtReleaseKeyedEvent ) \
|
||||
SYSCALL_ENTRY( NtReleaseMutant ) \
|
||||
SYSCALL_ENTRY( NtReleaseSemaphore ) \
|
||||
|
@ -107,6 +111,7 @@
|
|||
SYSCALL_ENTRY( NtSetPowerRequest ) \
|
||||
SYSCALL_ENTRY( NtSetTimer ) \
|
||||
SYSCALL_ENTRY( NtSetTimerResolution ) \
|
||||
SYSCALL_ENTRY( NtSetValueKey ) \
|
||||
SYSCALL_ENTRY( NtSignalAndWaitForSingleObject ) \
|
||||
SYSCALL_ENTRY( NtTerminateJobObject ) \
|
||||
SYSCALL_ENTRY( NtWaitForDebugEvent ) \
|
||||
|
|
Loading…
Reference in New Issue