From: Emanuele Aliberti Date: Thu, 11 Aug 2005 20:43:24 +0000 (+0000) Subject: A more likely demo VMS server (it should not block, because it is chain-called from... X-Git-Tag: ReactOS-0.2.8~1070 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=31199007717d8a16f97c838ff91183027bc51567;hp=749cee8834e57206a954d16319967ea148a5b484 A more likely demo VMS server (it should not block, because it is chain-called from the listenig thread in csrsrv.dll. svn path=/trunk/; revision=17311 --- diff --git a/vms/server/server.c b/vms/server/server.c index 48ee885985c..9e99f96e20d 100644 --- a/vms/server/server.c +++ b/vms/server/server.c @@ -37,30 +37,21 @@ HANDLE VmsApiPort = NULL; VOID STDCALL VmsStaticServerThread (PVOID x) { NTSTATUS Status = STATUS_SUCCESS; - LPC_MAX_MESSAGE Request; + PPORT_MESSAGE Request = (PPORT_MESSAGE) x; PPORT_MESSAGE Reply = NULL; ULONG MessageType = 0; - while (TRUE) + DPRINT("VMSSRV: %s called\n", __FUNCTION__); + + MessageType = Request->u2.s2.Type; + DPRINT("VMSSRV: %s received a message (Type=%d)\n", + __FUNCTION__, MessageType); + switch (MessageType) { - Status = NtReplyWaitReceivePort (VmsApiPort, - 0, - Reply, - (PPORT_MESSAGE) & Request); - if(NT_SUCCESS(Status)) - { - MessageType = Request.Header.u2.s2.Type; - DPRINT("VMS: %s received a message (Type=%d)\n", - __FUNCTION__, MessageType); - switch(MessageType) - { - default: - continue; - } - }else{ - DPRINT("VMS: %s: NtReplyWaitReceivePort failed (Status=%08lx)\n", - __FUNCTION__, Status); - } + default: + Reply = Request; + Status = NtReplyPort (VmsApiPort, Reply); + break; } } @@ -71,7 +62,23 @@ VOID STDCALL VmsStaticServerThread (PVOID x) NTSTATUS STDCALL ServerDllInitialization (ULONG ArgumentCount, LPWSTR *Argument) { - return CsrAddStaticServerThread (VmsStaticServerThread); + NTSTATUS Status = STATUS_SUCCESS; + + DPRINT("VMSSRV: %s called\n", __FUNCTION__); + + // Get the listening port from csrsrv.dll + VmsApiPort = CsrQueryApiPort (); + if (NULL == VmsApiPort) + { + return STATUS_UNSUCCESSFUL; + } + // Register our message dispatcher + Status = CsrAddStaticServerThread (VmsStaticServerThread); + if (NT_SUCCESS(Status)) + { + //TODO: perform the real VMS server internal initialization here + } + return Status; } /* EOF */