Routines de répartition requises
La plupart des pilotes doivent gérer les routines dispatch suivantes :
-
IRP_MJ_PNP indique une demande impliquant la reconnaissance d’appareils PnP, la configuration matérielle ou l’allocation de ressources. Ces demandes sont généralement envoyées à un pilote de périphérique à partir du gestionnaire PnP ou d’un pilote de niveau supérieur étroitement couplé.
-
IRP_MJ_POWER indique une demande relative à l’état d’alimentation de l’appareil ou du système. Ces demandes sont envoyées au pilote de périphérique par le gestionnaire d’alimentation ou par un pilote de niveau supérieur étroitement couplé.
-
IRP_MJ_CREATE indique qu’un sous-système protégé en mode utilisateur, éventuellement pour le compte d’une application ou d’un pilote spécifique au sous-système, a demandé un handle pour l’objet de fichier associé à l’objet d’appareil cible, ou qu’un pilote de niveau supérieur connecte ou attache son objet d’appareil à l’objet d’appareil cible.
-
IRP_MJ_CLOSE indique que le dernier handle de l’objet fichier associé à l’objet d’appareil cible a été fermé et libéré. Toutes les demandes d’E/S ont été terminées ou annulées, de sorte qu’il n’y a aucune référence en suspens au pointeur de l’objet fichier.
-
IRP_MJ_READ indique une demande d’E/S pour transférer des données de l’appareil physique sous-jacent vers le système.
-
IRP_MJ_WRITE indique une demande d’E/S pour transférer des données du système vers l’appareil physique sous-jacent.
-
IRP_MJ_DEVICE_CONTROL indique une requête qui contient un code de contrôle d’E/S spécifique au type d’appareil défini par le système, spécifiant une opération spécifique au type d’appareil. Les pilotes de niveau supérieur transmettent ces IRP à leurs pilotes de périphérique sous-jacents, qui traitent généralement la demande en accédant à l’appareil.
-
IRP_MJ_INTERNAL_DEVICE_CONTROL indique une demande envoyée au pilote de périphérique, dans la plupart des cas à partir d’un pilote de niveau supérieur étroitement couplé, généralement avec un code de contrôle d’E/S spécifique au pilote, spécifique au pilote et spécifique au périphérique, qui demande une opération spécifique au type de périphérique ou au périphérique.
Seuls certains types de pilotes sont nécessaires pour gérer les demandes de contrôle d’E/S internes définies par le système, notamment certains pilotes SCSI, pilotes de périphériques clavier ou souris et pilotes parallèles qui interagissent avec les pilotes fournis par le système.
-
IRP_MJ_SYSTEM_CONTROL est utilisé pour spécifier les requêtes WMI aux pilotes. Pour plus d’informations sur WMI, consultez Windows Management Instrumentation.
Les routines de répartition qu’un pilote doit fournir varient en fonction du type et des fonctionnalités de l’appareil physique sous-jacent. Pour obtenir des informations spécifiques au type d’appareil sur les codes de fonction principale IRP que les pilotes doivent gérer, consultez la documentation spécifique au type de périphérique dans le Kit de pilotes Windows (WDK).