|
#define | DEVICE_NAMED_PIPE L"\\Device\\NamedPipe" |
|
#define | BYTE_STREAM FILE_PIPE_BYTE_STREAM_MODE |
|
#define | MESSAGE FILE_PIPE_MESSAGE_MODE |
|
#define | QUEUE FILE_PIPE_QUEUE_OPERATION |
|
#define | COMPLETE FILE_PIPE_COMPLETE_OPERATION |
|
#define | INBOUND FILE_PIPE_INBOUND |
|
#define | OUTBOUND FILE_PIPE_OUTBOUND |
|
#define | DUPLEX FILE_PIPE_FULL_DUPLEX |
|
#define | NpListenPipe(ServerHandle) NpControlPipe(ServerHandle, FSCTL_PIPE_LISTEN, NULL, 0) |
|
#define | NpDisconnectPipe(ServerHandle) NpControlPipe(ServerHandle, FSCTL_PIPE_DISCONNECT, NULL, 0) |
|
#define | NpCheckServerPipe(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps) NpCheckServerPipe__(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, __FILE__, __LINE__) |
|
#define | NpCheckServerPipe__(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, file, line) NpCheckServerPipe_(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, file ":" KMT_STRINGIZE(line)) |
|
#define | NpCheckClientPipe(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps) NpCheckClientPipe__(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, __FILE__, __LINE__) |
|
#define | NpCheckClientPipe__(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, file, line) NpCheckClientPipe_(h, rm, cm, npt, npc, mi, ci, iq, rsa, oq, wqa, nps, file ":" KMT_STRINGIZE(line)) |
|
#define | NpQueryPipe(h, es) NpQueryPipe__(h, es, __FILE__, __LINE__) |
|
#define | NpQueryPipe__(h, es, file, line) NpQueryPipe_(h, es, file ":" KMT_STRINGIZE(line)) |
|
|
| C_ASSERT (FILE_PIPE_BYTE_STREAM_MODE==FILE_PIPE_BYTE_STREAM_TYPE) |
|
| C_ASSERT (FILE_PIPE_MESSAGE_MODE==FILE_PIPE_MESSAGE_TYPE) |
|
NTSTATUS | NpCreatePipeEx (OUT PHANDLE ServerHandle, IN PCWSTR PipePath, IN ULONG ReadMode, IN ULONG CompletionMode, IN ULONG NamedPipeType, IN ULONG ShareAccess, IN ULONG MaximumInstances, IN ULONG InboundQuota, IN ULONG OutboundQuota, IN ACCESS_MASK DesiredAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PLARGE_INTEGER DefaultTimeout OPTIONAL) |
|
NTSTATUS | NpCreatePipe (OUT PHANDLE ServerHandle, IN PCWSTR PipePath, IN ULONG ReadMode, IN ULONG CompletionMode, IN ULONG NamedPipeType, IN ULONG NamedPipeConfiguration, IN ULONG MaximumInstances, IN ULONG InboundQuota, IN ULONG OutboundQuota) |
|
NTSTATUS | NpOpenPipeEx (OUT PHANDLE ClientHandle, IN PCWSTR PipePath, IN ACCESS_MASK DesiredAccess, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions) |
|
NTSTATUS | NpOpenPipe (OUT PHANDLE ClientHandle, IN PCWSTR PipePath, IN ULONG NamedPipeConfiguration) |
|
NTSTATUS | NpControlPipe (IN HANDLE PipeHandle, IN ULONG FsControlCode, IN PVOID InputBuffer, IN ULONG InputBufferLength) |
|
NTSTATUS | NpWaitPipe (IN PCWSTR PipeName, IN PLARGE_INTEGER Timeout) |
|
NTSTATUS | NpReadPipe (IN HANDLE PipeHandle, OUT PVOID Buffer, IN ULONG BufferSize, OUT PULONG_PTR BytesRead) |
|
NTSTATUS | NpWritePipe (IN HANDLE PipeHandle, IN const VOID *Buffer, IN ULONG BufferSize, OUT PULONG_PTR BytesWritten) |
|
VOID | NpCheckServerPipe_ (IN HANDLE ServerHandle, IN ULONG ReadMode, IN ULONG CompletionMode, IN ULONG NamedPipeType, IN ULONG NamedPipeConfiguration, IN ULONG MaximumInstances, IN ULONG CurrentInstances, IN ULONG InboundQuota, IN ULONG ReadDataAvailable, IN ULONG OutboundQuota, IN ULONG WriteQuotaAvailable, IN ULONG NamedPipeState, IN PCSTR FileAndLine) |
|
VOID | NpCheckClientPipe_ (IN HANDLE ClientHandle, IN ULONG ReadMode, IN ULONG CompletionMode, IN ULONG NamedPipeType, IN ULONG NamedPipeConfiguration, IN ULONG MaximumInstances, IN ULONG CurrentInstances, IN ULONG InboundQuota, IN ULONG ReadDataAvailable, IN ULONG OutboundQuota, IN ULONG WriteQuotaAvailable, IN ULONG NamedPipeState, IN PCSTR FileAndLine) |
|
VOID | NpQueryPipe_ (IN HANDLE Handle, IN NTSTATUS ExpectedStatus, IN PCSTR FileAndLine) |
|
VOID | StartWorkerThread (OUT PTHREAD_CONTEXT Context) |
|
VOID | FinishWorkerThread (IN PTHREAD_CONTEXT Context) |
|
BOOLEAN | WaitForWork (IN PTHREAD_CONTEXT Context, IN ULONG MilliSeconds) |
|
BOOLEAN | TriggerWork (IN PTHREAD_CONTEXT Context, IN ULONG MilliSeconds) |
|