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 は、ポートのリソースを正常に解放しました。 |
|
ポート番号が無効であるため、NDIS はポートのリソースを解放できませんでした。 |
|
ポートが空き操作が無効な状態にあるため、NDIS はポートのリソースを解放できませんでした。 ポートを解放するには、ポートが割り当てられた状態である必要があります。 |
|
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) |