次の方法で共有


ソケット ハンドル

必要に応じて、ソケット ハンドルを Windows Sockets 2 のファイル ハンドルにすることができます。 Winsock プロバイダーのソケット ハンドルは、ReadFile、WriteFile、ReadFileExWriteFileEx などの他の Winsock 以外の関数と共使用できます。

プロバイダーのプロトコル情報構造の XP1_IFS_HANDLES メンバーは、プロバイダーからのソケット ハンドルがインストール可能ファイル システム (IFS) ハンドルであるかどうかを判断します。 IFS ハンドルであるソケット ハンドルは、他の Winsock 以外の関数 (ReadFileWriteFile など) でパフォーマンスを低下させることなく使用できます。 Winsock 以外の関数 (ReadFileWriteFile など) と共に使用する場合、IFS 以外のソケット ハンドルでは、プロバイダーとファイル システムの間でやり取りが行われ、余分な処理オーバーヘッドが発生し、パフォーマンスが大幅に低下する可能性があります。 Winsock 以外の関数でソケット ハンドルを使用する場合、基本ファイル システムから伝達されるエラー コードは、Winsock エラー コードに常にマップされるとは限りません。 そのため、ソケット ハンドルは Winsock 関数でのみ使用することをお勧めします。

DuplicateHandle 関数では、ソケット ハンドルを使用しないでください。 レイヤード サービス プロバイダー (LSP) が存在すると、これが失敗する可能性があり、宛先プロセスでソケット ハンドルをインポートする方法はありません。

注意

階層型サービス プロバイダーは非推奨です。 Windows 8とWindows Server 2012以降では、Windows フィルター プラットフォームを使用します

 

Windows Sockets 2 では、ハンドルを使用してソケット間でデータを転送する特定の機能が拡張されています。 この関数は、データ転送用のソケットに固有の利点を提供し、 WSARecvWSASendWSADuplicateSocket が含まれます。