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
打开的文件的文件对象。 节对象将由指定的文件提供支持。 此参数是必需的,不能 NULL。
[in] DesiredAccess
将节对象的所需访问权限指定为以下一个或多个 ACCESS_MASK 标志。
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 宏初始化此结构。 由于 FsRtlCreateSectionForDataScan 将此对象插入进程句柄表中,因此调用方必须在调用 InitializeObjectAttributes时指定OBJ_KERNEL_HANDLE属性。
[in, optional] MaximumSize
此参数保留供将来使用。
[in] SectionPageProtection
指定要在节中的每个页面上放置的保护。 指定以下值之一。 此参数是必需的,不能为零。
旗 | 意义 |
---|---|
PAGE_READONLY | 允许对已提交的页面区域进行只读访问。 尝试写入已提交的区域会导致访问冲突。 如果系统区分只读访问和执行访问权限,则尝试在提交的区域中执行代码会导致访问冲突。 |
PAGE_READWRITE | 启用对已提交页面区域的读取和写入访问权限。 |
[in] AllocationAttributes
SEC_XXX 标志的位掩码决定了节的分配属性。 指定以下一个或多个值。 此参数是必需的,不能为零。
旗 | 意义 |
---|---|
SEC_COMMIT | 为分区的所有页分配内存中的物理存储或磁盘上的分页文件中。 这是默认设置。 请注意,此标志是必需的,不能省略。 |
SEC_FILE | FileObject 参数指定的文件是映射的文件。 |
[in] Flags
此参数保留供将来使用。
返回值
FsRtlCreateSectionForDataScan 返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:
返回代码 | 描述 |
---|---|
|
FileObject 参数指定的文件大小为零。 这是一个错误代码。 |
|
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 (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |