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 interruzione 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 in modalità utente Miracast ha ottenuto in precedenza questo handle come parametro hMiracastDeviceHandle in una chiamata alla funzione CreateMiracastContext .

[in] TimeoutInMilliseconds

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

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

Se questo valore è zero e un blocco non è pronto, il sistema operativo non blocca 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 esito positivo, questo parametro contiene le dimensioni dei dati di blocchi di codifica effettivi restituiti in pChunkDataBuffer.

[out] pChunkDataBuffer

Puntatore a un buffer di tipo MIRACAST_CHUNK_DATA che il sistema operativo fornisce 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 contenente 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 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, il codice di stato STATUS_SUCCESS viene restituito e il valore di *pChunkDataBufferSize non è zero.

Questi codici di stato aggiuntivi possono essere restituiti:

Commenti

Questa funzione è facoltativa. Il driver di visualizzazione in modalità utente deve chiamarlo solo se il driver miniport visualizzato risponde agli interruzioni dalla GPU quando la GPU completa la codifica di un blocco passando i dati nella MIRACAST_CHUNK_DATA. Membro PrivateDriverData al momento dell'interruzione.

Il driver di visualizzazione in modalità utente può usare le dimensioni della struttura MIRACAST_CHUNK_DATA e la MIRACAST_CHUNK_DATA. Membro PrivateDriverData per calcolare le dimensioni di un blocco e quindi come passare da blocchi a blocchi 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 illustra come calcolare le dimensioni di ogni pacchetto:

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

Thread safety

Un solo thread deve chiamare questa funzione alla volta. In caso contrario, è imprevedibile che la chiamata riceverebbe informazioni di blocco e quale chiamata avrebbe esito negativo.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1
Server minimo supportato Windows Server 2012 R2
Piattaforma di destinazione Desktop
Intestazione netdispumdddi.h (include Netdispumdddi.h)

Vedi anche

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA