Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Abschnitt enthält eine kurze Einführung in DirectMusic-Eigenschaftselementanforderungen. Eine vollständige Übersicht über diese und andere Kernelstreaming-Konzepte finden Sie im Kernel Streaming.
DirectMusic-Miniporttreiber müssen Eigenschaftensätze von Audiotreibern verarbeiten. Eine Anfrage zu einer Eigenschaft besteht aus zwei Teilen. Der erste Teil ist der Eigenschaftensatz, der durch die KSPROPERTY-Struktur definiert wird. Der zweite ist ein Datenpuffer, der Instanzdaten enthält, die für das Eigenschaftselement spezifisch sind.
Die KSPROPERTY-Struktur enthält Folgendes:
Eine vordefinierte GUID, die den Satz angibt (z. B. KSPROPSETID_Synth_Dls).
Eine Element-ID, die das Eigenschaftselement innerhalb der Gruppe angibt (z. B. KSPROPERTY_SYNTH_DLS_DOWNLOAD).
Flags, die den angeforderten Vorgang angeben.
Das Flags-Mitglied von KSPROPERTY kann genau eines der folgenden Flags enthalten, um den vom Miniporttreiber angeforderten Vorgang anzugeben:
KSPROPERTY_TYPE_GET
So rufen Sie den Wert des angegebenen Eigenschaftselements ab.
KSPROPERTY_TYPE_SET
So legen Sie den Wert des angegebenen Eigenschaftselements fest.
KSPROPERTY_TYPE_BASICSUPPORT
Um den Für den Eigenschaftensatz verfügbaren Unterstützungstyp zu ermitteln. Die in *pvPropertyData zurückgegebenen Daten sind ein DWORD, das eine oder beide KSPROPERTY_TYPE_GET und KSPROPERTY_TYPE_SET enthält und angibt, welche Vorgänge möglich sind.
Der zweite Teil der Eigenschaftselementanforderung ist die Instanzdaten, bei denen es sich um einen Puffer handelt, der zum Übergeben von Daten an oder vom Miniporttreiber verwendet werden kann. Wie dieser Puffer verwendet wird, hängt davon ab, ob es sich bei der Anforderung um ein SET oder ein GET handelt:
Wenn es sich bei der Anforderung um eine KSPROPERTY_TYPE_SET handelt, werden die Instanzdaten an den Miniporttreiber gesendet, aber nicht an den Antragsteller zurückgegeben.
Wenn es sich bei der Anforderung um eine KSPROPERTY_TYPE_GET handelt, werden die Instanzdaten im Miniporttreiber ausgefüllt und an den Antragsteller zurückgegeben.
Eine Eigenschaftselementanforderung kann an einen bestimmten Knoten in der Miniporttreibertopologie weitergeleitet werden. Die Miniporttreibertopologie beschreibt das Layout des Treibers und der zugrunde liegenden Hardware. Innerhalb der Topologie können Knoten vorhanden sein, an denen Eigenschaftselemente gesendet werden können, abhängig davon, ob Pininstanzen zum Zeitpunkt der Anforderung verfügbar sind.
Für die Wiedergabe über DirectMusic muss eine Pin-Instanz erstellt werden. DirectMusic-Daten werden an den Knoten vom Typ KSNODETYPE_DMSYNTH gesendet. Im Folgenden sehen Sie ein Beispiel für eine Miniporttreiberverbindung:
Datenstrom in den Synthesizer einspeisen:
PCFILTER_NODE Pin 0 (aus) -> Knoten 0 Pin 1 (ein)
Verbinden Sie Synth mit Audioausgang:
Knoten 0 Pin 0 (aus) -> PCFILTER_NODE Pin 1 (ein)
Bei den unterstützten Datenformaten handelt es sich um einen Datenbereich, der angibt, in welchem Format eine Pin Daten empfangen kann.
Das DirectMusic-Format (STATIC_KSDATAFORMAT_SUBTYPE_DIRECTMUSIC) muss in der Topologie des Miniporttreibers definiert werden, damit DirectMusic seine Daten an den Miniporttreiber senden kann. Dieses Format wird durch die DMUS_EVENTHEADER-Struktur (siehe Microsoft Windows SDK-Dokumentation) in dmusbuff.h definiert. Wenn der Miniporttreiber angibt, dass er diesen bestimmten Datenbereich unterstützt, kann DirectMusic diesen Datenbereich für den Benutzer verfügbar machen (über einen Pin am Port selbst).