SAMPLE: WFW Named Pipe Client

Last reviewed: July 23, 1997
Article ID: Q113190
3.10 3.11 WINDOWS kbnetwork kbprg kbfile

The information in this article applies to:

  • Microsoft Windows Software Development Kit (SDK) for Windows for Workgroups versions 3.1 and 3.11

SUMMARY

The file NPCLNT.EXE in the Microsoft Software Library demonstrates the named pipe client interface in Windows for Workgroups (WFW).

This sample provides a WFW named pipe client for the Win32 SDK named pipe sample (NPSERVER). This sample opens, reads, and writes to the named pipe created by the NPSERVER application. The DosReadAsyncNmPipe API is used to perform asynchronous reads from the server's named pipe to avoid blocking under WFW.

NOTE: This sample has two problems.

  • The NP callback should be in a fixed code segment in a DLL.
  • Memory passed to DosReadAsyncNmPipe and DosWriteAsyncNmPipe should be fixed and pagelocked.

MORE INFORMATION

Care must be taken when using DosReadAsyncNmPipe or DosWriteAsyncNmPipe. Because both APIs provide WFW a function pointer that is called at interrupt time, only limited operations may be performed in the callback. The WFW SDK reference states the following about the callback function:

   Generally, the callback function can set global variables and check the
   variable specified by the pusErrCode parameter for potential errors. But
   the callback function must not modify registers or call any MS-DOS
   system functions, BIOS functions, or C run-time functions that call MS-
   DOS and BIOS functions. Although the callback function can call the
   PostMessage function, it must not call the SendMessage function.

Also, the callback function must be exported in the application's *.DEF file. Besides exporting, the application must call MakeProcInstance on the function before calling the asynchronous API. Care must also be taken not to call FreeProcInstance while a read or write is outstanding.

NPCLNT.EXE can be downloaded as a self-extracting file from the Microsoft Software Library (MSL) on the following services:

  • Microsoft Download Service (MSDL)

          Dial (206) 936-6735 to connect to MSDL
          Download NPCLNT.EXE (size: 34295 bytes) 
    
  • Internet (anonymous FTP)

          ftp ftp.microsoft.com
          Change to the \SOFTLIB\MSLFILES directory
          Get NPCLNT.EXE (size: 34295 bytes) 
    


Additional reference words: WFW Workgroups 3.10 3.11 Named Pipe softlib
NPCLNT.EXE
DosReadAsyncNmPipe DosWriteAsyncNmPipe
KBCategory: kbnetwork kbprg kbfile
KBSubcategory: NtwkNmPipe
Keywords : kb16bitonly NtwkNmPipe kbfile kbnetwork kbprg
Version : 3.10 3.11
Platform : WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 23, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.