Función IoCheckLinkShareAccess (wdm.h)
Los controladores del sistema de archivos (FSD) llama a la rutina ioCheckLinkShareAccess u otros controladores de nivel superior para comprobar si se permite el acceso compartido de vínculo a un objeto de archivo.
Sintaxis
NTSTATUS IoCheckLinkShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out, optional] PFILE_OBJECT FileObject,
[in, out, optional] PSHARE_ACCESS ShareAccess,
[in, out, optional] PLINK_SHARE_ACCESS LinkShareAccess,
[in] ULONG IoShareAccessFlags
);
Parámetros
[in] DesiredAccess
Especifica un valor ACCESS_MASK que indica el tipo de acceso deseado al objeto de archivo especificado.
[in] DesiredShareAccess
Especifica el tipo deseado de acceso compartido al objeto de archivo para la solicitud abierta actual. El valor de este parámetro suele ser el mismo que el shareAccess parámetro que se pasa al sistema de archivos o al controlador de nivel superior por el administrador de E/S cuando se realizó la solicitud abierta. Este valor puede ser cero o cualquier combinación de lo siguiente:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out, optional] FileObject
Puntero al objeto de archivo para el que se va a comprobar el acceso a la solicitud abierta actual.
[in, out, optional] ShareAccess
Puntero a la estructura de datos de acceso compartido común asociada a FileObject. Los controladores deben tratar esta estructura como opaca.
[in, out, optional] LinkShareAccess
Puntero a la estructura de datos de acceso compartido de vínculo común (LINK_SHARE_ACCESS) asociada a FileObject. Los controladores deben tratar esta estructura como opaca.
[in] IoShareAccessFlags
Máscara de bits de estas marcas:
IO_SHARE_ACCESS_NO_WRITE_PERMISSION (0x80000000) especifica que el usuario no tiene permiso de escritura para el archivo. Esta marca se usa para evitar abrir un archivo para el acceso de lectura exclusivo cuando el usuario no tiene los permisos adecuados.
IO_SHARE_ACCESS_NON_PRIMARY_STREAM (0x00000080) especifica que la secuencia no es la secuencia de datos principal ni una secuencia de directorio.
IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS (0x00000001) indica si se actualiza la estructura SHARE_ACCESS.
IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) indica que no se actualiza FILE_OBJECT estructura.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) indica que no se comprueba el acceso al recurso compartido de lectura.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) indica que no se comprueba el acceso al recurso compartido de escritura.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) indica que no se debe comprobar el acceso al recurso compartido de eliminación.
IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) indican forzar la comprobación del acceso al recurso compartido aunque la solicitud no sea acceso de lectura, escritura o eliminación.
IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) indica forzar la comprobación del acceso al recurso compartido de eliminación mediante ShareAccess, independientemente de si LinkShareAccess está presente o no.
Valor devuelto
La rutina ioCheckLinkShareAccess devuelve STATUS_SUCCESS si el acceso del solicitante al objeto de archivo es compatible con la forma en que está abierto actualmente. Si se deniega la solicitud debido a una infracción de uso compartido, se devuelve STATUS_SHARING_VIOLATION.
Observaciones
El parámetro shareAccess debe bloquearse en otros accesos desde otros subprocesos mientras se ejecuta esta rutina. De lo contrario, los recuentos pueden ser sincronizaciones.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 10, versión 1709 |
servidor mínimo admitido | Windows Server 2016 |
de la plataforma de destino de | Universal |
encabezado de | wdm.h |
biblioteca de | Ntoskrnl.lib |