次の方法で共有


MmFreeContiguousMemory 関数 (wdm.h)

MmFreeContiguousMemory ルーチンは、MmAllocateContiguousMemoryXxx ルーチンによって割り当てられた、物理的に連続したメモリの範囲を解放します。

構文

void MmFreeContiguousMemory(
  [in] PVOID BaseAddress
);

パラメーター

[in] BaseAddress

解放するメモリの仮想アドレスへのポインター。

戻り値

なし

解説

MmFreeContiguousMemory ルーチンは、MmAllocateContiguousMemory、MmAllocateContiguousMemorySpecifyCache、または MmAllocateContiguousMemorySpecifyCacheNode ルーチンの前回の呼び出しによって割り当てられた、物理的に連続したメモリのブロックを解放します。 BaseAddress パラメーターは、MmAllocateContiguousMemoryXxx ルーチンの前回の呼び出しから取得したベース アドレスである必要があります。

連続したメモリを使用する必要があるデバイス ドライバーは、システムの実行時に物理メモリが断片化される可能性があるため、ドライバーの初期化中に必要なもののみを割り当てる必要があります。 このようなドライバーは、メモリを使用してドライバーが完了したときにメモリの割り当てを解除する必要があります。

MmFreeContiguousMemory の呼び出し元は、IRQL = APC_LEVELで実行されている必要があります。 Windows Server 2008 以降のバージョンの Windows オペレーティング システムでは、IRQL <= DISPATCH_LEVEL で MmFreeContiguousMemory を呼び出すこともできます。 ただし、APC_LEVEL 以下で を呼び出すことで、ドライバーのパフォーマンスを向上させることができます。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 「解説」を参照してください。
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), IrqlMmDispatch(wdm)

こちらもご覧ください

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmAllocateContiguousMemorySpecifyCacheNode