Named Pipe Modes
A number of modes associated with a named pipe or with a handle to a named
pipe affect the use and behavior of the pipe. Some of these modes can be set
differently for each handle to a pipe, while others must be the same for all handles
to a pipe.
The server process specifies the following modes when it calls the
CreateNamedPipe function. The type and access modes must be the same for all instances of a
pipe.
Mode
| Meaning
|
Type
| PIPE_TYPE_BYTE or PIPE_TYPE_MESSAGE. The type mode determines whether data is
written to a named pipe as a stream of messages or as a stream of bytes. If no
type is specified in CreateNamedPipe, the default is PIPE_TYPE_BYTE. A handle to a byte pipe must be in byte-read
mode. A handle to a message pipe can be in either byte-read or message-read
mode. For more information about pipe types, see Named Pipe Type and Read Mode.
|
Access
| PIPE_ACCESS_INBOUND, PIPE_ACCESS_OUTBOUND, or PIPE_ACCESS_DUPLEX. This mode is
equivalent to specifying the read or write access of the server's handles to
the pipe, where inbound is equivalent to GENERIC_READ access, outbound is
equivalent to GENERIC_WRITE access, and duplex is equivalent to GENERIC_READ |
GENERIC_WRITE access. Client processes using the CreateFile function to connect to a named pipe must specify an access compatible with
the access specified by the server. For example, a client must specify
GENERIC_READ access for an outbound pipe.
|
The remaining pipe modes can differ for each pipe handle. This means that the
client and server ends of the same pipe instance can use different modes.
CreateNamedPipe sets all of these modes for the pipe handles of a server.
CreateFile supports setting the overlapped and write-through modes for the pipe handles
of a client. Both client and server processes use the
SetNamedPipeHandleState function to set the read and wait modes of a pipe handle.
Mode
| Meaning
|
Read
| PIPE_READMODE_BYTE or PIPE_READMODE_MESSAGE. In byte-read mode, data is read
from a named pipe as a stream of bytes. In message-read mode, data is read from
a named pipe as a stream of messages. Only byte-read mode is allowed for
byte-type pipes. Either byte-read or message-read mode is allowed for message-type
pipes. The default is byte-type mode, if no read mode is specified in CreateNamedPipe. For more information about read modes, see Named Pipe Type and Read Mode.
|
Wait
| PIPE_WAIT or PIPE_NOWAIT. In blocking-wait mode, the ReadFile, WriteFile, and ConnectNamedPipe functions wait indefinitely in some situations for a process on the other
end of the pipe to perform an action. In nonblocking-wait mode, the functions
return if they cannot finish their operations immediately. For more information
about wait modes, see Blocking and Nonblocking Pipe Operations.
|
Overlapped
| FILE_FLAG_OVERLAPPED. In overlapped mode, functions performing read, write,
and connect operations that take a significant time to be completed can return
immediately. This enables the thread to perform other operations while a
time-consuming operation executes in the background. For more information about
overlapped mode, see Synchronous and Overlapped Input and Output.
|
Write-through
| FILE_FLAG_WRITE_THROUGH. In write-through mode, the functions that write to a
named pipe do not return until the data written is transmitted across the
network and into the pipe's buffer on the remote computer. This mode affects only
write operations on byte-type pipes and, then, only when the client and server
processes are on different computers. If write-through mode is not enabled, a
write function returns successfully, even if the data is not transmitted. For more
information about write-through modes, see Write-through to Remote Clients.
|
The initial read mode for a pipe handle is specified when a server process
calls
CreateNamedPipe. If PIPE_READMODE_BYTE is specified or if no read mode is specified, the pipe
handle is created in byte-read mode. If both PIPE_READMODE_MESSAGE and
PIPE_TYPE_MESSAGE are specified, the handle is created in message-read mode. For a
client process, a pipe handle returned by
CreateFile is always in byte-read mode initially. Both client and server processes can
use the
SetNamedPipeHandleState function to change the read mode of a pipe handle. For a message-type pipe,
the read mode can be different for server and client handles to the same pipe
instance.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database