Compartir a través de


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

Consulte también

rutinas del Administrador de E/S de

IoRemoveLinkShareAccess

IoSetLinkShareAccess

ioUpdateLinkShareAccess