次の方法で共有


PFN_GET_NEXT_CHUNK_DATA コールバック関数 (netdispumdddi.h)

DXGK_INTERRUPT_TYPE割り込みの種類がDXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETEされたときに Microsoft DirectX グラフィックス カーネル サブシステムに報告された次の Miracast エンコード チャンクに関する情報を提供します。この関数のデータ型はPFN_GET_NEXT_CHUNK_DATA

構文

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

パラメーター

[in] hMiracastDeviceHandle

Miracast デバイスを表すハンドル。 Miracast ユーザー モード ドライバーは、以前、CreateMiracastContext 関数の呼び出しで hMiracastDeviceHandle パラメーターとしてこのハンドルを取得しました。

[in] TimeoutInMilliseconds

Miracast ユーザー モード ドライバーによって提供されるタイムアウト間隔の値 (ミリ秒単位)。

この値が INFINITE の場合、チャンクが使用可能になるまで、オペレーティング システムは GetNextChunkData の呼び出しをブロックします。

この値が 0 でチャンクの準備ができていない場合、オペレーティング システムは GetNextChunkData の呼び出しをブロックしません。

[in] AdditionalWaitEventCount

pAdditionalWaitEvents パラメーターで指定された追加イベントの数。

最大 4 つの待機イベントを指定できます。

[in, optional] pAdditionalWaitEvents

GetNextChunkData が新しいエンコード チャンクの待機中に待機するイベントの配列への省略可能なポインター。

[in, out] pChunkDataBufferSize

pChunkDataBuffer バッファーのサイズ (バイト単位) を含む変数へのポインター。

GetNextChunkData が呼び出されると、このパラメーターには pChunkDataBuffer のサイズが含まれます。

GetNextChunkData が成功コードを返す場合、このパラメーターには pChunkDataBuffer で返される実際のエンコード チャンク データのサイズが含まれます。

[out] pChunkDataBuffer

次のエンコード チャンクに関する情報を格納するためにオペレーティング システムが提供する MIRACAST_CHUNK_DATA 型のバッファーへのポインター。 このパラメーターは、 GetNextChunkData の呼び出しが成功した場合にのみ指定されます。

[out] pOutstandingChunksToProcess

この呼び出しが返された時点でドライバーで使用できる未処理のエンコード チャンクの数を含む変数へのポインター。 このパラメーターは、 GetNextChunkData の呼び出しが成功した場合にのみ指定されます。

チャンクは GPU によって非同期的に完了されるため、このパラメーターは未処理のチャンクの数のみを示します。

戻り値

エンコード チャンクの情報が正常に返された場合、 STATUS_SUCCESS 状態コードが返され、*pChunkDataBufferSize の値は 0 以外になります。

次の追加の状態コードを返すことができます。

注釈

この関数は省略可能です。 ユーザー モードディスプレイ ドライバーは、GPU がMIRACAST_CHUNK_DATAでデータを渡すことによってチャンクのエンコードを完了したときに、ディスプレイ ミニポート ドライバーが GPU からの割り込みに応答する場合にのみ呼び出す必要 があります。その割り込み時の PrivateDriverData メンバー。

ユーザー モードディスプレイドライバーは、MIRACAST_CHUNK_DATA構造とMIRACAST_CHUNK_DATAのサイズを使用できます。チャンクのサイズを計算するための PrivateDriverData メンバー。したがって、返されたバッファー内のチャンクからチャンクに移動する方法。

この関数の呼び出しでは、可能な限り多くの使用可能なパケットが指定されたバッファーに順番に配置されます。 次のコード スニペットは、各パケットのサイズを計算する方法を示しています。

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

スレッド セーフ

この関数を一度に呼び出すスレッドは 1 つだけです。 そうしないと、どの呼び出しがチャンク情報を受信し、どの呼び出しが失敗するかを予測できません。

要件

要件
サポートされている最小のクライアント Windows 8.1
サポートされている最小のサーバー Windows Server 2012 R2
対象プラットフォーム デスクトップ
Header netdispumdddi.h (Netdispumdddi.h を含む)

こちらもご覧ください

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA