[CMAKE]
[reactos.git] / ntoskrnl / ps / job.c
index a1fa2f1..7bded05 100644 (file)
@@ -72,6 +72,7 @@ PspDeleteJob ( PVOID ObjectBody )
 
 VOID
 NTAPI
+INIT_FUNCTION
 PspInitializeJobStructures(VOID)
 {
     InitializeListHead(&PsJobListHead);
@@ -226,7 +227,7 @@ NtCreateJobObject (
     PEJOB Job;
     KPROCESSOR_MODE PreviousMode;
     PEPROCESS CurrentProcess;
-    NTSTATUS Status = STATUS_SUCCESS;
+    NTSTATUS Status;
 
     PAGED_CODE();
 
@@ -234,22 +235,17 @@ NtCreateJobObject (
     CurrentProcess = PsGetCurrentProcess();
 
     /* check for valid buffers */
-    if(PreviousMode != KernelMode)
+    if (PreviousMode != KernelMode)
     {
-        _SEH_TRY
+        _SEH2_TRY
         {
             ProbeForWriteHandle(JobHandle);
         }
-        _SEH_HANDLE
-        {
-            Status = _SEH_GetExceptionCode();
-        }
-        _SEH_END;
-
-        if(!NT_SUCCESS(Status))
+        _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
         {
-            return Status;
+            _SEH2_YIELD(return _SEH2_GetExceptionCode());
         }
+        _SEH2_END;
     }
 
     Status = ObCreateObject(PreviousMode,
@@ -298,18 +294,18 @@ NtCreateJobObject (
         if(NT_SUCCESS(Status))
         {
             /* pass the handle back to the caller */
-            _SEH_TRY
+            _SEH2_TRY
             {
                 /* NOTE: if the caller passed invalid buffers to receive the handle it's his
                 own fault! the object will still be created and live... It's possible
                 to find the handle using ObFindHandleForObject()! */
                 *JobHandle = hJob;
             }
-            _SEH_HANDLE
+            _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
             {
-                Status = _SEH_GetExceptionCode();
+                Status = _SEH2_GetExceptionCode();
             }
-            _SEH_END;
+            _SEH2_END;
         }
     }
 
@@ -397,52 +393,44 @@ NtOpenJobObject (
 {
     KPROCESSOR_MODE PreviousMode;
     HANDLE hJob;
-    NTSTATUS Status = STATUS_SUCCESS;
+    NTSTATUS Status;
 
     PAGED_CODE();
 
     PreviousMode = ExGetPreviousMode();
 
     /* check for valid buffers */
-    if(PreviousMode != KernelMode)
+    if (PreviousMode != KernelMode)
     {
-        _SEH_TRY
+        _SEH2_TRY
         {
             ProbeForWriteHandle(JobHandle);
         }
-        _SEH_HANDLE
+        _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
         {
-            Status = _SEH_GetExceptionCode();
-        }
-        _SEH_END;
-
-        if(!NT_SUCCESS(Status))
-        {
-            return Status;
+            _SEH2_YIELD(return _SEH2_GetExceptionCode());
         }
+        _SEH2_END;
     }
 
+    Status = ObOpenObjectByName(ObjectAttributes,
+        PsJobType,
+        PreviousMode,
+        NULL,
+        DesiredAccess,
+        NULL,
+        &hJob);
     if(NT_SUCCESS(Status))
     {
-        Status = ObOpenObjectByName(ObjectAttributes,
-            PsJobType,
-            PreviousMode,
-            NULL,
-            DesiredAccess,
-            NULL,
-            &hJob);
-        if(NT_SUCCESS(Status))
+        _SEH2_TRY
         {
-            _SEH_TRY
-            {
-                *JobHandle = hJob;
-            }
-            _SEH_HANDLE
-            {
-                Status = _SEH_GetExceptionCode();
-            }
-            _SEH_END;
+            *JobHandle = hJob;
+        }
+        _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+        {
+            Status = _SEH2_GetExceptionCode();
         }
+        _SEH2_END;
     }
 
     return Status;