Función FsRtlCreateSectionForDataScan (ntifs.h)
La rutina FsRtlCreateSectionForDataScan crea un objeto de sección. Use esta rutina con extrema precaución. (Consulte la siguiente sección Comentarios).
Sintaxis
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
);
Parámetros
[out] SectionHandle
Puntero a una variable asignada por el autor de la llamada que recibe un identificador opaco al objeto section.
[out] SectionObject
Puntero a una variable asignada por el autor de la llamada que recibe un puntero opaco al objeto de sección.
[out, optional] SectionFileSize
Puntero a una variable asignada por el autor de la llamada que recibe el tamaño, en bytes, del archivo en el momento en que se creó el objeto de sección. Este parámetro es opcional y se puede NULL.
[in] FileObject
Objeto file para un archivo abierto. El archivo especificado respaldará el objeto section. Este parámetro es necesario y no se puede null.
[in] DesiredAccess
Especifica el acceso deseado para el objeto de sección como una o varias de las marcas de ACCESS_MASK siguientes.
Marca de DesiredAccess |
Permite al autor de la llamada |
---|---|
SECTION_MAP_READ | Lee las vistas de la sección. |
SECTION_MAP_WRITE | Escriba vistas de la sección. |
SECTION_QUERY | Consulte el objeto section para obtener información sobre la sección. Los controladores deben establecer esta marca. |
SECTION_ALL_ACCESS | Todas las acciones definidas por las marcas anteriores, así como las definidas por STANDARD_RIGHTS_REQUIRED. (Para obtener más información sobre STANDARD_RIGHTS_REQUIRED, consulte ACCESS_MASK). |
[in, optional] ObjectAttributes
Puntero a una estructura OBJECT_ATTRIBUTES que especifica el nombre del objeto y otros atributos. Use la macro InitializeObjectAttributes para inicializar esta estructura. Dado que FsRtlCreateSectionForDataScan inserta este objeto en la tabla de identificadores de proceso, el autor de la llamada debe especificar el atributo OBJ_KERNEL_HANDLE cuando llama a InitializeObjectAttributes.
[in, optional] MaximumSize
Este parámetro está reservado para uso futuro.
[in] SectionPageProtection
Especifica la protección que se va a colocar en cada página de la sección. Especifique uno de los valores siguientes. Este parámetro es necesario y no puede ser cero.
Bandera | Significado |
---|---|
PAGE_READONLY | Habilita el acceso de solo lectura a la región confirmada de las páginas. Un intento de escribir en la región confirmada produce una infracción de acceso. Si el sistema diferencia entre el acceso de solo lectura y el acceso de ejecución, un intento de ejecutar código en la región confirmada produce una infracción de acceso. |
PAGE_READWRITE | Habilita el acceso de lectura y escritura a la región confirmada de páginas. |
[in] AllocationAttributes
Las máscaras de bits de las marcas de SEC_XXX determinan los atributos de asignación de la sección. Especifique uno o varios de los valores siguientes. Este parámetro es necesario y no puede ser cero.
Bandera | Significado |
---|---|
SEC_COMMIT | Asigna almacenamiento físico en memoria o en el archivo de paginación en disco para todas las páginas de una sección. Esta es la configuración predeterminada. Tenga en cuenta que esta marca es necesaria y no se puede omitir. |
SEC_FILE | El archivo especificado por el parámetro FileObject es un archivo asignado. |
[in] Flags
Este parámetro está reservado para uso futuro.
Valor devuelto
FsRtlCreateSectionForDataScan devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
|
El tamaño del archivo especificado por el parámetro FileObject es cero. Se trata de un código de error. |
|
El archivo especificado por el parámetro FileObject está bloqueado. Se trata de un código de error. |
|
FsRtlCreateSectionForDataScan encontró un error de asignación de grupo. Se trata de un código de error. |
|
El archivo especificado por el parámetro FileObject no admite secciones. Se trata de un código de error. |
|
El valor especificado para el parámetro SectionPageProtection no es válido. Se trata de un código de error. |
|
El autor de la llamada especificó un valor no válido para el parámetro AllocationAttributes. Se trata de un código de error. |
|
El autor de la llamada no tenía el privilegio necesario para crear un objeto de sección con el acceso especificado en el parámetro DesiredAccess. Se trata de un código de error. |
Observaciones
Para obtener más información sobre cómo crear secciones asignadas y vistas de memoria, vea Section Objects and Views. Consulte también la documentación de rutina CreateFileMapping en Microsoft Windows SDK.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Paquete acumulativo de actualizaciones para Windows 2000 Service Pack 4 (SP4); Paquete acumulativo del Administrador de filtros para Windows XP Service Pack 2 (SP2). |
servidor mínimo admitido | Microsoft Windows Server 2003 SP1 |
de la plataforma de destino de |
Universal |
encabezado de |
ntifs.h (incluya Ntifs.h) |
biblioteca de |
NtosKrnl.lib |
DLL de |
NtosKrnl.exe |
irQL | <= APC_LEVEL |
Consulte también