VOID
NTAPI
+INIT_FUNCTION
PspInitializeJobStructures(VOID)
{
InitializeListHead(&PsJobListHead);
PEJOB Job;
KPROCESSOR_MODE PreviousMode;
PEPROCESS CurrentProcess;
- NTSTATUS Status = STATUS_SUCCESS;
+ NTSTATUS Status;
PAGED_CODE();
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,
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;
}
}
{
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;