2.4.36 FilePipeInformation
This information class is used to query or set information on a named pipe that is not specific to one end of the pipe or another.
A FILE_PIPE_INFORMATION data element, defined as follows, is returned by the server or provided by the client.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ReadMode |
|||||||||||||||||||||||||||||||
CompletionMode |
ReadMode (4 bytes): A 32-bit unsigned integer that MUST contain one of the following values.
-
Value
Meaning
FILE_PIPE_BYTE_STREAM_MODE
0x00000000
If this value is specified, data MUST be read from the pipe as a stream of bytes.
FILE_PIPE_MESSAGE_MODE
0x00000001
If this value is specified, data MUST be read from the pipe as a stream of messages.
If this field is set to FILE_PIPE_BYTE_STREAM_MODE, any attempt to subsequently change it MUST fail with a STATUS_INVALID_PARAMETER error code.
CompletionMode (4 bytes): A 32-bit unsigned integer that MUST contain one of the following values.
-
Value
Meaning
FILE_PIPE_QUEUE_OPERATION
0x00000000
If this value is specified, blocking mode MUST be enabled. When the pipe is being connected, read to, or written from, the operation is not completed until there is data to read, all data is written, or a client is connected. Use of this mode can result in the server waiting indefinitely for a client process to perform an action.
FILE_PIPE_COMPLETE_OPERATION
0x00000001
If this value is specified, non-blocking mode MUST be enabled. When the pipe is being connected, read to, or written from, the operation completes immediately.
This operation returns a status code as specified in section 2.2. Upon success, the status code returned by the function that processes this file information class is STATUS_SUCCESS. The most common error codes are listed in the following table.
Error code |
Meaning |
---|---|
STATUS_INFO_LENGTH_MISMATCH 0xC0000004 |
The specified information record length does not match the length that is required for the specified information class. |
STATUS_INVALID_PARAMETER 0xC000000D |
An invalid parameter was passed to a service or function. When setting the FilePipeInformation information level, STATUS_INVALID_PARAMETER will be returned:
|
For more information on named pipes, please see [PIPE].