NdisFreeMemoryWithTagPriority 関数 (ndis.h)

NdisFreeMemoryWithTagPriority 関数は、 で割り当てられたメモリを解放します。 NdisAllocateMemoryWithTagPriority 関数。

構文

void NdisFreeMemoryWithTagPriority(
  [in] NDIS_HANDLE NdisHandle,
  [in] PVOID       VirtualAddress,
  [in] ULONG       Tag
);

パラメーター

[in] NdisHandle

呼び出し元の初期化中に取得された NDIS ドライバーまたはインスタンス ハンドル。 これは、ドライバーが に渡したのと同じハンドルである必要があります。 NdisAllocateMemoryWithTagPriority 関数。 たとえば、ミニポート ドライバーは、 から取得した NDIS ハンドルを使用できます。 NdisMRegisterMiniportDriver または MiniportInitializeEx 関数。 他の NDIS ドライバーでは、次の関数のハンドルを使用できます。

NdisRegisterProtocolDriver

NdisOpenAdapterEx

NdisFRegisterFilterDriver

FilterAttach

[in] VirtualAddress

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

[in] Tag

一重引用符で区切られた文字列。通常は逆の順序で指定され、最大 4 文字です。 この呼び出しの NDIS 提供の既定のタグは 'maDN' ですが、呼び出し元は明示的な値を指定することで、この既定値をオーバーライドできます。

戻り値

なし

解説

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

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

要件

要件
サポートされている最小のクライアント NDIS 6.20 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL 「解説」を参照してください。
DDI コンプライアンス規則 NdisAllocateMemoryWithTagPriority_Cleanup(ndis)、NdisAllocateMemoryWithTagPriority_InitFail(ndis)

こちらもご覧ください

FilterAttach

MiniportInitializeEx

NdisAllocateMemoryWithTagPriority

NdisFRegisterFilterDriver

NdisMRegisterMiniportDriver

NdisOpenAdapterEx

NdisRegisterProtocolDriver