Partager via


WdmlibIoValidateDeviceIoControlAccess, fonction (wdmsec.h)

La fonction WdmlibIoValidateDeviceIoControlAccess vérifie que l’expéditeur d’un IRP_MJ_DEVICE_CONTROL ou d’un IRP IRP_MJ_FILE_SYSTEM_CONTROL a l’accès spécifié à l’objet de l’appareil.

Syntaxe

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

Paramètres

[in] Irp

Spécifie le IRP sur lequel effectuer la vérification d’accès.

[in] RequiredAccess

Spécifie le type d’accès à l’objet d’appareil que l’expéditeur de la demande doit avoir. L’appelant peut spécifier un ou plusieurs des indicateurs suivants.

Valeur Signification
FILE_READ_ACCESS
L’expéditeur de la demande doit disposer d’un accès en lecture à l’objet de l’appareil
FILE_WRITE_ACCESS
L’expéditeur de la demande doit avoir un accès en écriture à l’objet de l’appareil.

Valeur de retour

WdmlibIoValidateDeviceIoControlAccess retourne une valeur NTSTATUS. Les valeurs de retour possibles sont les suivantes :

Retourner le code Description
STATUS_SUCCESS
L’expéditeur de la demande a l’accès nécessaire à l’objet de l’appareil.
STATUS_ACCESS_DENIED
L’expéditeur de la demande n’a pas l’accès nécessaire à l’objet de l’appareil.
STATUS_INVALID_PARAMETER
Les paramètres spécifiés ne sont pas valides. Par exemple, si la routine est passée à un IRP qui n’est pas un IRP_MJ_DEVICE_CONTROL ou IRP_MJ_FILE_SYSTEM_CONTROL IRP, elle retourne STATUS_INVALID_PARAMETER.

Remarques

WdmlibIoValidateDeviceIoControlAccess permet aux pilotes d’effectuer des vérifications d’accès dynamique pour les IOCTL. Utilisez cette routine pour exiger un accès plus restrictif que celui spécifié dans la définition du IOCTL. Si la routine retourne STATUS_ACCESS_DENIED, le pilote peut terminer la demande avec la valeur d’état STATUS_ACCESS_DENIED.

Par exemple, si un IOCTL est défini avec une valeur de RequiredAccess de FILE_ANY_ACCESS, par défaut, tout expéditeur de demande disposant d’un accès SYNCHRON à l’objet de l’appareil peut envoyer iocTL. Utilisez WdmlibIoValidateDeviceIoControlAccess pour exiger une sécurité plus stricte au moment de l’exécution. Pour plus d’informations sur la valeur RequiredAccess d’un IOCTL, consultez Définition des codes de contrôle d’E/S.

Les vérifications d’accès sont effectuées uniquement si le RequestorMode membre de la structure IRP est UserMode. Si RequestorMode est kernelMode, la routine retourne automatiquement STATUS_SUCCESS.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Server 2003 et versions ultérieures de Windows. Les pilotes qui doivent également fonctionner pour Windows 2000 et Windows XP peuvent à la place lier à Wdmsec.lib pour utiliser cette routine. (La bibliothèque Wdmsec.lib est d’abord fournie avec les éditions Windows XP Service Pack 1 [SP1] et Windows Server 2003 du Kit de développement de pilotes [DDK] et est désormais fournie avec le Kit de pilotes Windows [WDK].)
plateforme cible Universel
d’en-tête wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

IRP