GetNamedPipeHandleState

The GetNamedPipeHandleState function retrieves information about a specified named pipe. The information returned can vary during the lifetime of an instance of the named pipe.

BOOL GetNamedPipeHandleState(
  HANDLE hNamedPipe,             // handle to named pipe
  LPDWORD lpState,               // pointer to pipe state flags state
  LPDWORD lpCurInstances,        // pointer to number of current pipe instances
  LPDWORD lpMaxCollectionCount,  // pointer to maximum collection count 
  LPDWORD lpCollectDataTimeout,  // pointer to time before remote transmission
  LPTSTR lpUserName,             // pointer to user name of client process
  DWORD nMaxUserNameSize         // size, in characters, of user name buffer
);
 

Parameters

hNamedPipe
Handle to the named pipe for which information is wanted. The handle must have GENERIC_READ access to the named pipe.

Windows NT: This parameter can also be a handle to an anonymous pipe, as returned by the CreatePipe function.

lpState
Pointer to a 32-bit variable that indicates the current state of the handle. This parameter can be NULL if this information is not needed. Either or both of the following values can be specified:
Value Meaning
PIPE_NOWAIT The pipe handle is in nonblocking mode. If this flag is not specified, the pipe handle is in blocking mode.
PIPE_READMODE_MESSAGE The pipe handle is in message-read mode. If this flag is not specified, the pipe handle is in byte-read mode.

lpCurInstances
Pointer to a 32-bit variable that receives the number of current pipe instances. This parameter can be NULL if this information is not required.
lpMaxCollectionCount
Pointer to a 32-bit variable that receives the maximum number of bytes to be collected on the client's computer before transmission to the server. This parameter must be NULL if the specified pipe handle is to the server end of a named pipe or if client and server processes are on the same computer. This parameter can be NULL if this information is not required.
lpCollectDataTimeout
Pointer to a 32-bit variable that receives the maximum time, in milliseconds, that can pass before a remote named pipe transfers information over the network. This parameter must be NULL if the specified pipe handle is to the server end of a named pipe or if client and server processes are on the same computer. This parameter can be NULL if this information is not required.
lpUserName
Pointer to a buffer that receives the null-terminated string containing the user name string of the client application. This parameter must be NULL if the specified pipe handle is to the client end of a named pipe. This parameter can be NULL if this information is not required.
nMaxUserNameSize
Specifies the size, in characters, of the buffer specified by the lpUserName parameter. This parameter is ignored if lpUserName is NULL.

Return Values

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The GetNamedPipeHandleState function returns successfully even if all of the pointers passed to it are NULL.

To set the pipe handle state, use the SetNamedPipeHandleState function.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.

See Also

Pipes Overview, Pipe Functions, SetNamedPipeHandleState