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) コンストラクターを使用して、重複するソケット インスタンスを作成する必要があります。
各呼び出しのSocketInformation引数で同じバイト配列を使用して、Socket(SocketInformation) コンストラクターを複数回呼び出さないでください。 その場合は、基になるソケットが同じマネージド Socket インスタンスが複数存在します。これは強くお勧めしません。
.NET Framework では、ソケットを作成するプロセスが非同期メソッドを使用する場合、プロセスは最初に UseOnlyOverlappedIO プロパティを true に設定する必要があります。 それ以外の場合、非同期メソッドはソケットを作成プロセスの I/O 完了ポート にバインドします。これにより、ターゲット プロセスで ArgumentNullException がスローされる可能性があります。
DuplicateAndClose(Int32) は、Windows でのサポートが制限されています。 .NET Framework とは異なり、 UseOnlyOverlappedIO プロパティは NOP であるため、ソケットを作成するプロセスでは、ソケットで非同期メソッドを呼び出す必要はありません。 非同期操作の呼び出しでは、常に作成プロセスの I/O 完了ポート にバインドされます。これにより、ターゲット プロセスで ArgumentNullException がスローされる可能性があります。