Função AcxStreamCreate (acxstreams.h)
AcxStreamCreate cria uma Stream ACX que pode ser usada para controlar o comportamento de streaming.
Sintaxe
NTSTATUS AcxStreamCreate(
WDFDEVICE Device,
ACXCIRCUIT Circuit,
PWDF_OBJECT_ATTRIBUTES Attributes,
PACXSTREAM_INIT *Config,
ACXSTREAM *Stream
);
Parâmetros
Device
Um objeto WDFDEVICE (descrito em Resumo de Objetos de Estrutura) associado ao ACXCIRCUIT especificado e seu fluxo.
Circuit
O ACXCIRCUIT ao qual esse fluxo será associado.
Attributes
Atributos adicionais definidos usando um WDF_OBJECT_ATTRIBUTES que são usados para definir os valores de vários objetos: limpar e destruir retornos de chamada, tipo de contexto e especificar seu objeto pai.
Config
Uma estrutura ACXSTREAM_INIT que define os parâmetros de inicialização do fluxo. Para obter mais informações sobre objetos ACX, consulte ACX – Resumo de objetos ACX.
Stream
Um ponteiro para um local que recebe um identificador para o novo objeto ACXSTREAM.
Um objeto ACXSTREAM representa um fluxo de áudio criado por um circuito. Para obter mais informações, consulte ACX – Resumo de objetos ACX.
Retornar valor
Retorna STATUS_SUCCESS
se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.
Comentários
Depois que o ACXSTREAM tiver sido criado, o driver poderá adicionar um ou mais elementos ACX ao fluxo. Por padrão, os elementos ACX são conectados na mesma ordem do assembly. Um ACXSTREAM está associado a apenas um ACXCIRCUIT. O ACX dá suporte a dois tipos de fluxos: objetos de fluxo ACX básicos usados por circuitos que não são de streaming e objetos de fluxo ACX RealTime (RT) usados por circuitos de streaming.
O ACXSTREAM criado por AcxStreamCreate permitirá que o driver receba sinais de controle e alterações de estado associadas a um fluxo. No entanto, o ACXSTREAM não dará suporte ao streaming de dados de áudio de ou para o sistema operacional. Um driver que dá suporte a dados de áudio de streaming deve usar AcxRtStreamCreate para criar um ACXSTREAM com suporte para streaming. Para um ponto de extremidade que é feito de vários ACXCIRCUITs em vários drivers, o ACXCIRCUIT que hospeda o pino de streaming criaria um ACX RT Stream enquanto os outros ACXCIRCUITs no ponto de extremidade criariam fluxos ACX não RT.
Exemplo
A criação de fluxo de exemplo é mostrada abaixo.
//
// Init streaming callbacks.
//
ACX_STREAM_CALLBACKS streamCallbacks;
ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
streamCallbacks.EvtAcxStreamPrepareHardware = EvtStreamPrepareHardware;
streamCallbacks.EvtAcxStreamReleaseHardware = EvtStreamReleaseHardware;
streamCallbacks.EvtAcxStreamRun = EvtStreamRun;
streamCallbacks.EvtAcxStreamPause = EvtStreamPause;
streamCallbacks.EvtAcxStreamAssignDrmContentId = EvtStreamAssignDrmContentId;
status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
//
// Create the stream.
//
WDF_OBJECT_ATTRIBUTES attributes;
ACXSTREAM stream;
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, STREAM_CONTEXT);
attributes.EvtCleanupCallback = EvtStreamContextCleanup;
attributes.EvtDestroyCallback = EvtStreamDestroy;
status = AcxStreamCreate(Device, Circuit, &attributes, &StreamInit, &stream);
Requisitos do ACX
Versão mínima do ACX: 1.0
Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | acxstreams.h |
IRQL | PASSIVE_LEVEL |