Socket.DuplicateAndClose(Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ターゲット プロセスのソケット参照を複製してこのプロセスのソケットを閉じます。
public:
System::Net::Sockets::SocketInformation DuplicateAndClose(int targetProcessId);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);
public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.DuplicateAndClose : int -> System.Net.Sockets.SocketInformation
member this.DuplicateAndClose : int -> System.Net.Sockets.SocketInformation
Public Function DuplicateAndClose (targetProcessId As Integer) As SocketInformation
パラメーター
- targetProcessId
- Int32
ソケット参照の複製が作成されるターゲット プロセスの ID。
戻り値
ターゲット プロセスに渡されるソケット参照。
- 属性
例外
任意の OS 上の .NET Core と Unix ベースの OS 上の .NET 5 以降のみ: 現在のプラットフォームはサポートされていません。
注釈
ターゲット プロセスでは、コンストラクターを Socket(SocketInformation) 使用して、重複するソケット インスタンスを作成する必要があります。
各呼び出しの引数で Socket(SocketInformation) 同じバイト配列を使用して、コンストラクターを SocketInformation 複数回呼び出さないでください。 そうする場合は、基になるソケットが同じ複数のマネージド Socket インスタンスが存在します。これは強くお勧めしません。
.NET Framework、ソケットを作成するプロセスが非同期メソッドを使用する場合、プロセスは最初に プロパティを UseOnlyOverlappedIO に設定するtrue
必要があります。 それ以外の場合、非同期メソッドはソケットを作成プロセスの I/O 完了ポート にバインドします。これにより、ターゲット プロセスで がスローされる可能性 ArgumentNullException があります。
.NET Core 1.0-3.1 では、このメソッドはサポートされていません。
.NET 5 以降では、 DuplicateAndClose(Int32) Windows でのサポートは制限されています。 .NET Frameworkとは異なり、 UseOnlyOverlappedIO プロパティは NOP であるため、ソケットを作成するプロセスでは、ソケットで非同期メソッドを呼び出す必要はありません。 非同期操作を呼び出すと、常に作成プロセスの I/O 完了ポート にバインドされます。これにより、ターゲット プロセスで がスローされる可能性があります ArgumentNullException 。
適用対象
.NET