diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index ae786651a36..0aa84b447e6 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -148,6 +148,27 @@ void WINAPI IoDeleteDevice( DEVICE_OBJECT *device ) } +/*********************************************************************** + * IoCreateSymbolicLink (NTOSKRNL.EXE.@) + */ +NTSTATUS WINAPI IoCreateSymbolicLink( 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 ); +} + + /***************************************************** * DllMain */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 04591ba822b..d5eeb9a65f0 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -345,7 +345,7 @@ @ stub IoCreateStreamFileObject @ stub IoCreateStreamFileObjectEx @ stub IoCreateStreamFileObjectLite -@ stub IoCreateSymbolicLink +@ stdcall IoCreateSymbolicLink(ptr ptr) @ stub IoCreateSynchronizationEvent @ stub IoCreateUnprotectedSymbolicLink @ stub IoCsqInitialize