MmGetMdlPfnArray マクロ (wdm.h)
MmGetMdlPfnArray は、メモリ記述子リスト (MDL) に関連付けられている物理ページ番号の配列の先頭へのポインターを返すマクロです。
構文
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
パラメーター
Mdl
MDL へのポインター。
戻り値
MmGetMdlPfnArray は、MDL に関連付けられている物理ページ番号の配列の先頭へのポインターを返します。
注釈
MmGetMdlPfnArray は、MDL に関連付けられている物理ページ番号の配列の先頭へのポインターを返します。
マクロ定義:
#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))
配列内のエントリの数は ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl)、MmGetMdlByteCount(Mdl)) です。
各配列要素は、次のように Wdm.h ヘッダー ファイルで定義されるPFN_NUMBER型の整数値です。
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
配列の内容を変更すると、診断が困難な微妙なシステム問題が発生する可能性があります。 この配列の内容を読み取ったり、変更したりしないことをお勧めします。
ページング可能なメモリの場合、配列の内容は MmProbeAndLockPages でロックされているバッファーに対してのみ有効です。
非ページ プールの場合、配列の内容は MmBuildMdlForNonPagedPool、MmAllocatePagesForMdlEx、MmAllocatePagesForMdl のいずれかで更新された MDL に対してのみ有効です。
MDL の詳細については、「MDL の使用」を参照してください。
要件
要件 | 値 |
---|---|
Header | wdm.h (Wdm.h を含む) |
IRQL | 任意のレベル |
DDI コンプライアンス規則 | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |