ZwClose(): +handle bogus HANDLEs from our unimplemented PsCreateSystemThread()
authorshort <>
Mon, 24 Mar 2003 02:25:44 +0000 (02:25 +0000)
committershort <>
Mon, 24 Mar 2003 02:25:44 +0000 (02:25 +0000)
src/libcaptive/ob/handle.c

index e8de9ca..3dc7db0 100644 (file)
 #include <glib/gmessages.h>
 
 
+/* libcaptive/ps/create.c: */
+extern const guint8 PsCreateSystemThread_bogusthread;
+
+
 /**
  * ZwClose:
  * @Handle: Handle from some Zw*() create function.
@@ -39,5 +43,11 @@ NTSTATUS ZwClose(HANDLE Handle)
 {
        g_return_val_if_fail(Handle!=NULL,STATUS_INVALID_HANDLE);
 
+       /* FIXME: libcaptive does not yet create the threads (thread objects)
+        * but ntfs.sys will ZwClose() immediately after its PsCreateSystemThread().
+        */
+       if (Handle==(HANDLE)&PsCreateSystemThread_bogusthread)
+               return STATUS_SUCCESS;
+
        return NtClose(Handle);
 }