}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- Status = _SEH2_GetExceptionCode();
+ /* Return the exception code */
+ _SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
-
- if (!NT_SUCCESS(Status))
- {
- return Status;
- }
}
/* allocate enough memory or check if the provided buffer is
*Dest = ExAllocatePool(PoolType,
BufferSize);
- if (&Dest == NULL)
+ if (*Dest == NULL)
{
return STATUS_INSUFFICIENT_RESOURCES;
}
* @unimplemented
*/
NTSTATUS
-STDCALL
+NTAPI
SeAppendPrivileges(PACCESS_STATE AccessState,
PPRIVILEGE_SET Privileges)
{
}
/*
- * @unimplemented
+ * @implemented
*/
VOID
-STDCALL
+NTAPI
SeFreePrivileges(IN PPRIVILEGE_SET Privileges)
{
- UNIMPLEMENTED;
+ PAGED_CODE();
+ ExFreePool(Privileges);
}
/*
* @implemented
*/
-BOOLEAN STDCALL
+BOOLEAN NTAPI
SePrivilegeCheck (PPRIVILEGE_SET Privileges,
PSECURITY_SUBJECT_CONTEXT SubjectContext,
KPROCESSOR_MODE PreviousMode)
/*
* @implemented
*/
-BOOLEAN STDCALL
+BOOLEAN NTAPI
SeSinglePrivilegeCheck (IN LUID PrivilegeValue,
IN KPROCESSOR_MODE PreviousMode)
{
/* SYSTEM CALLS ***************************************************************/
-NTSTATUS STDCALL
+NTSTATUS NTAPI
NtPrivilegeCheck (IN HANDLE ClientToken,
IN PPRIVILEGE_SET RequiredPrivileges,
OUT PBOOLEAN Result)
ULONG Length;
BOOLEAN CheckResult;
KPROCESSOR_MODE PreviousMode;
- NTSTATUS Status = STATUS_SUCCESS;
+ NTSTATUS Status;
PAGED_CODE();
Privilege[PrivilegeCount]) /
sizeof(RequiredPrivileges->Privilege[0]) != PrivilegeCount)
{
- Status = STATUS_INVALID_PARAMETER;
- _SEH2_LEAVE;
+ _SEH2_YIELD(return STATUS_INVALID_PARAMETER);
}
/* probe all of the array */
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- Status = _SEH2_GetExceptionCode();
+ /* Return the exception code */
+ _SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
-
- if (!NT_SUCCESS(Status))
- {
- return Status;
- }
}
else
{