- Unbreak build
- Fix CallNamedPipeW, the pipe mode should also be set to PIPE_WAIT.
Modified: trunk/reactos/lib/kernel32/file/npipe.c

Modified: trunk/reactos/lib/kernel32/file/npipe.c
--- trunk/reactos/lib/kernel32/file/npipe.c	2005-11-09 02:53:58 UTC (rev 19085)
+++ trunk/reactos/lib/kernel32/file/npipe.c	2005-11-09 03:02:33 UTC (rev 19086)
@@ -674,12 +674,12 @@
                LPDWORD lpBytesRead,
                DWORD nTimeOut)
 {
-    UNICODE_STRING PipeName = &NtCurrentTeb()->StaticUnicodeString;
+    PUNICODE_STRING PipeName = &NtCurrentTeb()->StaticUnicodeString;
     ANSI_STRING AnsiPipe;
 
     /* Initialize the string as ANSI_STRING and convert to Unicode */
-    RtlInitAnsiString(&NameA, (LPSTR)lpName);
-    RtlAnsiStringToUnicodeString(NameU, &NameA, FALSE);
+    RtlInitAnsiString(&AnsiPipe, (LPSTR)lpNamedPipeName);
+    RtlAnsiStringToUnicodeString(PipeName, &AnsiPipe, FALSE);
 
     /* Call the Unicode function */
     return CallNamedPipeW(PipeName->Buffer,
@@ -694,65 +694,69 @@
 /*
  * @implemented
  */
-BOOL STDCALL
+BOOL
+WINAPI
 CallNamedPipeW(LPCWSTR lpNamedPipeName,
-	       LPVOID lpInBuffer,
-	       DWORD nInBufferSize,
-	       LPVOID lpOutBuffer,
-	       DWORD nOutBufferSize,
-	       LPDWORD lpBytesRead,
-	       DWORD nTimeOut)
+               LPVOID lpInBuffer,
+               DWORD nInBufferSize,
+               LPVOID lpOutBuffer,
+               DWORD nOutBufferSize,
+               LPDWORD lpBytesRead,
+               DWORD nTimeOut)
 {
-  HANDLE hPipe = INVALID_HANDLE_VALUE;
-  BOOL bRetry = TRUE;
-  BOOL bError = FALSE;
-  DWORD dwPipeMode;
+    HANDLE hPipe;
+    BOOL bRetry = TRUE;
+    BOOL bError;
+    DWORD dwPipeMode;
 
-  while (TRUE)
+    while (TRUE)
     {
-      hPipe = CreateFileW(lpNamedPipeName,
-			  GENERIC_READ | GENERIC_WRITE,
-			  FILE_SHARE_READ | FILE_SHARE_WRITE,
-			  NULL,
-			  OPEN_EXISTING,
-			  FILE_ATTRIBUTE_NORMAL,
-			  NULL);
-      if (hPipe != INVALID_HANDLE_VALUE)
-	break;
+        /* Try creating it */
+        hPipe = CreateFileW(lpNamedPipeName,
+                            GENERIC_READ | GENERIC_WRITE,
+                            FILE_SHARE_READ | FILE_SHARE_WRITE,
+                            NULL,
+                            OPEN_EXISTING,
+                            FILE_ATTRIBUTE_NORMAL,
+                            NULL);
 
-      if (bRetry == FALSE)
-	return(FALSE);
+        /* Success, break out */
+        if (hPipe != INVALID_HANDLE_VALUE) break;
 
-      WaitNamedPipeW(lpNamedPipeName,
-		     nTimeOut);
+        /* Already tried twice, give up */
+        if (bRetry == FALSE) return FALSE;
 
-      bRetry = FALSE;
+        /* Wait on it */
+        WaitNamedPipeW(lpNamedPipeName, nTimeOut);
+
+        /* Get ready to try again */
+        bRetry = FALSE;
     }
 
-  dwPipeMode = PIPE_READMODE_MESSAGE;
-  bError = SetNamedPipeHandleState(hPipe,
-				   &dwPipeMode,
-				   NULL,
-				   NULL);
-  if (!bError)
+    /* Set the pipe mode */
+    dwPipeMode = PIPE_READMODE_MESSAGE | PIPE_WAIT;
+    bError = SetNamedPipeHandleState(hPipe, &dwPipeMode, NULL, NULL);
+    if (!bError)
     {
-      CloseHandle(hPipe);
-      return(FALSE);
+        /* Couldn't change state, fail */
+        CloseHandle(hPipe);
+        return FALSE;
     }
 
-  bError = TransactNamedPipe(hPipe,
-			     lpInBuffer,
-			     nInBufferSize,
-			     lpOutBuffer,
-			     nOutBufferSize,
-			     lpBytesRead,
-			     NULL);
-  CloseHandle(hPipe);
-
-  return(bError);
+    /* Do the transact */
+    bError = TransactNamedPipe(hPipe,
+                               lpInBuffer,
+                               nInBufferSize,
+                               lpOutBuffer,
+                               nOutBufferSize,
+                               lpBytesRead,
+                               NULL);
+    
+    /* Close the handle and return */
+    CloseHandle(hPipe);
+    return bError;
 }
 
-
 /*
  * @implemented
  */