次の方法で共有


NdisFreeMemory 関数 (ndis.h)

NdisFreeMemory 関数は、以前に NdisAllocateMemoryWithTagPriority 関数で割り当てられたメモリのブロックを解放します。

構文

void NdisFreeMemory(
  [in] PVOID VirtualAddress,
  [in] UINT  Length,
  [in] UINT  MemoryFlags
);

パラメーター

[in] VirtualAddress

割り当てられたメモリのベース仮想アドレスへのポインター。 このアドレスは、NdisAllocateMemoryWithTagPriority 関数によって返されました。

[in] Length

解放するメモリ ブロックのサイズ (バイト単位)。 メモリが NdisAllocateMemoryWithTagPriority で割り当てられたか、MemoryFlags パラメーターが 0 の場合、このパラメーターは無視されます。

[in] MemoryFlags

解放するメモリの種類を指定するフラグのセット。 メモリが ndisAllocateMemoryWithTagPriority 割り当てられた場合、この値は 0 にする必要があります。 NDIS 6.0 以降のバージョンでは、NdisAllocateMemoryWithTagPriority は常にメモリの割り当てに使用されます。

戻り値

何一つ

備考

キャッシュされていないメモリと連続したメモリは、割り当てミニポート ドライバーがアンロードされるまでほとんど解放されないため、通常、NdisFreeMemory の呼び出し元は、これらの種類の割り当て解除に対して IRQL = PASSIVE_LEVELで実行されます。 いずれの場合も、次の手順を実行します。

  • 連続したメモリを解放する場合、NdisFreeMemory の呼び出し元が IRQL = PASSIVE_LEVEL で実行されている必要があります。
  • キャッシュされていないメモリを解放する場合、NdisFreeMemory の呼び出し元が IRQL < DISPATCH_LEVEL で実行されている必要があります。
  • 連続していないメモリとキャッシュされていないメモリを解放する場合は、NdisFreeMemory の呼び出し元が IRQL <= DISPATCH_LEVEL で実行されている必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisFreeMemory (NDIS 5.1) を参照) でサポートされています。 Windows XP で NDIS 5.1 ドライバー (NdisFreeMemory (NDIS 5.1) を参照) でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL 「解説」セクションを参照してください
DDI コンプライアンス規則 する Irql_Miscellaneous_Function(ndis)、NdisAllocateMemoryWithTagPriority_Cleanup(ndis)、NdisAllocateMemoryWithTagPriority_InitFail(ndis)、NdisQueryBindInstanceName(ndis)

関連項目

ミニポートHaltEx

NdisAllocateMemoryWithTagPriority