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