Partager via


Exemple d’entrée de Registre pour les unités d’extension UVC

Important

Le contenu et l’exemple de code de cette rubrique sont obsolètes et actuellement non pris en charge. Il se peut que cela ne fonctionne pas avec la chaîne d’outils de développement de pilotes actuelle.

Cette rubrique contient un exemple d’entrée de Registre que vous pouvez utiliser pour prendre en charge les unités d’extension.

Les entrées doivent être ajoutées à la sous-clé de Registre HKLM\System\CurrentControlSet\Control\NodeInterfaces . Cette sous-clé de Registre contient des valeurs GUID de jeu de propriétés et les valeurs IID et CLSID pour les interfaces qui correspondent à cet ensemble de propriétés.

Vérifiez que :

  • Le GUID du jeu de propriétés correspond au GUID dans le descripteur d’unité d’extension.

  • Les valeurs IID et CLSID de la sous-clé NodeInterfaces sont stockées sous forme binaire, petite-endienne.

Ainsi, une valeur IID de {12345678-1234-5678-0123456789abcdef} serait stockée comme :

78 56 34 12 34 12 78 56 01 23 45 67 89 ab cd ef
  • Les GUID doivent être uniques et doivent être générés à l’aide deGuidgen.exe, un outil inclus dans le Microsoft Windows SDK.

Incluez le code suivant dans le script de Registre, nommé arbitrairement Xusample.rgs :

HKLM
{
    NoRemove SYSTEM
    {
        NoRemove CurrentControlSet
        {
            NoRemove Control
            {
                NoRemove NodeInterfaces
                {
                    ForceRemove {xxxxxxxx-xxxx-xxxx-xxxx-
                       xxxxxxxxxxxx} = s 'Extension Unit
                       Property Set'
                    {
                        val IID = b 'yyyyyyyyyyyyyyyyyyy
                           yyyyyyyyyyyyy'
                        val CLSID = b 'zzzzzzzzzzzzzzzzz
                           zzzzzzzzzzzzzzz'
                    }
                }
            }
        }
    }
}

Pour prendre en charge l’installation en inscrivant la DLL de plug-in, ajoutez le code suivant à votre script de Registre :

HKCR
{
    NoRemove CLSID
    {
         ForceRemove {zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz} = s 'CompanyName Extension Unit Interface'
        {
            InprocServer32 = s '%MODULE%'
                                                {
                                val ThreadingModel = s 'Both'
                                                }
        }

    }
}