51 : this(direction, inheritability, 0)
62 if (serverSafePipeHandle ==
null)
66 if (clientSafePipeHandle ==
null)
87 : base(direction, bufferSize)
93 if (inheritability < HandleInheritability.None || inheritability >
HandleInheritability.Inheritable)
97 Create(direction, inheritability, bufferSize);
120 protected override void Dispose(
bool disposing)
131 base.Dispose(disposing);
136 : base(direction, bufferSize)
142 if (inheritability < HandleInheritability.None || inheritability >
HandleInheritability.Inheritable)
146 Create(direction, inheritability, bufferSize, pipeSecurity);
151 Create(direction, inheritability, bufferSize,
null);
161 global::Interop.Kernel32.SECURITY_ATTRIBUTES lpPipeAttributes =
PipeStream.
GetSecAttrs(inheritability, pipeSecurity, ref pinningHandle);
162 flag = ((direction !=
PipeDirection.In) ? global::Interop.Kernel32.CreatePipe(out
_clientHandle, out hWritePipe, ref lpPipeAttributes, bufferSize) : global::Interop.Kernel32.CreatePipe(out hWritePipe, out
_clientHandle, ref lpPipeAttributes, bufferSize));
168 pinningHandle.
Free();
175 if (!global::Interop.Kernel32.DuplicateHandle(global::Interop.Kernel32.GetCurrentProcess(), hWritePipe, global::Interop.Kernel32.GetCurrentProcess(), out var lpTargetHandle, 0u, bInheritHandle:
false, 2u))
static void SuppressFinalize(object obj)
override void Dispose(bool disposing)
override PipeTransmissionMode ReadMode
AnonymousPipeServerStream(PipeDirection direction, HandleInheritability inheritability)
AnonymousPipeServerStream(PipeDirection direction, HandleInheritability inheritability, int bufferSize, PipeSecurity pipeSecurity)
AnonymousPipeServerStream(PipeDirection direction, HandleInheritability inheritability, int bufferSize)
string GetClientHandleAsString()
SafePipeHandle ClientSafePipeHandle
~AnonymousPipeServerStream()
AnonymousPipeServerStream(PipeDirection direction, SafePipeHandle serverSafePipeHandle, SafePipeHandle clientSafePipeHandle)
void DisposeLocalCopyOfClientHandle()
bool _clientHandleExposed
SafePipeHandle _clientHandle
AnonymousPipeServerStream(PipeDirection direction)
void Create(PipeDirection direction, HandleInheritability inheritability, int bufferSize)
void Create(PipeDirection direction, HandleInheritability inheritability, int bufferSize, PipeSecurity pipeSecurity)
AnonymousPipeServerStream()
override PipeTransmissionMode TransmissionMode
void ValidateHandleIsPipe(SafePipeHandle safePipeHandle)
virtual void CheckPipePropertyOperations()
void InitializeHandle(SafePipeHandle? handle, bool isExposed, bool isAsync)
static unsafe global::Interop.Kernel32.SECURITY_ATTRIBUTES GetSecAttrs(HandleInheritability inheritability)
static Exception GetExceptionForLastWin32Error(string path="")
IntPtr DangerousGetHandle()
static string NotSupported_AnonymousPipeMessagesNotSupported
static string ArgumentOutOfRange_HandleInheritabilityNoneOrInheritable
static string ArgumentOutOfRange_TransmissionModeByteOrMsg
static string Argument_InvalidHandle
static string NotSupported_AnonymousPipeUnidirectional
unsafe override string ToString()