次の方法で共有


NdisFreeMemoryWithTagPriority 関数 (ndis.h)

NdisFreeMemoryWithTagPriority 関数は、NdisAllocateMemoryWithTagPriority 関数を します。

構文

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

パラメーター

[in] NdisHandle

呼び出し元の初期化中に取得された NDIS ドライバーまたはインスタンス ハンドル。 これは、ドライバーが 〟〟に渡したのと同じハンドルである必要があります。NdisAllocateMemoryWithTagPriority 関数を します。 たとえば、ミニポート ドライバーは、から取得した NDIS ハンドルを使用できます。NdisMRegisterMiniportDriver またはミニポートInitializeEx 関数 します。 その他の 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 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL 「解説」セクションを参照してください。
DDI コンプライアンス規則 する NdisAllocateMemoryWithTagPriority_Cleanup(ndis)、NdisAllocateMemoryWithTagPriority_InitFail(ndis)

関連項目

FilterAttach

ミニポートInitializeEx

NdisAllocateMemoryWithTagPriority

NdisFRegisterFilterDriver

NdisMRegisterMiniportDriver

NdisOpenAdapterEx

NdisRegisterProtocolDriver