Abrir un identificador en un archivo

Para abrir un identificador en un archivo, realice los pasos siguientes:

  1. Cree una estructura OBJECT_ATTRIBUTES y llame a la macro InitializeObjectAttributes para inicializar la estructura. Especifique el nombre de objeto del archivo como el parámetro ObjectName en InitializeObjectAttributes.

  2. Abra un identificador para el archivo pasando la estructura de OBJECT_ATTRIBUTES a IoCreateFile, ZwCreateFile o ZwOpenFile.

    Si el archivo no existe, IoCreateFile y ZwCreateFile lo crearán, mientras que ZwOpenFile devolverá STATUS_OBJECT_NAME_NOT_FOUND.

Tenga en cuenta que los controladores casi siempre usan ZwCreateFile o ZwOpenFile en lugar de IoCreateFile.

Al llamar a IoCreateFile, ZwCreateFile o ZwOpenFile, el ejecutivo de Windows crea un nuevo objeto de archivo para representar el archivo y proporciona un identificador abierto para el objeto. Este objeto de archivo persiste hasta que se cierran todos los identificadores abiertos.

Independientemente de la rutina a la que llame, debe pasar los derechos de acceso que necesite como parámetro DesiredAccess . Estos derechos deben cubrir todas las operaciones que realizará el controlador. En la tabla siguiente se enumeran estas operaciones y el derecho de acceso correspondiente a solicitar.

Operación Derecho de acceso necesario

Lea del archivo.

FILE_READ_DATA o GENERIC_READ

Escriba en el archivo.

FILE_WRITE_DATA o GENERIC_WRITE

Escriba solo al final del archivo.

FILE_APPEND_DATA

Lea los metadatos del archivo, como la hora de creación del archivo.

FILE_READ_ATTRIBUTES o GENERIC_READ

Escriba los metadatos del archivo, como la hora de creación del archivo.

FILE_WRITE_ATTRIBUTES o GENERIC_WRITE

Para obtener más información sobre los valores disponibles para DesiredAccess, vea ZwCreateFile.