ネットワーク INF ファイル内の Winsock セクション
Winsock インターフェイスを提供する NetTrans コンポーネントの INF ファイルでは、この Winsock 依存関係を指定する必要があります。 このような INF ファイルには、Winsock-install セクションが含まれている必要があります。 Winsockinstall セクションを作成するには、プロトコルの DDInstall セクション名に .Winsock 拡張子を追加します。 たとえば、プロトコルの DDInstall セクションに Ipx という名前が付けられている場合、そのプロトコルの Winsock-install セクションには Ipx.Winsock という名前を付ける必要があります。
Note
Winsock の依存関係は、Windows 8 以降では非推奨になりました。
Winsock-install セクションには、AddSock ディレクティブが含まれている必要があります。 AddSock ディレクティブは、コンポーネントの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransportDriverName\Params\Winsock キーに追加される値を含むベンダー名のセクションを指定します。
AddSock ディレクティブによって参照されるベンダー名のセクションには、次の必須の値が含まれている必要があります。
値の名前 | 説明 |
---|---|
TransportService |
プロトコルのサービス名を指定する REG_SZ 値。 これは、プロトコルの Ndi\Service 値と同じである必要があります。 詳細については、「Ndi キーへのサービス関連の値の追加」を参照してください。 |
HelperDllName |
プロトコルの Windows ソケット ヘルパー (WSH) DLL へのパスを指定する REG_EXPAND_SZ 値。 詳細については、「WSH DLL 関数の概要」を参照してください。 |
MaxSockAddrLength |
WSH DLL の有効な最大 SOCKADDR サイズをバイト単位で指定する REG_DWORD 値 |
MinSockAddrLength |
WSH DLL の有効な最小 SOCKADDR サイズをバイト単位で指定する REG_DWORD 値 |
名前空間プロバイダーの省略可能な ProviderId を指定する場合は、次の値も指定する必要があります。
値の名前 | 説明 |
---|---|
ProviderId |
名前空間プロバイダーを識別するグローバル一意識別子 (GUID) を指定する REG_SZ 値。 GUID は、名前空間プロバイダーへの後続のすべての参照のキーとして使用されます。 uuidgen.exe ユーティリティを実行して GUID を取得します。 このユーティリティの詳細については、Microsoft Windows SDK を参照してください。 |
LibraryPath |
名前空間プロバイダー DLL への完全パスを指定する REG_EXPAND_SZ 値。 |
DisplayString |
ユーザー インターフェイスで表示される名前空間プロバイダーの名前を指定するローカライズ可能な文字列。 |
SupportedNameSpace |
名前空間プロバイダーによってサポートされる名前空間を指定する REG_DWORD 値。 |
バージョン |
名前空間プロバイダーのバージョン番号を指定する省略可能な REG_DWORD 値。 この値を指定しない場合は、バージョン番号に既定値 (1) が使用されます。 |
次の名前空間値は、SupportedNameSpace に割り当てることができ、Winsock2.h で定義されています。
名前空間 | Value |
---|---|
NS_ALL |
0 |
NS_SAP |
1 |
NS_NDS |
2 |
NS_PEER_BROWSE |
3 |
NS_TCPIP_LOCAL |
10 |
NS_TCPIP_HOSTS |
11 |
NS_DNS |
12 |
NS_NETBT |
13 |
NS_WINS |
14 |
NS_NBP |
20 |
NS_MS |
30 |
NS_STDA |
31 |
NS_CAIRO |
32 |
NS_X500 |
40 |
NS_NIS |
41 |
NS_WRQ |
50 |
名前空間プロバイダーの詳細については、Windows SDK ドキュメントを参照してください。
次の例は、IPX プロトコルの Winsock セクションを示しています。
[Ipx.Winsock]
AddSock = Install.IpxWinsock
[Install.IpxWinsock]
TransportService = nwlinkipx
HelperDllName = "%%SystemRoot%%\System32\wshisn.dll"
MaxSockAddrLength = 0x10
MinSockAddrLength = 0xe
ProviderId = "GUID"
LibraryPath = "%SystemRoot%\\System32\\nwprovau.dll"
DisplayString = %NwlnkIpx_Desc%
SupportedNameSpace = 1
Version = 2
INF ファイルでは、Winsock-remove セクションを含めることによって、プロトコルの Winsock 依存関係を削除できます。 Winsock-remove セクションを作成するには、プロトコルの Remove セクション名に .Winsock 拡張子を追加します。 たとえば、プロトコルの Remove セクションの名前が Ipx.Remove の場合、プロトコルの Winsock-remove セクションには Ipx.Remove.Winsock という名前を付ける必要があります。
Winsock-remove セクションには、INF-writer-named セクションを指定する DelSock ディレクティブが含まれています。 INF-writer-named セクションでは、削除するトランスポート サービスを指定する必要があります。 ProviderId が以前にプロトコルに登録されている場合、vendor-named セクションでは削除する ProviderId も指定する必要があります。
次の例は、IPX プロトコルの Winsock 依存関係を削除する 2 つのセクションを示しています。
[Ipx.Remove.Winsock]
DelSock = Remove.IpxWinsock
[Remove.IpxWinsock]
TransportService = nwlinkipx
ProviderId = "GUID"