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 dispose de l’accès spécifié à l’objet d’appareil.

Syntaxe

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

Paramètres

[in] Irp

Spécifie l’IRP sur lequel effectuer le case activée 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 avoir un accès en lecture à l’objet d’appareil
FILE_WRITE_ACCESS
L’expéditeur de la demande doit disposer d’un accès en écriture à l’objet d’appareil.

Valeur retournée

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

Code de retour Description
STATUS_SUCCESS
L’expéditeur de la demande a l’accès nécessaire à l’objet d’appareil.
STATUS_ACCESS_DENIED
L’expéditeur de la demande n’a pas l’accès nécessaire à l’objet d’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 dynamiques 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 requête avec la valeur STATUS_ACCESS_DENIED status.

Par exemple, si un IOCTL est défini avec une valeur RequiredAccess de FILE_ANY_ACCESS, par défaut, tout expéditeur de demande disposant d’un accès SYNCHRONIZE à l’objet d’appareil peut envoyer l’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 de codes de contrôle d’E/S.

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

Configuration requise

Condition requise Valeur
Client minimal 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 a d’abord été fournie avec les éditions Windows XP Service Pack 1 [SP1] et Windows Server 2003 du Kit de développement de pilotes [DDK] et est maintenant fournie avec le Kit de pilotes Windows [WDK].)
Plateforme cible Universal
En-tête wdmsec.h (inclure Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

IRP