ID de l’instance

Un ID de instance est une chaîne signalée par l’énumérateur d’un appareil (son pilote de bus) et distingue un appareil des autres appareils du même type sur un ordinateur. Un ID de instance contient des informations de numéro de série, si elles sont prises en charge par le bus sous-jacent, ou un type quelconque d’informations d’emplacement. La chaîne ne peut pas contenir de caractères « \ » ou d’autres caractères non autorisés dans une réponse à une demande de IRP_MN_QUERY_ID ; sinon, le format générique de la chaîne est spécifique au bus. Le nombre de caractères d’un ID de instance, à l’exception d’un terminateur NULL, doit être inférieur à MAX_DEVICE_ID_LEN. En outre, l’ID de instance est une autre entrée dans la création de l’ID de instance de l’appareil, ainsi qu’un ID d’appareil, et la longueur maximale possible d’un ID de instance d’appareil est MAX_DEVICE_ID_LEN. Cela nécessite que la longueur de l’ID de instance soit suffisamment inférieure MAX_DEVICE_ID_LEN à ce que l’ID de instance de l’appareil puisse être créé en tant que chaîne dont la longueur est inférieure MAX_DEVICE_ID_LENà .

Le membre UniqueID de la structure DEVICE_CAPABILITIES d’un appareil indique si un ID de instance fourni par bus est unique dans le système, comme suit :

  • Si UniqueID a la valeur FALSE, l’ID de instance fourni par le bus d’un appareil est unique uniquement au bus de l’appareil. Le gestionnaire de Plug-and-Play (PnP) modifie l’ID de instance fourni par le bus et le combine avec l’ID d’appareil correspondant pour créer un ID de instance d’appareil unique dans le système.

  • Si UniqueID a la valeur TRUE, l’ID de instance de l’appareil, formé à partir de l’ID d’appareil fourni par le bus et de l’ID de instance, identifie de manière unique un appareil dans le système.

Un ID de instance est persistant entre les redémarrages du système.

Le gestionnaire PnP interroge cette chaîne à partir du pilote de bus de l’appareil à l’aide d’une requête IRP_MN_QUERY_ID avec le champ Parameters.QueryId.IdType défini sur BusQueryInstanceID.