Alexandre Julliard : ntoskrnl.exe: Implemented IoCreateSymbolicLink.

Alexandre Julliard julliard at wine.codeweavers.com
Wed May 16 09:10:23 CDT 2007


Module: wine
Branch: master
Commit: 7330edd25dbebb1cfb856bdf1ae3c627c5ba123f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7330edd25dbebb1cfb856bdf1ae3c627c5ba123f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue May 15 21:45:51 2007 +0200

ntoskrnl.exe: Implemented IoCreateSymbolicLink.

---

 dlls/ntoskrnl.exe/ntoskrnl.c        |   21 +++++++++++++++++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec |    2 +-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index ae78665..0aa84b4 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 04591ba..d5eeb9a 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




More information about the wine-cvs mailing list