2005-09-25 18:17:27 +00:00
|
|
|
/*
|
2005-09-25 13:43:33 +00:00
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS kernel
|
|
|
|
* FILE: lib/ntdll/csr/api.c
|
|
|
|
* PURPOSE: CSR APIs exported through NTDLL
|
|
|
|
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* INCLUDES *****************************************************************/
|
|
|
|
|
|
|
|
#include <ntdll.h>
|
|
|
|
#define NDEBUG
|
|
|
|
#include <debug.h>
|
|
|
|
|
|
|
|
/* GLOBALS *******************************************************************/
|
|
|
|
extern HANDLE CsrApiPort;
|
|
|
|
|
|
|
|
/* FUNCTIONS *****************************************************************/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @implemented
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
CsrNewThread(VOID)
|
|
|
|
{
|
|
|
|
/* Register the termination port to CSR's */
|
|
|
|
return NtRegisterThreadTerminatePort(CsrApiPort);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @implemented
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
CsrSetPriorityClass(HANDLE hProcess,
|
|
|
|
PULONG PriorityClass)
|
|
|
|
{
|
|
|
|
NTSTATUS Status;
|
2012-10-17 23:10:40 +00:00
|
|
|
CSR_API_MESSAGE ApiMessage;
|
|
|
|
PCSR_SET_PRIORITY_CLASS SetPriorityClass = &ApiMessage.Data.SetPriorityClass;
|
2005-09-25 13:43:33 +00:00
|
|
|
|
|
|
|
/* Set up the data for CSR */
|
|
|
|
DbgBreakPoint();
|
|
|
|
SetPriorityClass->hProcess = hProcess;
|
|
|
|
SetPriorityClass->PriorityClass = *PriorityClass;
|
|
|
|
|
|
|
|
/* Call it */
|
2012-10-17 23:10:40 +00:00
|
|
|
Status = CsrClientCallServer(&ApiMessage,
|
2005-09-25 13:43:33 +00:00
|
|
|
NULL,
|
2012-10-17 23:10:40 +00:00
|
|
|
CSR_CREATE_API_NUMBER(CSR_SRV_SERVER, CsrpSetPriorityClass),
|
2005-09-25 13:43:33 +00:00
|
|
|
sizeof(CSR_SET_PRIORITY_CLASS));
|
|
|
|
|
|
|
|
/* Return what we got, if requested */
|
|
|
|
if (*PriorityClass) *PriorityClass = SetPriorityClass->PriorityClass;
|
|
|
|
|
|
|
|
/* Return to caller */
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @implemented
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
CsrIdentifyAlertableThread (VOID)
|
|
|
|
{
|
|
|
|
NTSTATUS Status;
|
2012-10-17 23:10:40 +00:00
|
|
|
CSR_API_MESSAGE ApiMessage;
|
2005-09-25 13:43:33 +00:00
|
|
|
PCSR_IDENTIFY_ALTERTABLE_THREAD IdentifyAlertableThread;
|
|
|
|
|
|
|
|
/* Set up the data for CSR */
|
|
|
|
DbgBreakPoint();
|
2012-10-17 23:10:40 +00:00
|
|
|
IdentifyAlertableThread = &ApiMessage.Data.IdentifyAlertableThread;
|
2008-08-25 16:38:02 +00:00
|
|
|
IdentifyAlertableThread->Cid = NtCurrentTeb()->ClientId;
|
2005-09-25 13:43:33 +00:00
|
|
|
|
|
|
|
/* Call it */
|
2012-10-17 23:10:40 +00:00
|
|
|
Status = CsrClientCallServer(&ApiMessage,
|
2005-09-25 13:43:33 +00:00
|
|
|
NULL,
|
2012-10-17 23:10:40 +00:00
|
|
|
CSR_CREATE_API_NUMBER(CSR_SRV_SERVER, CsrpIdentifyAlertable),
|
2005-09-25 13:43:33 +00:00
|
|
|
sizeof(CSR_SET_PRIORITY_CLASS));
|
|
|
|
|
|
|
|
/* Return to caller */
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* EOF */
|