migrate substitution keywords to SVN
[reactos.git] / reactos / lib / ntdll / rtl / callback.c
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * PURPOSE: User-mode callback support
6 * FILE: lib/ntdll/rtl/callback.c
7 * PROGRAMER: David Welch <welch@cwcom.net>
8 */
9
10 /* INCLUDES *****************************************************************/
11
12 #include <ddk/ntddk.h>
13 #include <string.h>
14 #include <napi/teb.h>
15
16
17 /* TYPES *********************************************************************/
18
19 typedef NTSTATUS STDCALL_FUNC (*CALLBACK_FUNCTION)(PVOID Argument,
20 ULONG ArgumentLength);
21
22 /* FUNCTIONS *****************************************************************/
23
24 VOID STDCALL
25 KiUserCallbackDispatcher(ULONG RoutineIndex,
26 PVOID Argument,
27 ULONG ArgumentLength)
28 {
29 PPEB Peb;
30 NTSTATUS Status;
31 CALLBACK_FUNCTION Callback;
32
33 Peb = NtCurrentPeb();
34 Callback = (CALLBACK_FUNCTION)Peb->KernelCallbackTable[RoutineIndex];
35 Status = Callback(Argument, ArgumentLength);
36 ZwCallbackReturn(NULL, 0, Status);
37 }