2005-01-06 13:58:04 +00:00
|
|
|
/* $Id$
|
2003-12-02 11:38:47 +00:00
|
|
|
*
|
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS system libraries
|
|
|
|
* FILE: subsys/csrss/include/csrplugin.h
|
|
|
|
* PURPOSE: CSRSS plugin interface
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* CSRSS is a native application and can only implicitly link against native
|
|
|
|
* DLLs. Since e.g. user32.dll and gdi32.dll are win32 DLLs and not native
|
|
|
|
* DLLs it is not possible to call functions in those DLLs directly from
|
|
|
|
* CSRSS.
|
|
|
|
* However, it is possible to explicitly load a non-native DLL. Such a DLL
|
|
|
|
* can then in turn be implicitly linked against other DLLs in its own
|
|
|
|
* subsystem.
|
|
|
|
*/
|
|
|
|
|
2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2003-12-02 11:38:47 +00:00
|
|
|
|
|
|
|
#include <windows.h>
|
|
|
|
#include "api.h"
|
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
typedef NTSTATUS (WINAPI *CSRSS_ENUM_PROCESSES_PROC)(CSRSS_ENUM_PROCESS_PROC EnumProc,
|
2005-12-01 22:38:03 +00:00
|
|
|
PVOID Context);
|
2003-12-02 11:38:47 +00:00
|
|
|
|
|
|
|
typedef struct tagCSRSS_EXPORTED_FUNCS
|
|
|
|
{
|
2005-12-01 22:38:03 +00:00
|
|
|
CSRSS_ENUM_PROCESSES_PROC CsrEnumProcessesProc;
|
2003-12-02 11:38:47 +00:00
|
|
|
} CSRSS_EXPORTED_FUNCS, *PCSRSS_EXPORTED_FUNCS;
|
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
typedef BOOL (WINAPI *CSRPLUGIN_INIT_COMPLETE_PROC)(void);
|
2004-05-28 21:33:41 +00:00
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
typedef BOOL (WINAPI *CSRPLUGIN_HARDERROR_PROC)(IN PCSRSS_PROCESS_DATA ProcessData,
|
2007-12-22 17:18:32 +00:00
|
|
|
IN PHARDERROR_MSG HardErrorMessage);
|
2006-10-30 14:20:45 +00:00
|
|
|
|
2010-05-22 23:47:54 +00:00
|
|
|
typedef NTSTATUS (WINAPI *CSRPLUGIN_PROCESS_INHERIT_PROC)(IN PCSRSS_PROCESS_DATA SourceProcessData,
|
|
|
|
IN PCSRSS_PROCESS_DATA TargetProcessData);
|
|
|
|
|
|
|
|
typedef NTSTATUS (WINAPI *CSRPLUGIN_PROCESS_DELETED_PROC)(IN PCSRSS_PROCESS_DATA ProcessData);
|
|
|
|
|
|
|
|
typedef struct tagCSRSS_SERVER_PROCS
|
|
|
|
{
|
|
|
|
CSRPLUGIN_INIT_COMPLETE_PROC InitCompleteProc;
|
|
|
|
CSRPLUGIN_HARDERROR_PROC HardErrorProc;
|
|
|
|
CSRPLUGIN_PROCESS_INHERIT_PROC ProcessInheritProc;
|
|
|
|
CSRPLUGIN_PROCESS_DELETED_PROC ProcessDeletedProc;
|
|
|
|
} CSRPLUGIN_SERVER_PROCS, *PCSRPLUGIN_SERVER_PROCS;
|
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
typedef BOOL (WINAPI *CSRPLUGIN_INITIALIZE_PROC)(PCSRSS_API_DEFINITION *ApiDefinitions,
|
2010-05-22 23:47:54 +00:00
|
|
|
PCSRPLUGIN_SERVER_PROCS ServerProcs,
|
2003-12-02 11:38:47 +00:00
|
|
|
PCSRSS_EXPORTED_FUNCS Exports,
|
|
|
|
HANDLE CsrssApiHeap);
|
|
|
|
|
|
|
|
/* EOF */
|