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