Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47986 Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- This is just a copy-paste of IoCreateSymbolicLink. --- dlls/ntoskrnl.exe/ntoskrnl.c | 21 +++++++++++++++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 009b0dda81..9fe9c995a3 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -1581,6 +1581,27 @@ NTSTATUS WINAPI IoCreateSymbolicLink( UNICODE_STRING *name, UNICODE_STRING *targ }
+/*********************************************************************** + * IoCreateUnprotectedSymbolicLink (NTOSKRNL.EXE.@) + */ +NTSTATUS WINAPI IoCreateUnprotectedSymbolicLink( UNICODE_STRING *name, UNICODE_STRING *target ) +{ + HANDLE handle; + OBJECT_ATTRIBUTES attr; + + attr.Length = sizeof(attr); + attr.RootDirectory = 0; + attr.ObjectName = name; + attr.Attributes = OBJ_CASE_INSENSITIVE | OBJ_OPENIF; + attr.SecurityDescriptor = NULL; + attr.SecurityQualityOfService = NULL; + + TRACE( "%s -> %s\n", debugstr_us(name), debugstr_us(target) ); + /* FIXME: store handle somewhere */ + return NtCreateSymbolicLinkObject( &handle, SYMBOLIC_LINK_ALL_ACCESS, &attr, target ); +} + + /*********************************************************************** * IoDeleteSymbolicLink (NTOSKRNL.EXE.@) */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index d47a706054..297487fa25 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -361,7 +361,7 @@ @ stub IoCreateStreamFileObjectLite @ stdcall IoCreateSymbolicLink(ptr ptr) @ stdcall IoCreateSynchronizationEvent(ptr ptr) -@ stub IoCreateUnprotectedSymbolicLink +@ stdcall IoCreateUnprotectedSymbolicLink(ptr ptr) @ stdcall IoCsqInitialize(ptr ptr ptr ptr ptr ptr ptr) @ stub IoCsqInsertIrp @ stub IoCsqRemoveIrp