101 lines
1.8 KiB
C
101 lines
1.8 KiB
C
/*++
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
dlltask.c
|
|
|
|
Abstract:
|
|
|
|
This module implements Csr DLL tasking routines
|
|
|
|
Author:
|
|
|
|
Mark Lucovsky (markl) 13-Nov-1990
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "csrdll.h"
|
|
|
|
NTSTATUS
|
|
CsrNewThread(
|
|
VOID
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This function is called by each new thread (except the first thread in
|
|
a process.) It's function is to call the subsystem to notify it that
|
|
a new thread is starting.
|
|
|
|
Arguments:
|
|
|
|
None.
|
|
|
|
Return Value:
|
|
|
|
Status Code from either client or server
|
|
|
|
--*/
|
|
|
|
{
|
|
return NtRegisterThreadTerminatePort( CsrPortHandle );
|
|
}
|
|
|
|
NTSTATUS
|
|
CsrIdentifyAlertableThread( VOID )
|
|
{
|
|
NTSTATUS Status;
|
|
CSR_API_MSG m;
|
|
PCSR_IDENTIFY_ALERTABLE_MSG a = &m.u.IdentifyAlertable;
|
|
|
|
a->ClientId = NtCurrentTeb()->ClientId;
|
|
|
|
Status = CsrClientCallServer(
|
|
&m,
|
|
NULL,
|
|
CSR_MAKE_API_NUMBER( CSRSRV_SERVERDLL_INDEX,
|
|
CsrpIdentifyAlertable
|
|
),
|
|
sizeof( *a )
|
|
);
|
|
|
|
return Status;
|
|
}
|
|
|
|
|
|
NTSTATUS
|
|
CsrSetPriorityClass(
|
|
IN HANDLE ProcessHandle,
|
|
IN OUT PULONG PriorityClass
|
|
)
|
|
{
|
|
NTSTATUS Status;
|
|
CSR_API_MSG m;
|
|
PCSR_SETPRIORITY_CLASS_MSG a = &m.u.PriorityClass;
|
|
|
|
a->ProcessHandle = ProcessHandle;
|
|
a->PriorityClass = *PriorityClass;
|
|
|
|
Status = CsrClientCallServer(
|
|
&m,
|
|
NULL,
|
|
CSR_MAKE_API_NUMBER( CSRSRV_SERVERDLL_INDEX,
|
|
CsrpSetPriorityClass
|
|
),
|
|
sizeof( *a )
|
|
);
|
|
|
|
if ( *PriorityClass == 0 ) {
|
|
*PriorityClass = a->PriorityClass;
|
|
}
|
|
|
|
return Status;
|
|
|
|
}
|