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.
Die NewStream-Methode erstellt eine neue Instanz eines logischen Datenstroms, der einem angegebenen physischen Kanal zugeordnet ist.
Syntax
NTSTATUS NewStream(
[out] PMXF *MXF,
[in, optional] PUNKNOWN OuterUnknown,
[in] POOL_TYPE PoolType,
[in] ULONG PinID,
[in] DMUS_STREAM_TYPE StreamType,
[in] PKSDATAFORMAT DataFormat,
[out] PSERVICEGROUP *ServiceGroup,
[in] PAllocatorMXF AllocatorMXF,
[in] PMASTERCLOCK MasterClock,
[out] PULONGLONG SchedulePreFetch
);
Parameter
[out] MXF
Ausgabezeiger für den neuen Datenstrom. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Zeigervariable, in die die Methode einen Zeiger auf die IMXF- schnittstelle des Datenstromobjekts schreibt.
[in, optional] OuterUnknown
Zeigen Sie auf die IUnknown Schnittstelle eines Objekts, das das Datenstromobjekt aggregieren muss. Dieser Parameter ist optional. Wenn keine Aggregation erforderlich ist, gibt der Aufrufer diesen Parameter als NULL-an.
[in] PoolType
Gibt den Typ des Speicherpools an, von dem der Speicher für das DMA-Kanalobjekt zugewiesen werden soll. Dieser Parameter wird auf einen der POOL_TYPE Enumerationswerte festgelegt.
[in] PinID
Gibt die Pin-ID an. Dieser Parameter identifiziert den Pin, der geöffnet werden soll. Wenn der DMus miniport-Treiber IMiniport::GetDescription Methode einen Filterdeskriptor ausgibt, der eine Summe von n Pin-Fabriken für den Filter angibt, befinden sich gültige Pin-IDs im Bereich 0 bis n-1.
[in] StreamType
Gibt den Typ des zu erstellenden Datenstroms an. Dieser Parameter wird auf einen der folgenden DMUS_STREAM_TYPE Enumerationswerte festgelegt:
DMUS_STREAM_MIDI_RENDER
Gibt einen MIDI-Ausgabedatenstrom (Wiedergabe) an.
DMUS_STREAM_MIDI_CAPTURE
Gibt einen MIDI-Eingabedatenstrom an.
DMUS_STREAM_WAVE_SINK
Gibt einen Wellenausgangsstrom an.
Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
[in] DataFormat
Zeiger auf einen Kernelstreaming KSDATAFORMAT- Struktur, die das für diese Instanz zu verwendende Datenformat angibt
[out] ServiceGroup
Ausgabezeiger für Dienstgruppe. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Zeigervariable, in die die Methode einen Zeiger auf die IServiceGroup- Schnittstelle des Dienstgruppenobjekts des Datenstroms schreibt. Dies ist die Dienstgruppe, die für die Unterbrechungsbenachrichtigung registriert wird.
[in] AllocatorMXF
Zeiger auf ein IAllocatorMXF--Objekt. Dies ist der Speicherzuordnungsserver des Porttreibers, der zum Recyceln DMUS_KERNEL_EVENT Strukturen benötigt wird.
[in] MasterClock
Zeiger auf ein IMasterClock--Objekt. Diese Masteruhr übergibt einen Wrapper für die KS-Uhr an den Miniporttreiber. Der Masteruhrzeiger ist erforderlich, um zur Referenzzeit zu synchronisieren.
[out] SchedulePreFetch
Ausgabezeiger für die Zeitplanvorschubzeit. Dieser Parameter ist ein Zeiger auf eine vom Aufrufer zugewiesene ULONGLONG-Variable, in die die Methode einen Zeitwert schreibt, der angibt, wie weit vor die Abfrage von Ereignissen liegt. Die Zeit wird in 100-Nanosekundeneinheiten angegeben. Der Porttreiber ist für die Sequenzierung von Ereignissen verantwortlich, die die Zeit überschreiten, die der Miniporttreiber hier angibt.
Rückgabewert
NewStream gibt S_OK zurück, wenn der Anruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehlercode zurück.
Bemerkungen
Beachten Sie, dass der Porttreiber das IAllocatorMXF Objekt erstellt, das von der NewStream-Methode über den pAllocatorMXF Parameter eingibt, aber der Miniporttreiber erstellt das IMXF--Objekt, das die Methode über den ppMXF Parameter ausgibt. Weitere Informationen zu IMXF- und IAllocatorMXF-finden Sie unter MIDI-Transport-.
Die Bedeutung des IMiniportDMus::NewStream StreamType- Parameters der IMiniportDMus::NewStream Methode ähnelt dem IMiniportMidi::NewStream-Parameter der Capture-Methode:
- Beim Erstellen eines Datenstroms auf einem MIDI-Pin gibt der IMiniportMidi::NewStream Method's Capture Parameter an, ob der Pin als Spüle für einen MIDI-Renderdatenstrom (Capture = FALSE) oder als Quelle eines MIDI-Aufnahmedatenstroms (Capture = TRUE) dient.
-
Ebenso kann beim Erstellen eines Streams auf einem MIDI- oder DirectMusic-Pin der
IMiniportDMus::NewStream-Parameter der Methode angegeben werden, ob der Pin als Spüle für einen MIDI-Renderdatenstrom (StreamType = DMUS_STREAM_MIDI_RENDER) oder als Quelle eines MIDI-Aufnahmedatenstroms (StreamType = DMUS_STREAM_MIDI_CAPTURE) dient.
IMiniportDMus::NewStream Ausgabeparameter der Methode abruft) für seine ISynthSinkDMus- Schnittstelle ab. Die Wellenspüle des Porttreibers ruft die Render Methode auf dieser Schnittstelle auf, um Wellendaten aus dem Softwaresynthesizer abzurufen. Weitere Informationen finden Sie unter Eine Wellenspüle für Kernel-Mode SoftwareSynthesizer.
Die ppMXF, pOuterUnknown, ppServiceGroup-, pAllocatorMXF-und pMasterClock Parameter folgen den Konventionen zum Zählen von COM-Objekten.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | dmusicks.h (include Dmusicks.h) |
| IRQL- | PASSIVE_LEVEL |