NDIS ポートの解放
ミニポート ドライバーは、MiniportInitializeEx 関数内でミニポート アダプターに 割り当てる すべての NDIS ポートを解放する必要があります。 以下に示す 2 つのケースを除き、NdisMFreePort を呼び出すことでいつでもポートを解放できます。
次のようなケースでは、ミニポート ドライバーは割り当てられているすべてのポートを解放する必要があります:
- ドライバーの MiniportInitializeEx 関数が失敗した場合は、割り当てられているすべてのポートを解放する必要があります。
- ミニポート アダプターが停止した場合、ドライバーの MiniportHaltEx 関数は、割り当てられているすべてのポートを解放する必要があります。
このようなケースでは、ミニポート ドライバーは NdisMFreePort を呼び出すことはできません:
- ポートが既定のポートの場合、NDIS は自動的にそのポートを解放するため、ミニポート ドライバーは解放しないでください。 default port を解放しようとすると、NdisMFreePort は NDIS_STATUS_INVALID_PORT エラーを返します。
- ポートがアクティブな場合、ミニポート ドライバーは NdisMFreePort を呼び出す前に非アクティブ化する必要があります。