MmFreeContiguousMemory 関数 (ntddk.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 | ntddk.h (Wdm.h、Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 「解説」を参照してください。 |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlMmDispatch(wdm) |