Método IMiniportWaveRTStreamNotification::AllocateBufferWithNotification (portcls.h)
O AllocateAudioBufferWithNotification
método aloca um buffer cíclico para dados de áudio quando você deseja implementar a notificação de evento controlada por DMA. Se você não quiser uma notificação de evento, deverá usar IMiniportWaveRTStream::AllocateAudioBuffer.
Sintaxe
NTSTATUS AllocateBufferWithNotification(
[in] ULONG NotificationCount,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
Parâmetros
[in] NotificationCount
Especifica o número de notificações desejadas por ciclo de buffer. Os valores válidos são 1 ou 2, em que 1 indica uma única notificação no final do buffer cíclico e 2 indica duas notificações por ciclo de buffer, uma no ponto médio do buffer e outra no final.
[in] RequestedSize
Especifica o tamanho solicitado, em bytes, do buffer de áudio.
[out] AudioBufferMdl
Ponteiro de saída para uma MDL (lista de descritores de memória) que descreve o buffer de áudio. Esse parâmetro aponta para uma variável de ponteiro alocada pelo chamador na qual o método grava um ponteiro no MDL.
[out] ActualSize
Ponteiro de saída para o tamanho real, em bytes, do buffer alocado. Esse parâmetro aponta para uma variável ULONG na qual o método grava o valor de tamanho.
[out] OffsetFromFirstPage
Ponteiro de saída para o deslocamento (em bytes) do buffer, desde o início da primeira página no MDL. Esse parâmetro aponta para uma variável ULONG alocada pelo chamador na qual o método grava o valor de deslocamento.
[out] CacheType
Especifica o tipo de cache que o cliente solicita para o buffer de áudio. Esse parâmetro é um valor de enumeração MEMORY_CACHING_TYPE
Retornar valor
AllocateBufferWithNotification
retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retornará um erro apropriado status código. A tabela a seguir mostra alguns dos possíveis códigos de status de erro.
Código de retorno | Descrição |
---|---|
|
O driver não dá suporte à combinação especificada de atributos de buffer. |
|
Não há memória suficiente disponível para alocar o buffer. |
|
O dispositivo não está pronto. |
Comentários
AllocateBufferWithNotification
método para alocar um buffer cíclico que o driver de porta pode mapear posteriormente para o espaço de endereço virtual do cliente. AllocateBufferWithNotification
opera de maneira semelhante a IMiniportWaveRTStream::AllocateAudioBuffer. Além disso, AllocateBufferWithNotification
identifica ao driver de porta WaveRT que a notificação de evento controlada por DMA é desejada e especifica quantas notificações por ciclo do buffer cíclico são necessárias.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e em sistemas operacionais Windows posteriores. |
Plataforma de Destino | Universal |
Cabeçalho | portcls.h |
IRQL | Nível passivo. |
Confira também
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification