FsRtlCreateSectionForDataScan 関数 (ntifs.h)
FsRtlCreateSectionForDataScan ルーチンは、セクション オブジェクトを作成します。 このルーチンは細心の注意を払って使用してください。 (次の 解説 セクションを参照してください。
構文
NTSTATUS FsRtlCreateSectionForDataScan(
[out] PHANDLE SectionHandle,
[out] PVOID *SectionObject,
[out, optional] PLARGE_INTEGER SectionFileSize,
[in] PFILE_OBJECT FileObject,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PLARGE_INTEGER MaximumSize,
[in] ULONG SectionPageProtection,
[in] ULONG AllocationAttributes,
[in] ULONG Flags
);
パラメーター
[out] SectionHandle
セクション オブジェクトへの不透明なハンドルを受け取る呼び出し元によって割り当てられた変数へのポインター。
[out] SectionObject
セクション オブジェクトへの不透明なポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。
[out, optional] SectionFileSize
セクション オブジェクトの作成時にファイルのサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL
[in] FileObject
開いているファイルの File オブジェクト。 セクション オブジェクトは、指定されたファイルによってサポートされます。 このパラメーターは必須であり、NULL
[in] DesiredAccess
セクション オブジェクトに必要なアクセス権を、次の ACCESS_MASK フラグの 1 つ以上として指定します。
DesiredAccess フラグを |
呼び出し元が |
---|---|
SECTION_MAP_READ | セクションのビューを読み取る。 |
SECTION_MAP_WRITE | セクションのビューを書き込みます。 |
SECTION_QUERY | セクションに関する情報をセクション オブジェクトに照会します。 ドライバーは、このフラグを設定する必要があります。 |
SECTION_ALL_ACCESS | 前のフラグによって定義されたすべてのアクションと、STANDARD_RIGHTS_REQUIREDによって定義されたアクション。 (STANDARD_RIGHTS_REQUIREDの詳細については、ACCESS_MASKを参照してください。 |
[in, optional] ObjectAttributes
オブジェクト名とその他の属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 この構造体を初期化するには、InitializeObjectAttributes マクロを使用します。
[in, optional] MaximumSize
このパラメーターは、将来使用するために予約されています。
[in] SectionPageProtection
セクションの各ページに配置する保護を指定します。 次のいずれかの値を指定します。 このパラメーターは必須であり、0 にすることはできません。
旗 | 意味 |
---|---|
PAGE_READONLY | コミットされたページ領域への読み取り専用アクセスを有効にします。 コミットされたリージョンに書き込もうとすると、アクセス違反が発生します。 システムが読み取り専用アクセスと実行アクセスを区別する場合、コミットされたリージョンでコードを実行しようとすると、アクセス違反が発生します。 |
PAGE_READWRITE | コミットされたページ領域への読み取りと書き込みの両方のアクセスを有効にします。 |
[in] AllocationAttributes
SEC_XXX フラグのビットマスクによって、セクションの割り当て属性が決まります。 次の値のうち 1 つ以上を指定します。 このパラメーターは必須であり、0 にすることはできません。
旗 | 意味 |
---|---|
SEC_COMMIT | セクションのすべてのページに対して、メモリまたはディスク上のページング ファイルに物理ストレージを割り当てます。 これが既定の設定です。 このフラグは必須であり、省略できないことに注意してください。 |
SEC_FILE | FileObject パラメーターで指定されたファイルは、マップされたファイルです。 |
[in] Flags
このパラメーターは、将来使用するために予約されています。
戻り値
FsRtlCreateSectionForDataScan は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 形容 |
---|---|
|
FileObject パラメーターで指定されたファイルのサイズは 0 です。 これはエラー コードです。 |
|
FileObject パラメーターで指定されたファイルはロックされています。 これはエラー コードです。 |
|
FsRtlCreateSectionForDataScan でプール割り当てエラーが発生しました。 これはエラー コードです。 |
|
FileObject パラメーターで指定されたファイルは、セクションをサポートしていません。 これはエラー コードです。 |
|
SectionPageProtection パラメーターに指定された値が無効です。 これはエラー コードです。 |
|
呼び出し元が AllocationAttributes パラメーターに無効な値を指定しました。 これはエラー コードです。 |
|
呼び出し元には、DesiredAccess パラメーターで指定されたアクセス権を持つセクション オブジェクトを作成するために必要な特権がありませんでした。 これはエラー コードです。 |
備考
マップされたセクションとメモリのビューの作成の詳細については、「セクション オブジェクトとビューのを参照してください。 また、Microsoft Windows SDK の CreateFileMapping ルーチンのドキュメントも参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Service Pack 4 (SP4) の更新プログラムのロールアップ。Windows XP Service Pack 2 (SP2) のフィルター マネージャーロールアップ。 |
サポートされる最小サーバー | Microsoft Windows Server 2003 SP1 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
関連項目
mmFlushImageSection の
mmForceSectionClosed の