Abrir un identificador en un archivo
Para abrir un identificador en un archivo, realice los pasos siguientes:
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.
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.