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.
 
 
 
 
 
 

166 lines
3.1 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
itsrv.c
Abstract:
This module builds a console test program that registers RPC
interfaces for idle detection and runs as the idle detection server.
The quality of the code for the test programs is as such.
Author:
Cenk Ergan (cenke)
Environment:
User Mode
--*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include "idlrpc.h"
#include "idlesrv.h"
//
// Note that the following code is test quality code.
//
HANDLE ItTstStopEvent = NULL;
BOOL
ItTstConsoleHandler(DWORD dwControl)
{
if (ItTstStopEvent) {
SetEvent(ItTstStopEvent);
}
return TRUE;
}
VOID
LogTaskStatus(
LPCTSTR ptszTaskName,
LPTSTR ptszTaskTarget,
UINT uMsgID,
DWORD dwExitCode
)
{
return;
}
int
__cdecl
main(int argc, char* argv[])
{
DWORD ErrorCode;
DWORD WaitResult;
BOOLEAN StartedIdleDetectionServer;
//
// Initialize locals.
//
StartedIdleDetectionServer = FALSE;
//
// Create the event to be signaled when we should stop.
//
ItTstStopEvent = CreateEvent (NULL,
TRUE,
FALSE,
NULL);
if (ItTstStopEvent == NULL) {
ErrorCode = GetLastError();
goto cleanup;
}
//
// Specify Control-C handler.
//
SetConsoleCtrlHandler(ItTstConsoleHandler, TRUE);
//
// Specify which protocol sequences to use. (just LPC)
//
ErrorCode = RpcServerUseProtseq(IT_RPC_PROTSEQ,
256,
NULL);
if (ErrorCode != RPC_S_OK) {
goto cleanup;
}
//
// Start the idle detection server.
//
ErrorCode = ItSrvInitialize();
if (ErrorCode != ERROR_SUCCESS) {
goto cleanup;
}
StartedIdleDetectionServer = TRUE;
printf("Started idle detection server...\n");
//
// Wait for the exit event to be signaled.
//
WaitResult = WaitForSingleObject(ItTstStopEvent, INFINITE);
if (WaitResult != WAIT_OBJECT_0) {
ErrorCode = GetLastError();
goto cleanup;
}
//
// We are done.
//
ErrorCode = ERROR_SUCCESS;
cleanup:
if (StartedIdleDetectionServer) {
ItSrvUninitialize();
}
if (ItTstStopEvent) {
CloseHandle(ItTstStopEvent);
}
printf("Exiting idle detection server with error code: %d\n", ErrorCode);
return ErrorCode;
}
/*********************************************************************/
/* MIDL allocate and free */
/*********************************************************************/
void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len)
{
return(HeapAlloc(GetProcessHeap(),0,(len)));
}
void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
{
HeapFree(GetProcessHeap(),0,(ptr));
}