wow64: Add thunks for the symbolic link object syscalls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0e374683cf
commit
89ad6974c1
|
@ -223,6 +223,29 @@ NTSTATUS WINAPI wow64_NtCreateSemaphore( UINT *args )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* wow64_NtCreateSymbolicLinkObject
|
||||||
|
*/
|
||||||
|
NTSTATUS WINAPI wow64_NtCreateSymbolicLinkObject( UINT *args )
|
||||||
|
{
|
||||||
|
ULONG *handle_ptr = get_ptr( &args );
|
||||||
|
ACCESS_MASK access = get_ulong( &args );
|
||||||
|
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
|
||||||
|
UNICODE_STRING32 *target32 = get_ptr( &args );
|
||||||
|
|
||||||
|
struct object_attr64 attr;
|
||||||
|
UNICODE_STRING target;
|
||||||
|
HANDLE handle = 0;
|
||||||
|
NTSTATUS status;
|
||||||
|
|
||||||
|
*handle_ptr = 0;
|
||||||
|
status = NtCreateSymbolicLinkObject( &handle, access, objattr_32to64( &attr, attr32 ),
|
||||||
|
unicode_str_32to64( &target, target32 ));
|
||||||
|
put_handle( handle_ptr, handle );
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* wow64_NtCreateTimer
|
* wow64_NtCreateTimer
|
||||||
*/
|
*/
|
||||||
|
@ -399,6 +422,26 @@ NTSTATUS WINAPI wow64_NtOpenSemaphore( UINT *args )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* wow64_NtOpenSymbolicLinkObject
|
||||||
|
*/
|
||||||
|
NTSTATUS WINAPI wow64_NtOpenSymbolicLinkObject( UINT *args )
|
||||||
|
{
|
||||||
|
ULONG *handle_ptr = get_ptr( &args );
|
||||||
|
ACCESS_MASK access = get_ulong( &args );
|
||||||
|
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
|
||||||
|
|
||||||
|
struct object_attr64 attr;
|
||||||
|
HANDLE handle = 0;
|
||||||
|
NTSTATUS status;
|
||||||
|
|
||||||
|
*handle_ptr = 0;
|
||||||
|
status = NtOpenSymbolicLinkObject( &handle, access, objattr_32to64( &attr, attr32 ));
|
||||||
|
put_handle( handle_ptr, handle );
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* wow64_NtOpenTimer
|
* wow64_NtOpenTimer
|
||||||
*/
|
*/
|
||||||
|
@ -528,6 +571,24 @@ NTSTATUS WINAPI wow64_NtQuerySemaphore( UINT *args )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* wow64_NtQuerySymbolicLinkObject
|
||||||
|
*/
|
||||||
|
NTSTATUS WINAPI wow64_NtQuerySymbolicLinkObject( UINT *args )
|
||||||
|
{
|
||||||
|
HANDLE handle = get_handle( &args );
|
||||||
|
UNICODE_STRING32 *target32 = get_ptr( &args );
|
||||||
|
ULONG *retlen = get_ptr( &args );
|
||||||
|
|
||||||
|
UNICODE_STRING target;
|
||||||
|
NTSTATUS status;
|
||||||
|
|
||||||
|
status = NtQuerySymbolicLinkObject( handle, unicode_str_32to64( &target, target32 ), retlen );
|
||||||
|
if (!status) target32->Length = target.Length;
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* wow64_NtQueryTimer
|
* wow64_NtQueryTimer
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
SYSCALL_ENTRY( NtCreateKeyedEvent ) \
|
SYSCALL_ENTRY( NtCreateKeyedEvent ) \
|
||||||
SYSCALL_ENTRY( NtCreateMutant ) \
|
SYSCALL_ENTRY( NtCreateMutant ) \
|
||||||
SYSCALL_ENTRY( NtCreateSemaphore ) \
|
SYSCALL_ENTRY( NtCreateSemaphore ) \
|
||||||
|
SYSCALL_ENTRY( NtCreateSymbolicLinkObject ) \
|
||||||
SYSCALL_ENTRY( NtCreateTimer ) \
|
SYSCALL_ENTRY( NtCreateTimer ) \
|
||||||
SYSCALL_ENTRY( NtDebugContinue ) \
|
SYSCALL_ENTRY( NtDebugContinue ) \
|
||||||
SYSCALL_ENTRY( NtDeleteAtom ) \
|
SYSCALL_ENTRY( NtDeleteAtom ) \
|
||||||
|
@ -48,6 +49,7 @@
|
||||||
SYSCALL_ENTRY( NtOpenKeyedEvent ) \
|
SYSCALL_ENTRY( NtOpenKeyedEvent ) \
|
||||||
SYSCALL_ENTRY( NtOpenMutant ) \
|
SYSCALL_ENTRY( NtOpenMutant ) \
|
||||||
SYSCALL_ENTRY( NtOpenSemaphore ) \
|
SYSCALL_ENTRY( NtOpenSemaphore ) \
|
||||||
|
SYSCALL_ENTRY( NtOpenSymbolicLinkObject ) \
|
||||||
SYSCALL_ENTRY( NtOpenTimer ) \
|
SYSCALL_ENTRY( NtOpenTimer ) \
|
||||||
SYSCALL_ENTRY( NtPulseEvent ) \
|
SYSCALL_ENTRY( NtPulseEvent ) \
|
||||||
SYSCALL_ENTRY( NtQueryDefaultLocale ) \
|
SYSCALL_ENTRY( NtQueryDefaultLocale ) \
|
||||||
|
@ -59,6 +61,7 @@
|
||||||
SYSCALL_ENTRY( NtQueryIoCompletion ) \
|
SYSCALL_ENTRY( NtQueryIoCompletion ) \
|
||||||
SYSCALL_ENTRY( NtQueryMutant ) \
|
SYSCALL_ENTRY( NtQueryMutant ) \
|
||||||
SYSCALL_ENTRY( NtQuerySemaphore ) \
|
SYSCALL_ENTRY( NtQuerySemaphore ) \
|
||||||
|
SYSCALL_ENTRY( NtQuerySymbolicLinkObject ) \
|
||||||
SYSCALL_ENTRY( NtQueryTimer ) \
|
SYSCALL_ENTRY( NtQueryTimer ) \
|
||||||
SYSCALL_ENTRY( NtReleaseKeyedEvent ) \
|
SYSCALL_ENTRY( NtReleaseKeyedEvent ) \
|
||||||
SYSCALL_ENTRY( NtReleaseMutant ) \
|
SYSCALL_ENTRY( NtReleaseMutant ) \
|
||||||
|
|
Loading…
Reference in New Issue