Metodo IMiniportWaveCyclic::NewStream (portcls.h)

Il NewStream metodo crea una nuova istanza di un flusso logico associato a un canale fisico specificato.

Sintassi

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
);

Parametri

[out] Stream

Puntatore di output per il nuovo flusso. Questo parametro punta a una variabile puntatore allocata al chiamante in cui il metodo scrive un puntatore all'interfaccia IMiniportWaveCyclicStream dell'oggetto di flusso. Il chiamante specifica un valore di puntatore non NULL valido per questo parametro.

[in, optional] OuterUnknown

Puntatore all'interfaccia IUnknown di un oggetto che deve aggregare l'oggetto di flusso. Questo parametro è facoltativo e, Se l'aggregazione non è necessaria, il chiamante specifica questo parametro come NULL.

[in] PoolType

Specifica il tipo di pool di memoria da cui deve essere allocata l'archiviazione per l'oggetto canale DMA. Questo parametro sarà uno dei tipi di pool non a pagina definiti nell'enumerazione POOL_TYPE .

[in] Pin

Numero del pin da aprire. Se il metodo IMiniport IMiniport::GetDescription del driver WaveCyclic restituisce un descrittore di filtro che specifica un totale di n pin factory nel filtro, i valori validi per il Pin del parametro si trovano nell'intervallo da 0 a n-1.

[in] Capture

Specifica se creare un flusso di acquisizione o un flusso di rendering. Questo parametro è TRUE per un canale di acquisizione (input) e FALSE per un canale di riproduzione (output).

[in] DataFormat

Puntatore a una struttura KSDATAFORMAT che indica il formato da usare per questa istanza.

[out] DmaChannel

Puntatore di output al canale DMA. Questo parametro punta a una variabile puntatore allocata dal chiamante in cui il metodo scrive un puntatore all'interfaccia IDmaChannel dell'oggetto DMA-channel del driver miniport. Il chiamante specifica un valore di puntatore non NULL valido per questo parametro. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

[out] ServiceGroup

Puntatore di output per il gruppo di servizi. Questo parametro punta a una variabile puntatore allocata dal chiamante in cui il metodo scrive un puntatore all'interfaccia IServiceGroup dell'oggetto gruppo di servizi del flusso. Si tratta del gruppo di servizi che viene registrato per la notifica di interruzione. Il chiamante specifica un valore di puntatore non NULL valido per questo parametro.

Valore restituito

NewStream restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato.

Commenti

Il NewStream metodo imposta lo stato iniziale del flusso su KSSTATE_STOP e la relativa posizione iniziale su zero. Vedere IMiniportWaveCyclicStream::SetState e IMiniportWaveCyclicStream::GetPosition.

Il driver di porta chiama solo i metodi seguenti nell'oggetto DmaChannel :

IDmaChannel::AllocateBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

I parametri Stream, OuterUnknown, DmaChannel e ServiceGroup seguono le convenzioni di conteggio dei riferimenti per gli oggetti COM.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione portcls.h (includere Portcls.h)
IRQL PASSIVE_LEVEL

Vedi anche

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE