Condividi tramite


Metodo IMiniportWaveCyclic::NewStream (portcls.h)

Il metodo NewStream 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 dal chiamante in cui il metodo scrive un puntatore nell'interfaccia IMiniportWaveCyclicStream dell'oggetto flusso. Il chiamante specifica un valore di puntatore NULLvalido non per questo parametro.

[in, optional] OuterUnknown

Puntatore all'interfaccia IUnknown di un oggetto che deve aggregare l'oggetto flusso. Questo parametro è facoltativo. 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 di paging definiti nell'enumerazione POOL_TYPE.

[in] Pin

Numero del segnaposto da aprire. Se il driver miniport WaveCyclic IMiniport::GetDescription metodo restituisce un descrittore di filtro che specifica un totale di n pin factory sul filtro, i valori validi per il parametro Pin sono compresi 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 utilizzare 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 nell'interfaccia IDmaChannel dell'oggetto canale DMA del driver miniport. Il chiamante specifica un valore di puntatore NULLvalido non per questo parametro. Per altre informazioni, vedere la sezione Osservazioni seguente.

[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 nell'interfaccia dell'oggetto gruppo di servizi del flusso IServiceGroup. Si tratta del gruppo di servizi registrato per la notifica di interrupt. Il chiamante specifica un valore di puntatore NULLvalido non per questo parametro.

Valore restituito

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

Osservazioni

Il metodo NewStream 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, DmaChannele ServiceGroup seguono le convenzioni di conteggio dei riferimenti per gli oggetti COM.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Vedere anche

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE