mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[NTOSKRNK]
Implement KiCallbackReturnHandler svn path=/trunk/; revision=61040
This commit is contained in:
parent
6f0131873e
commit
d9d963a62f
|
@ -236,7 +236,7 @@ KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
|
|||
IN PFX_SAVE_AREA SaveArea)
|
||||
{
|
||||
ULONG Cr0, Mask, Error, ErrorOffset, DataOffset;
|
||||
|
||||
|
||||
/* Check for VDM trap */
|
||||
ASSERT((KiVdmTrap(TrapFrame)) == FALSE);
|
||||
|
||||
|
@ -245,7 +245,7 @@ KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
|
|||
{
|
||||
/* Kernel might've tripped a delayed error */
|
||||
SaveArea->Cr0NpxState |= CR0_TS;
|
||||
|
||||
|
||||
/* Only valid if it happened during a restore */
|
||||
//if ((PVOID)TrapFrame->Eip == FrRestore)
|
||||
{
|
||||
|
@ -1455,7 +1455,16 @@ VOID
|
|||
FASTCALL
|
||||
KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame)
|
||||
{
|
||||
UNIMPLEMENTED_DBGBREAK();
|
||||
NTSTATUS Status;
|
||||
|
||||
/* Pass the register parameters to NtCallbackReturn.
|
||||
Result pointer is in ecx, result length in edx, status in eax */
|
||||
Status = NtCallbackReturn((PVOID)TrapFrame->Ecx,
|
||||
TrapFrame->Edx,
|
||||
TrapFrame->Eax);
|
||||
|
||||
/* If we got here, something went wrong. Return an error to the caller */
|
||||
KiServiceExit(TrapFrame, Status);
|
||||
}
|
||||
|
||||
DECLSPEC_NORETURN
|
||||
|
@ -1567,7 +1576,7 @@ KiSystemCall(IN PKTRAP_FRAME TrapFrame,
|
|||
/* Decode the system call number */
|
||||
Offset = (SystemCallNumber >> SERVICE_TABLE_SHIFT) & SERVICE_TABLE_MASK;
|
||||
Id = SystemCallNumber & SERVICE_NUMBER_MASK;
|
||||
|
||||
|
||||
/* Get descriptor table */
|
||||
DescriptorTable = (PVOID)((ULONG_PTR)Thread->ServiceTable + Offset);
|
||||
|
||||
|
|
Loading…
Reference in a new issue