NdisMFreePort 関数 (ndis.h)

NdisMFreePort 関数は、以前に NdisMAllocatePort 関数で割り当てられた NDIS ポートを解放します。

構文

NDIS_STATUS NdisMFreePort(
       NDIS_HANDLE      NdisMiniportHandle,
  [in] NDIS_PORT_NUMBER PortNumber
);

パラメーター

NdisMiniportHandle

NDIS が の MiniportAdapterHandle パラメーターに渡したミニポート アダプター ハンドル MiniportInitializeEx 関数。

[in] PortNumber

NDIS が解放する NDIS ポートの数。 PortNumber 値は、ULONG データ型を持つNDIS_PORT_NUMBER値です。 NDIS は、 の PortNumber メンバーにポート番号を指定しました ミニポート ドライバーが NdisMAllocatePort 関数を呼び出したときの構造をNDIS_PORT_CHARACTERISTICSします。

ポート番号には、1 から0xffffffまでの数値を指定できます。 PortNumber を 0 に設定することはできません。これは、既定のポートを示します。

戻り値

NdisMFreePort は、次のいずれかの値を返すことができます。

リターン コード 説明
NDIS_STATUS_SUCCESS
NDIS は、ポートのリソースを正常に解放しました。
NDIS_STATUS_INVALID_PORT
ポート番号が無効であるため、NDIS はポートのリソースを解放できませんでした。
NDIS_STATUS_INVALID_PORT_STATE
ポートが空き操作が無効な状態にあるため、NDIS はポートのリソースを解放できませんでした。 ポートを解放するには、ポートが割り当てられた状態である必要があります。
NDIS_STATUS_INVALID_DATA
PortNumber パラメーターで指定されたポート番号が無効です。

注釈

ミニポート ドライバーが NdisMAllocatePort 関数を呼び出してポートを割り当てた場合、 ドライバーは、その MiniportHaltEx 関数から戻る前にポートを解放する必要があります。 ミニポート ドライバーが NetEventPortActivation プラグ アンド プレイ (PnP) イベントを発行してポートをアクティブ化した場合、ドライバーはポートを解放する前に、ポートに対して NetEventPortDeactivation PnP イベントを発行する必要があります。

ミニポート ドライバーが NdisMFreePort を呼び出してポートを解放すると、NDIS は解放されたポートに割り当てられているポート番号も解放して、NDIS がポート番号を再利用できるようにします。

ミニポート ドライバーは、既定のポートを解放しようとしないでください。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Miniport_Driver_Function(ndis)

こちらもご覧ください

既定の NDIS ポート

NDIS ポートの解放

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort