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

Comentarios

WdmlibIoValidateDeviceIoControlAccess permite a los controladores realizar comprobaciones de acceso dinámico para ioCTLs. Use esta rutina para requerir un acceso más restrictivo que el especificado en la definición de 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 RequiredAccess de FILE_ANY_ACCESS, de forma predeterminada, cualquier remitente de la 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 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 la estructura IRP es UserMode. Si RequestorMode es KernelMode, la rutina devuelve automáticamente STATUS_SUCCESS.

Requisitos

Requisito Value
Cliente mínimo compatible 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 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].)
Plataforma de destino Universal
Encabezado wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel

Consulte también

IRP