既定の MPR タイムアウト間隔のオーバーライド
マルチ プロバイダー ルーター (MPR) は NPGetCaps を呼び出して、ネットワーク プロバイダーがいつ開始されるのかを確認します (nIndex は WNNC_START に設定されています)。 その後、MPR は、統合されたネットワークをユーザーに提示する前に、すべてのネットワーク プロバイダーによって指定された最長のタイムアウト期間を待機します。 ネットワーク プロバイダーの 1 つがいつ開始されるかがわからない場合、MPR はそのプロバイダーに対して 60 秒の既定のタイムアウトを使用します。
必要に応じて、管理者は、次の REG_DWORD レジストリ タイムアウトを作成することで、既定のタイムアウトをオーバーライドできます。ここで、 n はタイムアウト間隔 (ミリ秒単位) です。
Hkey_local_machine\システム\CurrentControlSet\コントロール\NetworkProvider\RestoreTimeout = N
次の擬似コードは、MPR によるタイムアウト処理の完全なロジック フローを示しています。
If there is a RegistryTimeout,
Then MaxTimeout = RegistryTimeout.
Otherwise,
MaxTimeout = 0.
For each provider,
if the provider does not supply a time-out and
if there is a RegistryTimeout,
ProviderTimeout is set to RegistryTimeout.
Otherwise,
ProviderTimeout is set to DefaultTimeout.
Otherwise,
If the ProviderTimeout is longer than MaxTimeout,
MaxTimeout = ProviderTimeout.