Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El modelo de controlador de Windows (WDM) admite la restricción del acceso al dispositivo a través de listas de Access Control (ACL) en los nodos de dispositivo de Plug and Play (PnP). Esto significa que los proveedores y administradores de red pueden restringir el acceso a cualquier tipo de dispositivo. Cuando una aplicación abre un identificador para un controlador mediante una llamada a IPortableDevice::Open, el administrador de E/S del controlador comprueba si el usuario especificado tiene el acceso necesario y, de forma similar, realiza comprobaciones de acceso cuando se envían ICTLs al controlador desde ese identificador.
Por ejemplo, un administrador de red podría restringir a los usuarios invitados el acceso de solo lectura para dispositivos portátiles, mientras que podrían conceder acceso de lectura y escritura a los usuarios autenticados. En este caso, implica que si un invitado emitió un comando WPD que requería acceso de lectura y escritura (como Eliminar objeto); se produciría un error con Acceso denegado, mientras que si un usuario autenticado emitiera el mismo comando, se realizaría correctamente.
Las directiva de grupo entradas para controlar el acceso a dispositivos portátiles y almacenamiento extraíbles no es más que una manera fácil de que los administradores apliquen ACL de nodo de dispositivo PnP a toda una clase de dispositivos a la vez (por ejemplo, aplicar el "Denegar acceso de escritura a dispositivos portátiles" directiva de grupo ajustaría las ACL de todos los dispositivos WPD para denegar el acceso de escritura).
Códigos de control de E/S en WPD
Las aplicaciones WPD se comunican con controladores abriendo identificadores de dispositivo y enviando códigos de control de E/S (IOCTLs). Estas ICTLs constan de cuatro secciones:
- Tipo de dispositivo
- Código de función
- Buffer (método)
- Tipo de acceso
La cuarta sección, tipo de acceso, especifica el requisito de acceso específico para el comando especificado. El administrador de E/S del controlador usa estos datos para realizar la comprobación de lista de Access Control (ACL).
Por lo tanto, si se definió un IOCTL como:
#define MY_READ_IOCTL CTL_CODE(FILE_DEVICE_X, CONTROL_FUNCTION_Y, METHOD_BUFFERED, FILE_READ_ACCESS)
El administrador de E/S del controlador comprobaría que el propietario del identificador del dispositivo tiene acceso de lectura al dispositivo cuando se envía este mensaje.
Y, si se definió un IOCTL como:
#define MY_READWRITE_IOCTL CTL_CODE(FILE_DEVICE_X, CONTROL_FUNCTION_Z, METHOD_BUFFERED, (FILE_READ_ACCESS | FILE_WRITE_ACCESS))
El administrador de E/S del controlador comprobaría que el propietario del identificador del dispositivo tiene acceso de lectura y escritura al dispositivo cuando se envía este mensaje.
Temas relacionados