Compartir a través de


Función WdmlibIoValidateDeviceIoControlAccess (wdmsec.h)

La función WdmlibIoValidateDeviceIoControlAccess comprueba que el remitente de un IRP_MJ_DEVICE_CONTROL o IRP_MJ_FILE_SYSTEM_CONTROL IRP tenga el acceso especificado al objeto de dispositivo.

Sintaxis

NTSTATUS WdmlibIoValidateDeviceIoControlAccess(
  [in] PIRP  Irp,
  [in] ULONG RequiredAccess
);

Parámetros

[in] Irp

Especifica el IRP de en el que se va a realizar la comprobación de acceso.

[in] RequiredAccess

Especifica el tipo de acceso al objeto de dispositivo que debe tener el remitente de la solicitud. El autor de la llamada puede especificar una o varias de las marcas siguientes.

Valor Significado
FILE_READ_ACCESS
El remitente de la solicitud debe tener acceso de lectura al objeto de dispositivo.
FILE_WRITE_ACCESS
El remitente de la solicitud debe tener acceso de escritura al objeto de dispositivo.

Valor devuelto

WdmlibIoValidateDeviceIoControlAccess devuelve un valor NTSTATUS. Entre los posibles valores devueltos se incluyen:

Código devuelto Descripción
STATUS_SUCCESS
El remitente de la solicitud tiene el acceso necesario al objeto de dispositivo.
STATUS_ACCESS_DENIED
El remitente de la solicitud no tiene el acceso necesario al objeto de dispositivo.
STATUS_INVALID_PARAMETER
Los parámetros especificados no son válidos. Por ejemplo, si la rutina se pasa a un IRP que no es una IRP_MJ_DEVICE_CONTROL o IRP_MJ_FILE_SYSTEM_CONTROL IRP, devuelve STATUS_INVALID_PARAMETER.

Observaciones

WdmlibIoValidateDeviceIoControlAccess permite a los controladores realizar comprobaciones de acceso dinámico para ioCTLs. Use esta rutina para requerir acceso más restrictivo que el especificado en la definición del IOCTL. Si la rutina devuelve STATUS_ACCESS_DENIED, el controlador puede completar la solicitud con el valor de estado STATUS_ACCESS_DENIED.

Por ejemplo, si se define un IOCTL con un valor de RequiredAccess de FILE_ANY_ACCESS, de forma predeterminada, cualquier remitente de solicitud con acceso SYNCHRONIZE al objeto de dispositivo puede enviar el IOCTL. Use WdmlibIoValidateDeviceIoControlAccess para requerir una seguridad más estricta en tiempo de ejecución. Para obtener más información sobre el valor de RequiredAccess de un IOCTL, vea Definición de códigos de control de E/S.

Las comprobaciones de acceso solo se realizan si el miembro requestorMode de del IRP es UserMode. Si RequestorMode es KernelMode, la rutina devuelve automáticamente STATUS_SUCCESS.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows Server 2003 y versiones posteriores de Windows. Los controladores que también deben funcionar para Windows 2000 y Windows XP pueden vincularse a Wdmsec.lib para usar esta rutina. (La biblioteca Wdmsec.lib se incluye primero con las ediciones de Windows XP Service Pack 1 [SP1] y Windows Server 2003 del Kit de desarrollo de controladores [DDK] y ahora se incluye con el Kit de controladores de Windows [WDK].)
de la plataforma de destino de Universal
encabezado de wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

IRP