Click to open or copy the files for the RPCsvc sample.
This sample demonstrates how to implement an NT system service that uses RPC.
This particular RPC service is designed to show the performance effects of various parameters to RPC APIs and interface design.
The service can be started and stopped from either the Services control panel, the net start/stop command line, or by using the Service Controller utility (see below).
The service also provides command-line parameters which install, remove, or run (debug) the service as a console application.
This sample (and service.c) is based on the win32\service sample.
Main Files
File | Description |
Rpcsvc.idl | Interface definition language file |
Rpcsvc.acf | Attribute configuration file |
Client.c | Client main program |
Server.c | Server main program |
Service.c | Service APIs |
Makefile | Nmake file to build for Windows NT or Windows 95 |
This sample uses the following keywords:
_stprintf; _stricmp; _tprintf; addtomessagelog; atoi; bufferin1; bufferin2; bufferin3; bufferout1; bufferout2; bufferout3; bufferout4; checksecurity; closeservicehandle; cmddebugservice; cmdinstallservice; cmdremoveservice; commandlinetoargvw; controlservice; createservice; defined; deleteservice; deregistereventsource; dotimings; endtime; exit; formatmessage; free; getcommandlinew; getlasterror; getlasterrortext; getmodulefilename; getprocessheap; heapalloc; heapfree; listin; listout1; listout2; localfree; lstrlen; malloc; midl_user_allocate; midl_user_free; ndrclientinitializenew; ndrcomplexarraybuffersize; ndrcomplexarrayfree; ndrcomplexarraymarshall; ndrcomplexarrayunmarshall; ndrcomplexstructbuffersize; ndrcomplexstructmarshall; ndrcomplexstructunmarshall; ndrconformantarraybuffersize; ndrconformantarraymarshall; ndrconformantarrayunmarshall; ndrconformantvaryingarraybuffersize; ndrconformantvaryingarraymarshall; ndrconformantvaryingarrayunmarshall; ndrconvert; ndrfclong; ndrfcshort; ndrfixedarraybuffersize; ndrfixedarraymarshall; ndrfixedarrayunmarshall; ndrfreebuffer; ndrgetbuffer; ndrmapcommandfaultstatus; ndrpointerbuffersize; ndrpointerfree; ndrpointermarshall; ndrpointerunmarshall; ndrrpcssdisableallocate; ndrrpcssenableallocate; ndrsendreceive; ndrserverinitializenew; ndrsimplestructbuffersize; ndrsimplestructmarshall; ndrsimplestructunmarshall; ndrvaryingarraybuffersize; ndrvaryingarraymarshall; ndrvaryingarrayunmarshall; openscmanager; openservice; pfnallocate; pfnfree; ping; printf; queryperformancecounter; queryperformancefrequency; queryservicestatus; registereventsource; registerservicectrlhandler; reportevent; reportstatustoscmgr; rpcbindingfree; rpcbindingfromstringbinding; rpcbindingsetauthinfo; rpcbindingvectorfree; rpcepregister; rpcepunregister; rpcexcept; rpcexceptioncode; rpcimpersonateclient; rpcmgmtstopserverlistening; rpcmgmtwaitserverlisten; rpcraiseexception; rpcreverttoself; rpcserverinqbindings; rpcserverlisten; rpcserverregisterauthinfo; rpcserverregisterif; rpcserveruseprotseq; rpcservicesample_bufferin1; rpcservicesample_bufferin2; rpcservicesample_bufferin3; rpcservicesample_bufferout1; rpcservicesample_bufferout2; rpcservicesample_bufferout3; rpcservicesample_bufferout4; rpcservicesample_checksecurity; rpcservicesample_free_wrapper; rpcservicesample_listin; rpcservicesample_listout1; rpcservicesample_listout2; rpcservicesample_malloc_wrapper; rpcservicesample_ping; rpcservicesample_structsin1; rpcservicesample_structsin2; rpcservicesample_structsin3; rpcservicesample_unioncall1; rpcservicesample_unioncall2; rpcssallocate; rpcstringbindingcompose; rpcstringfree; service_ctrl; service_main; servicestart; servicestop; setconsolectrlhandler; setservicestatus; sleep; startservicectrldispatcher; starttime; structsin1; structsin2; structsin3; switch; text; unioncall1; unioncall2; usage