Función IoSetShareAccess (wdm.h)

La rutina IoSetShareAccess establece los derechos de acceso para compartir el objeto de archivo especificado.

Sintaxis

void IoSetShareAccess(
  [in]      ACCESS_MASK   DesiredAccess,
  [in]      ULONG         DesiredShareAccess,
  [in, out] PFILE_OBJECT  FileObject,
  [out]     PSHARE_ACCESS ShareAccess
);

Parámetros

[in] DesiredAccess

Especifica un valor de ACCESS_MASK que representa el tipo de acceso solicitado para fileObject. Consulte IoCreateFile para obtener una lista completa de las marcas DesiredAccess definidas por el sistema.

[in] DesiredShareAccess

Especifica el tipo de acceso al recurso compartido que se va a establecer para el objeto de archivo. Este valor puede ser cero o cualquier combinación de lo siguiente:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

Puntero al objeto de archivo cuyo acceso al recurso compartido se va a establecer o restablecer.

[out] ShareAccess

Puntero a la estructura de SHARE_ACCESS asociada a FileObject. Los controladores deben tratar esta estructura como opaca.

Valor devuelto

None

Observaciones

Solo los controladores de modo kernel de nivel superior deben llamar a esta rutina. La llamada debe producirse en el contexto del primer subproceso que intenta abrir fileObject.

Esta rutina establece el acceso y la información de acceso compartido cuando se abre el FileObject por primera vez. Devuelve un puntero a la estructura de datos de acceso a recursos compartidos común asociada a FileObject. Los autores de llamadas deben guardar este puntero para usarlo más adelante al actualizar el acceso o cerrar el archivo.

Por lo general, es más probable que los controladores del sistema de archivos (FSD) llamen a esta rutina. Sin embargo, otros controladores de nivel superior pueden llamar a IoSetShareAccess para controlar el tipo de acceso permitido a un objeto de dispositivo creado por el controlador asociado al fileObject especificado.

IoSetShareAccess no es una operación atómica. Por lo tanto, los controladores que llaman a esta rutina deben proteger el objeto de archivo compartido pasado a IoSetShareAccess mediante algún tipo de bloqueo, como una exclusión mutua o un bloqueo de recursos, con el fin de evitar daños en los recuentos de acceso compartido.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm)

Consulte también

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess