Freigeben über


IMiniportWaveCyclic::NewStream-Methode (portcls.h)

Die NewStream-Methode erstellt eine neue Instanz eines logischen Datenstroms, der einem angegebenen physischen Kanal zugeordnet ist.

Syntax

NTSTATUS NewStream(
  [out]          PMINIPORTWAVECYCLICSTREAM *Stream,
  [in, optional] PUNKNOWN                  OuterUnknown,
  [in]           POOL_TYPE                 PoolType,
  [in]           ULONG                     Pin,
  [in]           BOOLEAN                   Capture,
  [in]           PKSDATAFORMAT             DataFormat,
  [out]          PDMACHANNEL               *DmaChannel,
  [out]          PSERVICEGROUP             *ServiceGroup
);

Parameter

[out] Stream

Ausgabezeiger für den neuen Datenstrom. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Zeigervariable, in die die Methode einen Zeiger auf die IMiniportWaveCyclicStream Schnittstelle des Datenstromobjekts schreibt. Der Aufrufer gibt einen gültigen, nichtNULL Zeigerwert für diesen Parameter an.

[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 ist einer der nicht seitenseitigen Pooltypen, die in der POOL_TYPE-Aufzählung definiert sind.

[in] Pin

Die Nummer des Pins, der geöffnet werden soll. Wenn der WaveCyclic Miniport-Treiber IMiniport::GetDescription Methode einen Filterdeskriptor ausgibt, der eine Summe von n Pin-Fabriken für den Filter angibt, dann sind gültige Werte für Parameter Pin im Bereich 0 bis n-1.

[in] Capture

Gibt an, ob ein Aufnahmedatenstrom oder ein Renderdatenstrom erstellt werden soll. Dieser Parameter ist TRUE- für einen Aufnahmekanal (Eingabekanal) und FALSE- für einen Wiedergabekanal (Ausgabekanal).

[in] DataFormat

Zeiger auf eine KSDATAFORMAT- Struktur, die das für diese Instanz zu verwendende Format angibt.

[out] DmaChannel

Ausgabezeiger auf den DMA-Kanal. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Zeigervariable, in die die Methode einen Zeiger auf die IDmaChannel Schnittstelle des DMA-Kanalobjekts des Miniporttreibers schreibt. Der Aufrufer gibt einen gültigen, nichtNULL Zeigerwert für diesen Parameter an. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

[out] ServiceGroup

Ausgabezeiger für die 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. Der Aufrufer gibt einen gültigen, nichtNULL Zeigerwert für diesen Parameter an.

Rückgabewert

NewStream gibt STATUS_SUCCESS zurück, wenn der Anruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehlercode zurück.

Bemerkungen

Die NewStream-Methode legt den Anfangszustand des Datenstroms auf KSSTATE_STOP und seine Anfangsposition auf Null fest. (Siehe IMiniportWaveCyclicStream::SetState und IMiniportWaveCyclicStream::GetPosition.)

Der Porttreiber ruft nur die folgenden Methoden für das DmaChannel-Objekt auf:

IDmaChannel::AllocatedBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

Die parameter Stream, OuterUnknown, DmaChannelund ServiceGroup Parameter folgen den Konventionen für die Verweiszählung von COM-Objekten.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- portcls.h (include Portcls.h)
IRQL- PASSIVE_LEVEL

Siehe auch

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup-

KSDATAFORMAT-

POOL_TYPE