The following describes the implementation differences between the OS2Linux library and the real OS/2 Named Pipe APIs.
These APIs are included in your application by including the following definition in your application source file.
#define INCL_DOSNMPIPES
APIRET APIENTRY DosCreateNPipe(PSZ pszName, PHPIPE pHpipe, ULONG openmode,
ULONG pipemode, ULONG cbInbuf, ULONG cbOutbuf,
ULONG msec);
APIRET APIENTRY DosConnectNPipe(HPIPE hpipe);
APIRET APIENTRY DosDisConnectNPipe(HPIPE hpipe);
APIRET APIENTRY DosTransactNPipe(HPIPE hpipe, PVOID pOutbuf, ULONG cbOut,
PVOID pInbuf, ULONG cbIn, PULONG pcbRead);
APIRET APIENTRY DosCallNPipe(PSZ pszName, PVOID pInbuf, ULONG cbIn,
PVOID pOutbuf, ULONG cbOut, PULONG pcbActual,
ULONG msec);
APIRET APIENTRY DosQueryNPHState(HPIPE hpipe, PULONG pState);
APIRET APIENTRY DosWaitNPipe(PSZ pszName, ULONG msec);
APIRET APIENTRY DosSetNPipeSem(HPIPE hpipe, HSEM hsem, ULONG key);
APIRET APIENTRY DosPeekNPipe(HPIPE hpipe, PVOID pBuf, ULONG cbBuf,
PULONG pcbActual, PAVAILDATA pAvail,
PULONG pState);
APIRET APIENTRY DosQueryNPipeInfo(HPIPE hpipe, ULONG infolevel, PVOID pBuf,
ULONG cbBuf);
APIRET APIENTRY DosQueryNPipeSemState(HSEM hsem, PPIPESEMSTATE pnpss,
ULONG cbBuf);
APIRET APIENTRY DosRawReadNPipe(PSZ pszName, ULONG cb, PULONG pLen,
PVOID pBuf);
APIRET APIENTRY DosRawWriteNPipe(PSZ pszName, ULONG cb);
APIRET APIENTRY DosSetNPHState(HPIPE hpipe, ULONG state);