]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/io/backend/windows/nt/privileges/privileges.factor
update windows.kernel32 structs (*)
[factor.git] / basis / io / backend / windows / nt / privileges / privileges.factor
index bb9e0edc334b425dc36ed7dfcd88c4cdbe9ad7d7..6acc1f354445d2a3837c81023b7c0ba3c3989954 100755 (executable)
@@ -1,7 +1,7 @@
 USING: alien alien.c-types alien.data alien.syntax arrays continuations\r
 destructors generic io.mmap io.ports io.backend.windows io.files.windows\r
 kernel libc math math.bitwise namespaces quotations sequences windows\r
-windows.advapi32 windows.kernel32 io.backend system accessors\r
+windows.advapi32 windows.kernel32 windows.types io.backend system accessors\r
 io.backend.windows.privileges windows.errors ;\r
 IN: io.backend.windows.nt.privileges\r
 \r
@@ -11,7 +11,7 @@ TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
 !  http://msdn.microsoft.com/msdnmag/issues/05/03/TokenPrivileges/\r
 \r
 : (open-process-token) ( handle -- handle )\r
-    { TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY } flags "PHANDLE" <c-object>\r
+    { TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY } flags PHANDLE <c-object>\r
     [ OpenProcessToken win32-error=0/f ] keep *void* ;\r
 \r
 : open-process-token ( -- handle )\r
@@ -25,25 +25,17 @@ TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
     [ CloseHandle drop ] [ ] cleanup ; inline\r
 \r
 : lookup-privilege ( string -- luid )\r
-    [ f ] dip "LUID" <c-object>\r
+    [ f ] dip LUID <struct>\r
     [ LookupPrivilegeValue win32-error=0/f ] keep ;\r
 \r
 : make-token-privileges ( name ? -- obj )\r
-    "TOKEN_PRIVILEGES" <c-object>\r
-    1 over set-TOKEN_PRIVILEGES-PrivilegeCount\r
-    "LUID_AND_ATTRIBUTES" malloc-object &free\r
-    over set-TOKEN_PRIVILEGES-Privileges\r
-\r
-    swap [\r
-        SE_PRIVILEGE_ENABLED over TOKEN_PRIVILEGES-Privileges\r
-        set-LUID_AND_ATTRIBUTES-Attributes\r
-    ] when\r
-\r
+    TOKEN_PRIVILEGES <struct>\r
+        1 >>PrivilegeCount\r
+        LUID_AND_ATTRIBUTES malloc-struct &free\r
+            swap [ SE_PRIVILEGE_ENABLED >>Attributes ] when\r
+        >>Privileges\r
     [ lookup-privilege ] dip\r
-    [\r
-        TOKEN_PRIVILEGES-Privileges\r
-        set-LUID_AND_ATTRIBUTES-Luid\r
-    ] keep ;\r
+    [ Privileges>> (>>Luid) ] keep ;\r
 \r
 M: winnt set-privilege ( name ? -- )\r
     [\r