Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
De nombreux pilotes créent plusieurs types d’objets d’appareil en appelant IoCreateDevice. Certains pilotes créent des objets de périphérique de contrôle dans leurs routines DriverEntry pour permettre aux applications de communiquer avec le pilote, même avant que le pilote ne crée une FDO. Par exemple, les pilotes de système de fichiers créent des objets d’appareil pour gérer les notifications de système de fichiers lorsqu’ils s’inscrivent en tant que systèmes de fichiers auprès d’IoRegisterFileSystem.
Un pilote doit être prêt pour les demandes concernant IRP_MJ_CREATE pour tout objet de dispositif qu'il crée. Une fois la demande terminée avec un état de réussite, le pilote doit s’attendre à recevoir toutes les demandes d’E/S accessibles à l’utilisateur sur l’objet de fichier créé. Par conséquent, tout pilote qui crée plusieurs objets d’appareil doit vérifier l’objet d’appareil que chaque demande d’E/S spécifie.
Par exemple, supposons qu’un pilote crée des objets de périphérique de contrôle global dans DriverEntry, puis crée un autre ensemble d’objets d’appareil dans sa routine AddDevice . Supposons que la routine AddDevice initialise l’extension de périphérique avec des informations sur les pilotes de niveau inférieur, mais que les objets de périphérique de contrôle ne contiennent pas ces informations. Dans ce cas, toutes les routines de répartition doivent être prudentes pour vérifier chaque objet de périphérique qu’elles reçoivent. Sinon, le pilote peut planter lorsqu'il tente d'utiliser les informations d'extension de périphérique.