Condividi tramite


PFN_GET_NEXT_CHUNK_DATA funzione di callback (netdispumdddi.h)

Fornisce informazioni sul successivo blocco di codifica Miracast segnalato al sottosistema kernel della grafica Microsoft DirectX quando il tipo di interrupt DXGK_INTERRUPT_TYPE è DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE. Il tipo di dati di questa funzione è PFN_GET_NEXT_CHUNK_DATA.

Sintassi

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
)
{...}

Parametri

[in] hMiracastDeviceHandle

Handle che rappresenta un dispositivo Miracast. Il driver miracast in modalità utente precedentemente ottenuto questo handle come parametro hMiracastDeviceHandle in una chiamata alla funzione CreateMiracastContext.

[in] TimeoutInMilliseconds

Valore dell'intervallo di timeout, in millisecondi, fornito dal driver miracast in modalità utente.

Se questo valore è INFINITE, il sistema operativo blocca le chiamate a GetNextChunkData finché non diventa disponibile un blocco.

Se questo valore è zero e un blocco non è pronto, il sistema operativo non bloccherà una chiamata a GetNextChunkData.

[in] AdditionalWaitEventCount

Numero di eventi aggiuntivi forniti nel parametro pAdditionalWaitEvents.

È possibile specificare un massimo di 4 eventi di attesa.

[in, optional] pAdditionalWaitEvents

Puntatore facoltativo a una matrice di eventi che GetNextChunkData attenderà durante l'attesa di un nuovo blocco di codifica.

[in, out] pChunkDataBufferSize

Puntatore a una variabile contenente le dimensioni, in byte, del buffer pChunkDataBuffer.

Quando viene chiamato GetNextChunkData, questo parametro contiene le dimensioni di pChunkDataBuffer.

Quando GetNextChunkData restituisce un codice di operazione riuscita, questo parametro contiene le dimensioni dei dati effettivi dei blocchi codificati restituiti in pChunkDataBuffer.

[out] pChunkDataBuffer

Puntatore a un buffer di tipo MIRACAST_CHUNK_DATA fornito dal sistema operativo per archiviare informazioni sul blocco di codifica successivo. Questo parametro viene fornito solo se la chiamata a getNextChunkData ha esito positivo.

[out] pOutstandingChunksToProcess

Puntatore a una variabile che contiene il numero di blocchi di codifica in sospeso disponibili per il driver al momento della restituzione della chiamata. Questo parametro viene fornito solo se la chiamata a getNextChunkData ha esito positivo.

Si noti che quando i blocchi vengono completati in modo asincrono dalla GPU, questo parametro fornisce solo un'indicazione del numero di blocchi in sospeso.

Valore restituito

Se le informazioni su un blocco di codifica sono state restituite correttamente, viene restituito il codice di stato STATUS_SUCCESS e il valore di *pChunkDataBufferSize è diverso da zero.

È possibile restituire questi codici di stato aggiuntivi:

Osservazioni

Questa funzione è facoltativa. Il driver di visualizzazione in modalità utente deve chiamarlo solo se il driver del miniport di visualizzazione risponde agli interrupt dalla GPU quando la GPU completa la codifica di un blocco passando i dati nel MIRACAST_CHUNK_DATA.membro PrivateDriverData in quel momento di interruzione.

Il driver di visualizzazione in modalità utente può usare le dimensioni della struttura MIRACAST_CHUNK_DATA e del MIRACAST_CHUNK_DATA.membro PrivateDriverData per calcolare le dimensioni di un blocco e quindi come passare dal blocco al blocco nel buffer restituito.

In una chiamata a questa funzione, il numero di pacchetti disponibili che possono essere inseriti in sequenza nel buffer fornito. Questo frammento di codice mostra come calcolare le dimensioni di ogni pacchetto:

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

Thread Safety

Solo un thread deve chiamare questa funzione alla volta. In caso contrario, è imprevedibile che la chiamata riceverà informazioni di blocco e quale chiamata avrà esito negativo.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8.1
server minimo supportato Windows Server 2012 R2
piattaforma di destinazione Desktop
intestazione netdispumdddi.h (include Netdispumddi.h)

Vedere anche

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA