public static NamedPipeHandle Create( FileAccess access, string fileName, ObjectFlags objectFlags, NativeHandle rootDirectory, FileShareMode shareMode, FileCreationDisposition creationDisposition, FileCreateOptions createOptions, PipeType type, PipeType readMode, PipeCompletionMode completionMode, int maximumInstances, int inboundQuota, int outboundQuota, long defaultTimeout ) { NtStatus status; ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory); IoStatusBlock isb; IntPtr handle; // If a timeout wasn't specified, use a default value. if (defaultTimeout == 0) { defaultTimeout = -50 * Win32.TimeMsTo100Ns; // 50 milliseconds } try { if ((status = Win32.NtCreateNamedPipeFile( out handle, access, ref oa, out isb, shareMode, creationDisposition, createOptions, type, readMode, completionMode, maximumInstances, inboundQuota, outboundQuota, ref defaultTimeout )) >= NtStatus.Error) { Win32.Throw(status); } } finally { oa.Dispose(); } return(new NamedPipeHandle(handle, true)); }
public static NamedPipeHandle Create( FileAccess access, string fileName, ObjectFlags objectFlags, NativeHandle rootDirectory, FileShareMode shareMode, FileCreationDisposition creationDisposition, FileCreateOptions createOptions, PipeType type, PipeType readMode, PipeCompletionMode completionMode, int maximumInstances, int inboundQuota, int outboundQuota, long defaultTimeout ) { NtStatus status; ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory); IoStatusBlock isb; IntPtr handle; // If a timeout wasn't specified, use a default value. if (defaultTimeout == 0) defaultTimeout = -50 * Win32.TimeMsTo100Ns; // 50 milliseconds try { if ((status = Win32.NtCreateNamedPipeFile( out handle, access, ref oa, out isb, shareMode, creationDisposition, createOptions, type, readMode, completionMode, maximumInstances, inboundQuota, outboundQuota, ref defaultTimeout )) >= NtStatus.Error) Win32.Throw(status); } finally { oa.Dispose(); } return new NamedPipeHandle(handle, true); }
public static NamedPipeHandle Create( FileAccess access, string fileName, ObjectFlags objectFlags, FileHandle rootDirectory, FileShareMode shareMode, FileCreationDisposition creationDisposition, FileCreateOptions createOptions, PipeType type, PipeType readMode, PipeCompletionMode completionMode, int maximumInstances, int inboundQuota, int outboundQuota, long defaultTimeout ) { NtStatus status; ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory); IoStatusBlock isb; IntPtr handle; try { if ((status = Win32.NtCreateNamedPipeFile( out handle, access, ref oa, out isb, shareMode, creationDisposition, createOptions, type, readMode, completionMode, maximumInstances, inboundQuota, outboundQuota, ref defaultTimeout )) >= NtStatus.Error) { Win32.ThrowLastError(status); } } finally { oa.Dispose(); } return(new NamedPipeHandle(handle, true)); }