Entrada de registro de exemplo para unidades de extensão UVC

Importante

O conteúdo e o código de exemplo neste tópico estão desatualizados e atualmente sem suporte. Ele pode não funcionar com a cadeia de ferramentas de desenvolvimento de driver atual.

Este tópico contém uma entrada de registro de exemplo que você pode usar para dar suporte a Unidades de Extensão.

As entradas devem ser adicionadas à subchave do registro HKLM\System\CurrentControlSet\Control\NodeInterfaces . Essa subchave do Registro contém valores GUID do conjunto de propriedades e os valores IID e CLSID para as interfaces que correspondem a esse conjunto de propriedades.

Verifique se:

  • O GUID do conjunto de propriedades corresponde ao GUID no descritor da Unidade de Extensão.

  • Os valores IID e CLSID na subchave NodeInterfaces são armazenados em formato binário e little-endian.

Assim, um valor IID de {12345678-1234-5678-0123456789abcdef} seria armazenado como:

78 56 34 12 34 12 78 56 01 23 45 67 89 ab cd ef
  • Os GUIDs devem ser exclusivos e devem ser gerados usando Guidgen.exe, uma ferramenta incluída no SDK do Microsoft Windows.

Inclua o seguinte código no script do Registro, arbitrariamente chamado 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 dar suporte à instalação registrando a DLL de plug-in, adicione o seguinte código ao script do Registro:

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

    }
}