バインドの再起動
一時停止されているバインドを再起動するには、NDIS はプロトコル ドライバーにネットワーク プラグ アンド プレイ (PnP) 再起動イベント通知を送信します。 プロトコル ドライバーが再起動通知を受け取った後、影響を受けるバインドは再起動状態になります。
再起動通知を送信するには、NDIS はプロトコル ドライバーの ProtocolNetPnPEvent 関数を呼び出します。 NDIS が ProtocolNetPnPEvent に渡す NET_PNP_EVENT_NOTIFICATION 構造体は、NetEvent メンバーの NetEventRestart を指定し、Buffer メンバーには NDIS_PROTOCOL_RESTART_PARAMETERS 構造体へのポインターが含まれています。 NDIS は、NDIS_PROTOCOL_RESTART_PARAMETERS 構造体の RestartAttributes メンバー内の NDIS_RESTART_ATTRIBUTES 構造体にのポインターを提供します。
注:: バインドが一時停止されている間、NDIS はドライバー スタックを再構成した可能性があります。 新しいスタック構成では、下層アダプターに対して異なる機能セットをサポートできます。 これらの新機能は、プロトコル ドライバーがバインドで通信する方法に影響を与える可能性があります。
プロトコル ドライバーは、不要な OID 要求を回避するために、NDIS_PROTOCOL_RESTART_PARAMETERS 構造体の情報を使用する必要があります。
再起動状態では、プロトコル ドライバーは次のことができます。
OID 要求を使用してドライバー スタックを照会します。 たとえば、ドライバーは、OID_GEN_RECEIVE_SCALE_CAPABILITIES を使用して、受信側スケーリングのサポートについて確認できます。
必要に応じて、NET_BUFFER プールと NET_BUFFER_LIST プールを再割り当てします。
下位フィルター モジュールの一覧を列挙します。
OID 要求を使用して、新しいアダプター機能を表示します。
ドライバーがバインドの送受信操作を再開する準備ができたら、バインドは実行中の状態になります。