Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1106990 Microsoft Corporation
Module Name:
splsvr.h
Abstract:
Header file for Spooler Service. Contains all function prototypes
Author:
Krishna Ganugapati (KrishnaG) 18-Oct-1993
Notes:
Revision History: 4-Jan-1999 Khaleds Added Code for optimiziting the load time of the spooler by decoupling the startup dependency between spoolsv and spoolss --*/ //
// Spooler Service States (used as return codes)
//
#define UPDATE_ONLY 0 // no change in state - just send current status.
#define STARTING 1 // the messenger is initializing.
#define RUNNING 2 // initialization completed normally - now running
#define STOPPING 3 // uninstall pending
#define STOPPED 4 // uninstalled
//
// Forced Shutdown PendingCodes
//
#define PENDING TRUE
#define IMMEDIATE FALSE
#define SPOOLER_START_PHASE_TWO_INIT 2*60*1000
//
// Based on the data fed back to us from perf devs,
// the maximum number of threads encountered in their
// tests was 2385 threads at the rate of ~12000
// jobs/min. This is at 72% CPU capacity and so the
// following number is suggested as a threshold to
// be on the safe side with serving i/p concurrent
// RPC client requests
//
#define SPL_MAX_RPC_CALLS 6000
extern HANDLE TerminateEvent; extern HANDLE hPhase2Init; extern WCHAR szSpoolerExitingEvent[];
//
// Function Prototypes
//
DWORD GetSpoolerState ( VOID );
DWORD SpoolerBeginForcedShutdown( IN BOOL PendingCode, IN DWORD Win32ExitCode, IN DWORD ServiceSpecificExitCode );
DWORD SpoolerInitializeSpooler( DWORD argc, LPTSTR *argv );
VOID SpoolerShutdown(VOID);
VOID SpoolerStatusInit(VOID);
DWORD SpoolerStatusUpdate( IN DWORD NewState );
DWORD SpoolerCtrlHandler( IN DWORD opcode, IN DWORD dwEventType, IN PVOID pEventData, IN PVOID pData );
DWORD SplProcessPnPEvent( IN DWORD dwEventType, IN PVOID pEventData, IN PVOID pData );
VOID SplStartPhase2Init( VOID);
BOOL SplPowerEvent( DWORD );
RPC_STATUS SpoolerStartRpcServer( VOID );
RPC_STATUS SpoolerStopRpcServer( VOID );
VOID SPOOLER_main ( IN DWORD argc, IN LPTSTR argv[] );
PSECURITY_DESCRIPTOR CreateNamedPipeSecurityDescriptor( VOID );
BOOL BuildNamedPipeProtection( IN PUCHAR AceType, IN DWORD AceCount, IN PSID *AceSid, IN ACCESS_MASK *AceMask, IN BYTE *InheritFlags, IN PSID OwnerSid, IN PSID GroupSid, IN PGENERIC_MAPPING GenericMap, OUT PSECURITY_DESCRIPTOR *ppSecurityDescriptor );
HRESULT ServerAllowRemoteCalls( VOID );
HRESULT RegisterNamedPipe( VOID );
HRESULT ServerGetPolicy( IN PCWSTR pszPolicyName, IN ULONG* pulValue );
|