FsRtlMdlReadDev 関数 (ntifs.h)
FsRtlMdlReadDev ルーチンは、ファイル キャッシュ内の指定されたバイト範囲を直接指すメモリ記述子リスト (MDL) を返します。
構文
BOOLEAN FsRtlMdlReadDev(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] ULONG LockKey,
[out] PMDL *MdlChain,
[out] PIO_STATUS_BLOCK IoStatus,
[ in, optional ] PDEVICE_OBJECT DeviceObject
);
パラメーター
[in] FileObject
キャッシュされたファイルのファイル オブジェクトへのポインター。
[in] FileOffset
データを保持するキャッシュ ファイル内の開始バイト オフセットを指定する変数へのポインター。
[in] Length
キャッシュから読み取るデータの長さ (バイト単位)。
[in] LockKey
ロックするバイト範囲に関連付けられている値。 ロックする範囲が、既に非決定的ロックでロックされている別の範囲と重複している場合、または読み取る範囲が、既に排他的にロックされている別の範囲のサブ範囲である場合、このパラメーターの値は、その非決定的ロックのキーである必要があります。ロックは、呼び出し元スレッドの親プロセスによって保持されている必要があります。 それ以外の場合、このパラメーターは無効です。
[out] MdlChain
出力時に、メモリ記述子リスト (MDL) のリンクされたリストへのポインター。
[out] IoStatus
出力時に転送の状態を格納する IO_STATUS_BLOCK 構造体へのポインター。 操作が成功した場合、IoStatus.Status
[ in, optional ] DeviceObject
ファイルが開かれているデバイス オブジェクトへのポインター。
戻り値
備考
FsRtlMdlReadDev ルーチンは、通常の IRP メカニズムをバイパスし、呼び出し元がキャッシュされたファイル データに直接アクセスするために使用できるメモリ記述子リスト (MDL) のリンクされたリストを返します。 この操作はデータをコピーまたはバッファーしないため、通常の読み取りよりもはるかに高速です。
このルーチンは、
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
関連項目
ccMdlRead を
FsRtlMdlReadEx の