Partager via


Erreurs supplémentaires dans la gestion des irPs

Voici des erreurs supplémentaires que les pilotes effectuent parfois lors de la gestion des IRP.

IrPs perdus ou doublement terminés

Ces problèmes, ainsi que les appels manquants aux routines du gestionnaire d’E/S comme IoStartNextPacket, se produisent souvent dans les chemins de gestion des erreurs. Les révisions rapides des chemins d’accès des pilotes peuvent trouver de tels problèmes.

Chemins IOCTL publics et IOCTL privés convergents

En règle générale, les pilotes doivent contenir des chemins d’exécution distincts pour les IOCTL publics et privés (ou FSCTL). Un pilote ne peut pas déterminer si une requête IOCTL ou FSCTL provient du mode noyau ou du mode utilisateur en examinant le code de contrôle. Par conséquent, la gestion des codes publics et privés dans le même chemin d’exécution (ou l’exécution d’une validation minimale, puis l’appel des mêmes routines) peut ouvrir un pilote aux violations de sécurité. Si un IOCTL privé ou FSCTL est privilégié, les utilisateurs non privilégiés qui connaissent les codes de contrôle peuvent y accéder. Par conséquent, si votre pilote prend en charge les demandes IOCTL ou FSCTL privées, assurez-vous qu’il gère ces demandes séparément des IOCTL publics ou FSCTL qu’il doit également prendre en charge.