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) |