Compartir a través de


Entrada del Registro de ejemplo para unidades de extensión UVC

Importante

El contenido y el código de ejemplo de este tema están obsoletos y no se admiten actualmente. Es posible que no funcione con la cadena de herramientas de desarrollo de controladores actual.

Este tema contiene una entrada del Registro de ejemplo que puede usar para admitir unidades de extensión.

Las entradas deben agregarse a la subclave del Registro HKLM\System\CurrentControlSet\Control\NodeInterfaces . Esta subclave del Registro contiene valores GUID de conjunto de propiedades y los valores IID y CLSID de las interfaces que corresponden a ese conjunto de propiedades.

Compruebe lo siguiente:

  • El GUID del conjunto de propiedades coincide con el GUID en el descriptor de unidad de extensión.

  • Los valores IID y CLSID de la subclave NodeInterfaces se almacenan en formato binario y little-endian.

Por lo tanto, un valor IID de {12345678-1234-5678-0123456789abcdef} se almacenaría como:

78 56 34 12 34 12 78 56 01 23 45 67 89 ab cd ef
  • Los GUID deben ser únicos y deben generarse mediante Guidgen.exe, una herramienta que se incluye en el Microsoft Windows SDK.

Incluya el código siguiente en el script del Registro, denominado arbitrariamente 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'
                    }
                }
            }
        }
    }
}

Para admitir la instalación mediante el registro del archivo DLL del complemento, agregue el código siguiente al script del Registro:

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

    }
}