Freigeben über


Encoderinstallation und Registrierung

Die INF-Datei für einen Treiber mit einem Encoderfilter muss Einträge enthalten, die Folgendes definieren:

  • Zusätzliche Kernelstreaming-Aufnahmekomponenten

  • Welche COM-Schnittstelle KsProxy verfügbar machen soll

  • Metadatenwerte, die die Funktionen des Encoderfilters beschreiben

  • Die Kernelstreamingkategorie des Filters

Zusätzliche Kernelstreaming-Aufnahmekomponenten

Die INF-Datei, die zum Installieren des Treibers für ein Encodergerät verwendet wird, muss im Abschnitt [DefaultInstall] als Aufnahmetreiber auf "ks.inf " und "kscaptur.inf " verweisen, da diese Dateien erforderliche Unterstützung für Encoderkomponenten hinzufügen. Beispiel:

[DefaultInstall]
include=ks.inf,kscaptur.inf
needs=[Your driver's DDInstall section],KS.Registration,KSCAPTUR.Registration.NT

Welche COM-Schnittstelle KsProxy verfügbar machen soll

Geben Sie im AddReg-Abschnitt der INF-Datei Ihres Treibers eine der folgenden drei GUIDs an, um die COM-Schnittstelle anzugeben, die das KsProxy-Plug-In (encapi.dll) für Clients verfügbar machen soll. Die COM-Schnittstelle wird durch die von Ihnen implementierte Unterstützung von Eigenschaften im Encoder-Filter bestimmt.

Schnittstellen-GUID Name BESCHREIBUNG

{B43C4EEC-8C32-4791-9102-508ADA5EE8E7}

CLSID_IVideoEncoderProxy

Geben Sie diese GUID an, damit KsProxy die IVideoEncoder-COM-Schnittstelle verfügbar macht (aus Gründen der Abwärtskompatibilität mit der älteren Generation von Encoderunterstützung, die von Microsoft bereitgestellt wird). Clients müssen diese Schnittstelle von der IEncoderAPI COM-Schnittstelle ableiten.

{7FF0997A-1999-4286-A73C-622B8814E7EB}

CLSID_ICodecAPIProxy

Geben Sie diese GUID an, damit KsProxy die ICodecAPI-COM-Schnittstelle verfügbar macht (für nicht-Videocodierungsgeräte wie Audio-Encoder).

{B05DABD9-56E5-4FDC-AFA4-8A47E91F1C9C}

CLSID_IVideoEncoderCodecAPIProxy

Geben Sie diese GUID an, damit KsProxy sowohl die IVideoEncoder - als auch die ICodecAPI-COM-Schnittstellen verfügbar macht (aus Gründen der Abwärts- und Vorwärtskompatibilität).

Beispiel:

[Your driver's AddReg section]
HKR,Interfaces\{B43C4EEC-8C32-4791-9102-508ADA5EE8E7},,,

Dies würde dazu führen, dass KsProxy nur die COM-Schnittstelle IVideoEncoder (CLSID_IVideoEncoderProxy) verfügbar macht.

Diese COM-Schnittstellen sind im DirectShow-Abschnitt der DirectX 9- und Windows-SDKs für Windows XP mit SP1 und höher dokumentiert.

Metadatenwerte, die die Funktionen des Encoderfilters ankündigen

Sie können Metadatenwerte im Bereich "Geräteparameter\Funktionen " der Registrierung in der INF-Datei des Encoders angeben. Anwendungen können diese Metadatenwerte verwenden, um zu bestimmen, welche Funktionalität für den Benutzer implementiert oder verfügbar gemacht werden soll.

Beispiel:

[Your driver's AddReg section]
HKR,Capabilities,,,
HKR,Capabilities,"{12345678-1234-1234-1234-12345678abcd}",,guid1

Dadurch würde ein Metadatenelement "{12345678-1234-1234-1234-12345678abcd} = guid1" im Bereich " Geräteparameter\Funktionen " der Registrierungseinstellungen des Encoders erstellt. Die leere Zeile ist erforderlich, um den Registrierungsschlüssel zu erstellen, falls er noch nicht vorhanden ist.

Ein Encoderfilter kann solche statischen Metadaten in der INF-Datei für die Verwendung durch Anwendungen angeben. Windows XP Media Center Edition sucht beispielsweise nach Encodern, die angeben, dass sie Windows XP Media Center Edition-kompatibel sind.

Die Kernel Streaming Kategorie des Filters

Kernelstreamingfilter müssen die Kernelstreamingkategorie angeben, zu der sie gehören. Microsoft definiert GUIDs für allgemeine Kategorien, einschließlich Encoderfiltern und Multiplexerfiltern.

Filter geben ihre jeweiligen Kategorien an, indem sie eine oder mehrere der folgenden GUIDs in einer AddInterface-Direktive im Abschnitt des Minidrivers der INF-Datei angeben:

Guid der Kernelstreamingkategorie Name BESCHREIBUNG

{19689BF6-C384-48FD-AD51-90E58C79F70B}

KSCATEGORY_ENCODER

Geben Sie diese GUID für Encoder-Filter an.

{7A5DE1D3-01A1-452C-B481-4FA2B96271E8}

KSCATEGORY_Multiplexer

Geben Sie diese GUID für Muxfilter an.

Um einen Encoderfilter zu registrieren, geben Sie die KSCATEGORY_ENCODER GUID im DDInstall.Schnittstelle INF-Dateiabschnitt Ihres Treibers an. Beispiel:

[Your Driver's DDInstall.Interface section]
AddInterface=%KSCATEGORY_ENCODER%,%KSNAME_Filter%,MyEncoderDevice.AddInterface

[MyEncoderDevice.AddInterface]
AddReg=MyEncoderDevice.AddReg

[MyEncoderDevice.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%MyEncoderDeviceFriendlyName%

[Strings]
KSCATEGORY_ENCODER="{19689BF6-C384-48FD-AD51-90E58C79F70B}"
KSNAME_Filter="{9B365890-165F-11D0-A195-0020AFD156E4}"
KSProxy.CLSID="17CCA71B-ECD7-11D0-B908-00A0C9223196"
MyEncoderDeviceFriendlyName="My Encoder Device"

Anmerkung: Die für KSNAME_Filter angegebene GUID muss mit dem ReferenceGuid-Element übereinstimmen, das Sie in der KSFILTER_DESCRIPTOR Struktur angegeben haben, die Ihren Filter beschreibt.