Jump to content

DosQNmPipeInfo

From EDM2
Revision as of 02:51, 28 July 2016 by Martini (talk | contribs) (Created page with "==Description== This call returns information for a named pipe. ==Syntax== <PRE> DosQNmPipeInfo (Handle, InfoLevel, InfoBuf, InfoBufSize) </PRE> ==Parameters== ; Hand...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

This call returns information for a named pipe.

Syntax

 DosQNmPipeInfo

    (Handle, InfoLevel, InfoBuf, InfoBufSize) 

Parameters

Handle (HPIPE) - input
Handle of the named pipe that is returned by DosMakeNmPipe or DosOpen.
InfoLevel (USHORT) - input
Level of the required pipe information. Only level 1 file information is supported.
InfoBuf (PBYTE) - output
Address of the storage area that returns the requested level of named pipe information. For InfoLevel = 1, file information is returned in the following format:

outbufsize (USHORT): Actual size of buffer for outgoing I/O.

inbufsize (USHORT) : Actual size of buffer for ingoing I/O.

maxnuminstances (UCHAR) : Maximum allowed number of pipe instances.

numinstances (UCHAR) : Current number of pipe instances.

namelength (UCHAR) : Length of pipe name.

pipename (CHAR) : Name of pipe (including \\ComputerName, if remote).

InfoBufSize (USHORT) - input
Length of InfoBuf.


Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 111 ERROR_BUFFER_OVERFLOW
  • 124 ERROR_INVALID_LEVEL
  • 230 ERROR_BAD_PIPE


Remarks

DosQNmPipeInfo returns all the information that fits in InfoBuf.

For level 1 information, if the length of the name of the pipe is greater than 255 bytes, then a length of zero is returned in the length field. The full ASCIIZ name will still be returned in this case.


Example Code

C Binding

typedef struct   npi_data1 {    /* PipeInfo data block (returned,
                                            level 1) */
   USHORT npi_obuflen;          /* length of outgoing I/O buffer */
   USHORT npi_ibuflen;          /* length of incoming I/O buffer */
   UCHAR  npi_maxicnt;          /* maximum number of instances   */
   UCHAR  npi_curicnt;          /* current number of instances   */
   UCHAR  npi_namlen;           /* length of pipe name           */
   CHAR  npi_name[1];           /* start of name       */
}; /* npi_data1 */

#define INCL_DOSNMPIPES

USHORT  rc = DosQNmPipeInfo(Handle, InfoLevel, InfoBuf, InfoBufSize);

HPIPE            Handle;        /* Pipe handle */
USHORT           InfoLevel;     /* Pipe data required */
PBYTE            InfoBuf;       /* Pipe data buffer */
USHORT           InfoBufSize;   /* Pipe data buffer size */

USHORT           rc;            /* return code */

MASM Binding

EXTRN  DosQNmPipeInfo:FAR
INCL_DOSNMPIPES     EQU 1

PUSH   WORD    Handle        ;Pipe handle
PUSH   WORD    InfoLevel     ;Pipe data required
PUSH@  OTHER   InfoBuf       ;Pipe data buffer
PUSH   WORD    InfoBufSize   ;Pipe data buffer size
CALL   DosQNmPipeInfo

Returns WORD

Related Functions