Delen via


Eigenschappen en registerwaarden instellen

In deze handleiding wordt uitgelegd hoe een audiostuurprogramma van poortklasse eigenschappen en registerwaarden voor een PnP-apparaatinterface kan instellen. Als u de apparaatinterface correct wilt registreren en vereiste waarden wilt instellen, moet het Portcls-stuurprogramma de volgende stappen uitvoeren:

1. De apparaatinterface registreren

Voordat het stuurprogramma PcRegisterSubdevice voor het subapparaat aanroept, moet het IoRegisterDeviceInterface aanroepen om de KSCATEGORY_AUDIO-interface te registreren. Hierdoor kan het stuurprogramma interface-eigenschappen en registerwaarden instellen voordat PcRegisterSubdevice de interfaces worden geregistreerd en ingeschakeld.

Wanneer u belt IoRegisterDeviceInterface, stelt het audiostuurprogramma de parameters als volgt in:

  • De PhysicalDeviceObject parameter is de PDEVICE_OBJECT opgehaald uit de PcGetPhysicalDeviceObject functie.
  • De InterfaceClassGuid is ingesteld op de klasse-GUID van de interface.
  • Dit ReferenceString is hetzelfde als de Name parameter die wordt doorgegeven aan PcRegisterSubdevice.

Nadat deze taken met succes zijn voltooid, retourneert IoRegisterDeviceInterface een SymbolicLinkName voor de geregistreerde interface.

2. Registerwaarden instellen

Het audiostuurprogramma roept IoOpenDeviceInterfaceRegistryKey aan om een ingang te verkrijgen voor de registersleutel van de apparaatinterface. De parameters voor IoOpenDeviceInterfaceRegistryKey worden als volgt ingesteld:

  • De SymbolicLinkName is de tekenreeks die in de vorige stap van IoRegisterDeviceInterface is geretourneerd.
  • De DesiredAccess waarde is ingesteld op KEY_WRITE (of andere waarden indien nodig door het stuurprogramma).

Nadat u deze stappen hebt voltooid, retourneert DeviceInterfaceKey de geopende registersleutelhandle. Het audiostuurprogramma:

  • Roep ZwSetValueKey aan om registerwaarden in te stellen.
  • Sluit de registersleutelgreep door ZwClose aan te roepen.

Notitie: Als het stuurprogramma waarden in een registersubsleutel moet instellen, moet het ZwCreateKey aanroepen om de subsleutel te maken. Bij het voorbereiden van het aanroepen ZwCreateKey, is het stuurprogramma:

  • Roept InitializeObjectAttributes aan en stelt ObjectName in op het subsleutelpad.
  • Stelt Attributes in op OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE.
  • Stelt RootDirectory in op de handle die wordt geretourneerd door IoOpenDeviceInterfaceRegistryKey.
  • Oproep ZwClose om een handle af te sluiten die is aangemaakt door ZwCreateKey aan te roepen.

3. Eigenschappen instellen

Het audiostuurprogramma roept IoSetDeviceInterfacePropertyData aan om eigenschappen in te stellen. De parameters voor IoSetDeviceInterfacePropertyData worden als volgt ingesteld:

  • Dit SymbolicLinkName is de tekenreeks die wordt geretourneerd vanuit IoRegisterDeviceInterface.
  • De resterende parameters zijn afhankelijk van de specifieke eigenschap die wordt ingesteld.

Zie ook

Voorbeeld-audio-stuurprogramma's