Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
34a4f5bc
Commit
34a4f5bc
authored
Jul 26, 2021
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wow64: Add thunks for the registry I/O syscalls.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
44eac154
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
0 deletions
+85
-0
registry.c
dlls/wow64/registry.c
+78
-0
syscall.h
dlls/wow64/syscall.h
+6
-0
winternl.h
include/winternl.h
+1
-0
No files found.
dlls/wow64/registry.c
View file @
34a4f5bc
...
...
@@ -143,6 +143,46 @@ NTSTATUS WINAPI wow64_NtEnumerateValueKey( UINT *args )
/**********************************************************************
* wow64_NtFlushKey
*/
NTSTATUS
WINAPI
wow64_NtFlushKey
(
UINT
*
args
)
{
HANDLE
handle
=
get_handle
(
&
args
);
return
NtFlushKey
(
handle
);
}
/**********************************************************************
* wow64_NtLoadKey
*/
NTSTATUS
WINAPI
wow64_NtLoadKey
(
UINT
*
args
)
{
OBJECT_ATTRIBUTES32
*
attr32
=
get_ptr
(
&
args
);
OBJECT_ATTRIBUTES32
*
file32
=
get_ptr
(
&
args
);
struct
object_attr64
attr
,
file
;
return
NtLoadKey
(
objattr_32to64
(
&
attr
,
attr32
),
objattr_32to64
(
&
file
,
file32
));
}
/**********************************************************************
* wow64_NtLoadKey2
*/
NTSTATUS
WINAPI
wow64_NtLoadKey2
(
UINT
*
args
)
{
OBJECT_ATTRIBUTES32
*
attr32
=
get_ptr
(
&
args
);
OBJECT_ATTRIBUTES32
*
file32
=
get_ptr
(
&
args
);
ULONG
flags
=
get_ulong
(
&
args
);
struct
object_attr64
attr
,
file
;
return
NtLoadKey2
(
objattr_32to64
(
&
attr
,
attr32
),
objattr_32to64
(
&
file
,
file32
),
flags
);
}
/**********************************************************************
* wow64_NtOpenKey
*/
NTSTATUS
WINAPI
wow64_NtOpenKey
(
UINT
*
args
)
...
...
@@ -306,6 +346,31 @@ NTSTATUS WINAPI wow64_NtReplaceKey( UINT *args )
/**********************************************************************
* wow64_NtRestoreKey
*/
NTSTATUS
WINAPI
wow64_NtRestoreKey
(
UINT
*
args
)
{
HANDLE
key
=
get_handle
(
&
args
);
HANDLE
file
=
get_handle
(
&
args
);
ULONG
flags
=
get_ulong
(
&
args
);
return
NtRestoreKey
(
key
,
file
,
flags
);
}
/**********************************************************************
* wow64_NtSaveKey
*/
NTSTATUS
WINAPI
wow64_NtSaveKey
(
UINT
*
args
)
{
HANDLE
key
=
get_handle
(
&
args
);
HANDLE
file
=
get_handle
(
&
args
);
return
NtSaveKey
(
key
,
file
);
}
/**********************************************************************
* wow64_NtSetInformationKey
*/
NTSTATUS
WINAPI
wow64_NtSetInformationKey
(
UINT
*
args
)
...
...
@@ -335,3 +400,16 @@ NTSTATUS WINAPI wow64_NtSetValueKey( UINT *args )
return
NtSetValueKey
(
handle
,
unicode_str_32to64
(
&
str
,
str32
),
index
,
type
,
data
,
count
);
}
/**********************************************************************
* wow64_NtUnloadKey
*/
NTSTATUS
WINAPI
wow64_NtUnloadKey
(
UINT
*
args
)
{
OBJECT_ATTRIBUTES32
*
attr32
=
get_ptr
(
&
args
);
struct
object_attr64
attr
;
return
NtUnloadKey
(
objattr_32to64
(
&
attr
,
attr32
));
}
dlls/wow64/syscall.h
View file @
34a4f5bc
...
...
@@ -56,8 +56,11 @@
SYSCALL_ENTRY( NtEnumerateKey ) \
SYSCALL_ENTRY( NtEnumerateValueKey ) \
SYSCALL_ENTRY( NtFindAtom ) \
SYSCALL_ENTRY( NtFlushKey ) \
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
SYSCALL_ENTRY( NtListenPort ) \
SYSCALL_ENTRY( NtLoadKey ) \
SYSCALL_ENTRY( NtLoadKey2 ) \
SYSCALL_ENTRY( NtMakeTemporaryObject ) \
SYSCALL_ENTRY( NtOpenDirectoryObject ) \
SYSCALL_ENTRY( NtOpenEvent ) \
...
...
@@ -100,6 +103,8 @@
SYSCALL_ENTRY( NtReplyWaitReceivePort ) \
SYSCALL_ENTRY( NtRequestWaitReplyPort ) \
SYSCALL_ENTRY( NtResetEvent ) \
SYSCALL_ENTRY( NtRestoreKey ) \
SYSCALL_ENTRY( NtSaveKey ) \
SYSCALL_ENTRY( NtSecureConnectPort ) \
SYSCALL_ENTRY( NtSetDefaultLocale ) \
SYSCALL_ENTRY( NtSetDefaultUILanguage ) \
...
...
@@ -114,6 +119,7 @@
SYSCALL_ENTRY( NtSetValueKey ) \
SYSCALL_ENTRY( NtSignalAndWaitForSingleObject ) \
SYSCALL_ENTRY( NtTerminateJobObject ) \
SYSCALL_ENTRY( NtUnloadKey ) \
SYSCALL_ENTRY( NtWaitForDebugEvent ) \
SYSCALL_ENTRY( NtWaitForKeyedEvent ) \
SYSCALL_ENTRY( NtWaitForMultipleObjects ) \
...
...
include/winternl.h
View file @
34a4f5bc
...
...
@@ -3879,6 +3879,7 @@ NTSYSAPI NTSTATUS WINAPI NtIsProcessInJob(HANDLE,HANDLE);
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
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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment