NDIS ポートの解放

ミニポート ドライバーは、MiniportInitializeEx 関数内でミニポート アダプターに 割り当てる すべての NDIS ポートを解放する必要があります。 以下に示す 2 つのケースを除き、NdisMFreePort を呼び出すことでいつでもポートを解放できます。

次のようなケースでは、ミニポート ドライバーは割り当てられているすべてのポートを解放する必要があります:

  • ドライバーの MiniportInitializeEx 関数が失敗した場合は、割り当てられているすべてのポートを解放する必要があります。
  • ミニポート アダプターが停止した場合、ドライバーの MiniportHaltEx 関数は、割り当てられているすべてのポートを解放する必要があります。

このようなケースでは、ミニポート ドライバーは NdisMFreePort を呼び出すことはできません:

  • ポートが既定のポートの場合、NDIS は自動的にそのポートを解放するため、ミニポート ドライバーは解放しないでください。 default port を解放しようとすると、NdisMFreePort は NDIS_STATUS_INVALID_PORT エラーを返します。
  • ポートがアクティブな場合、ミニポート ドライバーは NdisMFreePort を呼び出す前に非アクティブ化する必要があります。

NDIS ポート割り当て中

NDIS ポートの非アクティブ化

既定の NDIS ポート