Freigeben über


PFN_GET_NEXT_CHUNK_DATA Rückruffunktion (netdispumdddi.h)

Enthält Informationen zum nächsten Miracast-codierten Block, der an das Microsoft DirectX-Grafikkernsubsystem gemeldet wurde, wenn der DXGK_INTERRUPT_TYPE Interrupttyp DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETEist. Der Datentyp dieser Funktion ist PFN_GET_NEXT_CHUNK_DATA.

Syntax

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

Parameter

[in] hMiracastDeviceHandle

Ein Handle, das ein Miracast-Gerät darstellt. Der Miracast-Benutzermodustreiber hat dieses Handle zuvor als hMiracastDeviceHandle Parameter in einem Aufruf der CreateMiracastContext--Funktion abgerufen.

[in] TimeoutInMilliseconds

Der Timeoutintervallwert in Millisekunden, der vom Miracast-Benutzermodustreiber bereitgestellt wird.

Wenn dieser Wert INFINITEist, blockiert das Betriebssystem Aufrufe an GetNextChunkData, bis ein Block verfügbar wird.

Wenn dieser Wert null ist und ein Block nicht bereit ist, blockiert das Betriebssystem keinen Aufruf von GetNextChunkData.

[in] AdditionalWaitEventCount

Die Anzahl der zusätzlichen Ereignisse, die im pAdditionalWaitEvents Parameter angegeben werden.

Maximal 4 Warteereignisse können bereitgestellt werden.

[in, optional] pAdditionalWaitEvents

Ein optionaler Zeiger auf ein Array von Ereignissen, die GetNextChunkData- warten, während auf einen neuen codierten Block gewartet wird.

[in, out] pChunkDataBufferSize

Ein Zeiger auf eine Variable, die die Größe des pChunkDataBuffer- Puffers in Byte enthält.

Wenn GetNextChunkData- aufgerufen wird, enthält dieser Parameter die Größe pChunkDataBuffer.

Wenn GetNextChunkData einen Erfolgscode zurückgibt, enthält dieser Parameter die Größe der tatsächlich codierten Daten, die in pChunkDataBuffer-zurückgegeben werden.

[out] pChunkDataBuffer

Ein Zeiger auf einen Puffer vom Typ MIRACAST_CHUNK_DATA, den das Betriebssystem zum Speichern von Informationen zum nächsten codierten Block bereitstellt. Dieser Parameter wird nur bereitgestellt, wenn der Aufruf von GetNextChunkData erfolgreich ist.

[out] pOutstandingChunksToProcess

Ein Zeiger auf eine Variable, die die Anzahl der ausstehenden codierten Blöcke enthält, die zum Zeitpunkt der Rückgabe dieses Aufrufs für den Treiber verfügbar sind. Dieser Parameter wird nur bereitgestellt, wenn der Aufruf von GetNextChunkData erfolgreich ist.

Beachten Sie, dass dieser Parameter, da Blöcke asynchron von der GPU abgeschlossen werden, nur einen Hinweis auf die Anzahl der ausstehenden Blöcke gibt.

Rückgabewert

Wenn Informationen zu einem codierten Block erfolgreich zurückgegeben wurden, wird der STATUS_SUCCESS Statuscode zurückgegeben, und der Wert von *pChunkDataBufferSize ist ungleich Null.

Diese zusätzlichen Statuscodes können zurückgegeben werden:

Bemerkungen

Diese Funktion ist optional. Der Anzeigetreiber für den Benutzermodus sollte ihn nur aufrufen, wenn der Anzeige-Miniporttreiber auf Unterbrechungen von der GPU reagiert, wenn die GPU die Codierung eines Datenblocks abgeschlossen hat, indem Daten in der MIRACAST_CHUNK_DATAübergeben werden.PrivateDriverData Mitglied zu diesem Unterbrechungszeitpunkt.

Der Anzeigetreiber für den Benutzermodus kann die Größen der MIRACAST_CHUNK_DATA Struktur und der MIRACAST_CHUNK_DATAverwenden.PrivateDriverData Member, um die Größe eines Datenblocks zu berechnen und damit den Wechsel von Block zu Block im zurückgegebenen Puffer zu verschieben.

Bei einem Aufruf dieser Funktion werden so viele verfügbare Pakete wie möglich sequenziell im bereitgestellten Puffer platziert. Dieser Codeausschnitt zeigt, wie die Größe der einzelnen Pakete berechnet wird:

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

Threadsicherheit

Nur ein Thread sollte diese Funktion gleichzeitig aufrufen. Andernfalls ist es unvorhersehbar, welcher Anruf Blockinformationen erhalten würde und welcher Anruf fehlschlägt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8.1
mindestens unterstützte Server- Windows Server 2012 R2
Zielplattform- Desktop
Header- netdispumdddi.h (include Netdispumdddi.h)

Siehe auch

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA