共用方式為


2.4.37 FilePipeLocalInformation

This information class is used to query information on a named pipe that is associated with the end of the pipe that is being queried.

A FILE_PIPE_LOCAL_INFORMATION data element, defined as follows, is returned by the server.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

NamedPipeType

NamedPipeConfiguration

MaximumInstances

CurrentInstances

InboundQuota

ReadDataAvailable

OutboundQuota

WriteQuotaAvailable

NamedPipeState

NamedPipeEnd

NamedPipeType (4 bytes):  A 32-bit unsigned integer that contains the named pipe type. MUST be one of the following.

Value

Meaning

FILE_PIPE_BYTE_STREAM_TYPE

0x00000000

If this value is specified, data MUST be read from the pipe as a stream of bytes.

FILE_PIPE_MESSAGE_TYPE

0x00000001

If this flag is specified, data MUST be read from the pipe as a stream of messages.

NamedPipeConfiguration (4 bytes):  A 32-bit unsigned integer that contains the named pipe configuration. MUST be one of the following.

Value

Meaning

FILE_PIPE_INBOUND

0x00000000

If this value is specified, the flow of data in the pipe goes from client to server only.

FILE_PIPE_OUTBOUND

0x00000001

If this value is specified, the flow of data in the pipe goes from server to client only.

FILE_PIPE_FULL_DUPLEX

0x00000002

If this value is specified, the pipe is bi-directional; both server and client processes can read from and write to the pipe.

MaximumInstances (4 bytes):  A 32-bit unsigned integer that contains the maximum number of instances that can be created for this pipe.

CurrentInstances (4 bytes):  A 32-bit unsigned integer that contains the number of current named pipe instances.

InboundQuota (4 bytes): A 32-bit unsigned integer that contains the inbound quota, in bytes, for the named pipe. The inbound quota is the size of the buffer reserved for inbound transfer of data on the pipe.

ReadDataAvailable (4 bytes):  A 32-bit unsigned integer that contains the bytes of data available to be read from the named pipe.

OutboundQuota (4 bytes): A 32-bit unsigned integer that contains the outbound quota, in bytes, for the named pipe. The outbound quota is the size of the buffer reserved for outbound transfer of data on the pipe.

WriteQuotaAvailable (4 bytes): A 32-bit unsigned integer that contains the write quota, in bytes, for the named pipe. If the NamedPipeEnd field is set to FILE_PIPE_CLIENT_END, the WriteQuotaAvailable field is the remaining InboundQuota field available. If the NamedPipeEnd field is set to FILE_PIPE_SERVER_END, the WriteQuotaAvailable field is the remaining OutboundQuota field available.

NamedPipeState (4 bytes):  A 32-bit unsigned integer that contains the named pipe state that specifies the connection status for the named pipe. MUST be one of the following.

Value

Meaning

FILE_PIPE_DISCONNECTED_STATE

0x00000001

Named pipe is disconnected.

FILE_PIPE_LISTENING_STATE

0x00000002

Named pipe is waiting to establish a connection.

FILE_PIPE_CONNECTED_STATE

0x00000003

Named pipe is connected.

FILE_PIPE_CLOSING_STATE

0x00000004

Named pipe is in the process of being closed.

NamedPipeEnd (4 bytes):  A 32-bit unsigned integer that contains the type of the named pipe end, which specifies whether this is the client or the server side of a named pipe. MUST be one of the following.

Value

Meaning

FILE_PIPE_CLIENT_END

0x00000000

This is the client end of a named pipe.

FILE_PIPE_SERVER_END

0x00000001

This is the server end of a named pipe.

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.

For more information on named pipes, please see [PIPE].