Compartilhar via


PFN_GET_NEXT_CHUNK_DATA função de retorno de chamada (netdispumdddi.h)

Fornece informações sobre a próxima parte de codificação miracast que foi relatada ao subsistema de kernel de elementos gráficos do Microsoft DirectX quando o tipo de interrupção DXGK_INTERRUPT_TYPE é DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE. O tipo de dados dessa função é PFN_GET_NEXT_CHUNK_DATA.

Sintaxe

PFN_GET_NEXT_CHUNK_DATA PfnGetNextChunkData;

NTSTATUS PfnGetNextChunkData(
  [in]           HANDLE hMiracastDeviceHandle,
  [in]           UINT TimeoutInMilliseconds,
  [in]           UINT AdditionalWaitEventCount,
  [in, optional] HANDLE *pAdditionalWaitEvents,
  [in, out]      UINT *pChunkDataBufferSize,
  [out]          MIRACAST_CHUNK_DATA *pChunkDataBuffer,
  [out]          UINT *pOutstandingChunksToProcess
)
{...}

Parâmetros

[in] hMiracastDeviceHandle

Um identificador que representa um dispositivo Miracast. O driver do modo de usuário miracast obteve anteriormente esse identificador como o parâmetro hMiracastDeviceHandle em uma chamada para a função CreateMiracastContext .

[in] TimeoutInMilliseconds

O valor do intervalo de tempo limite, em milissegundos, fornecido pelo driver do modo de usuário miracast.

Se esse valor for INFINITE, o sistema operacional bloqueará as chamadas para GetNextChunkData até que uma parte fique disponível.

Se esse valor for zero e uma parte não estiver pronta, o sistema operacional não bloqueará uma chamada para GetNextChunkData.

[in] AdditionalWaitEventCount

O número de eventos adicionais que são fornecidos no parâmetro pAdditionalWaitEvents .

Um máximo de 4 eventos de espera podem ser fornecidos.

[in, optional] pAdditionalWaitEvents

Um ponteiro opcional para uma matriz de eventos que GetNextChunkData aguardará enquanto aguarda uma nova parte de codificação.

[in, out] pChunkDataBufferSize

Um ponteiro para uma variável que contém o tamanho, em bytes, do buffer pChunkDataBuffer .

Quando GetNextChunkData é chamado, esse parâmetro contém o tamanho de pChunkDataBuffer.

Quando GetNextChunkData retorna um código de êxito, esse parâmetro contém o tamanho dos dados de partes de codificação reais retornados no pChunkDataBuffer.

[out] pChunkDataBuffer

Um ponteiro para um buffer do tipo MIRACAST_CHUNK_DATA que o sistema operacional fornece para armazenar informações sobre a próxima parte de codificação. Esse parâmetro será fornecido somente se a chamada para GetNextChunkData for bem-sucedida.

[out] pOutstandingChunksToProcess

Um ponteiro para uma variável que contém o número de partes de codificação pendentes que estão disponíveis para o driver no momento em que essa chamada retornou. Esse parâmetro será fornecido somente se a chamada para GetNextChunkData for bem-sucedida.

Observe que, como as partes são concluídas pela GPU de forma assíncrona, esse parâmetro fornece apenas uma indicação do número de partes pendentes.

Retornar valor

Se informações sobre uma parte de codificação tiverem sido retornadas com êxito, o STATUS_SUCCESS status código será retornado e o valor de *pChunkDataBufferSize não será zero.

Esses códigos de status adicionais podem ser retornados:

Comentários

Essa função é opcional. O driver de exibição do modo de usuário só deve chamá-lo se o driver de miniporto de exibição responder a interrupções da GPU quando a GPU concluir a codificação de uma parte passando dados no MIRACAST_CHUNK_DATA. Membro PrivateDriverData nesse momento de interrupção.

O driver de exibição no modo de usuário pode usar os tamanhos da estrutura MIRACAST_CHUNK_DATA e do MIRACAST_CHUNK_DATA. Membro PrivateDriverData para calcular o tamanho de uma parte e, portanto, como mover de parte para parte no buffer retornado.

Em uma chamada para essa função, o máximo de pacotes disponíveis que puder caber será colocado sequencialmente no buffer fornecido. Este snippet de código mostra como calcular o tamanho de cada pacote:

ChunkSize == FIELD_OFFSET
    (D3DKMT_MIRACAST_CHUNK_DATA, PrivateDriverData) \
    + Chunk->ChunkData.PrivateDriverDataSize;

Acesso thread-safe

Apenas um thread deve chamar essa função por vez. Caso contrário, é imprevisível qual chamada receberia informações de parte e qual chamada falharia.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1
Servidor mínimo com suporte Windows Server 2012 R2
Plataforma de Destino Área de Trabalho
Cabeçalho netdispumdddi.h (inclua Netdispumdddi.h)

Confira também

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA