D3DDDIENCRYPTED_BLOCK_INFO 構造体 (d3dumddi.h)

D3DDDIENCRYPTED_BLOCK_INFO構造体は、暗号化されるバッファーの部分を表します。

構文

typedef struct _D3DDDIENCRYPTED_BLOCK_INFO {
  [in] UINT NumEncryptedBytesAtBeginning;
  [in] UINT NumBytesInSkipPattern;
  [in] UINT NumBytesInEncryptPattern;
} D3DDDIENCRYPTED_BLOCK_INFO;

メンバー

[in] NumEncryptedBytesAtBeginning

暗号化されたバッファーの先頭にあるバイト数。

[in] NumBytesInSkipPattern

暗号化が再び開始される前に暗号化からスキップされたバッファー内のバイト数。

[in] NumBytesInEncryptPattern

NumBytesInSkipPattern メンバーが指定するスキップ パターンの後に暗号化されるバッファー内のバイト数。 その後、バッファーが終了するまでスキップおよび暗号化パターンが繰り返されます。 skip-encrypt パターンの詳細については、「解説」セクションを参照してください。

注釈

バッファーの暗号化された部分はバイト単位で指定されるため、アプリケーションでは、暗号化されたブロックが GPU の暗号化ブロックの配置と一致していることを確認する必要があります。

ランタイムは、ドライバーの DecryptionBlt 関数を呼び出して保護されたサーフェスにデータを書き込むときに、D3DDDIARG_DECRYPTIONBLT構造体の pEncryptedBlockInfo メンバーが指すメモリ ブロック内に設定されたD3DDDIENCRYPTED_BLOCK_INFO構造体を指定できます。

次の例は、ランタイムがバッファーの暗号化をパーティション分割する方法を示しています。

  1. 次の値は、バッファーの最初の 100 バイトを暗号化し、残りのバッファー データをスキップします。
    • NumEncryptedBytesAtBeginning = 100;
    • NumBytesInSkipPattern = 0;
    • NumBytesInEnycryptPattern = 0;
  2. 次の値は、バッファーの最初の 100 バイトを暗号化し、次の 20 バイトをスキップしてから、次の 2 バイト ブロックを暗号化します。 その後、これらの値が 20 バイトをスキップし、バッファーの最後まで 2 バイトを暗号化するプロセスが繰り返されます。
    • NumEncryptedBytesAtBeginning = 100;
    • NumBytesInSkipPattern = 20;
    • NumBytesInEnycryptPattern = 2;

要件

要件
サポートされている最小のクライアント D3DDDIENCRYPTED_BLOCK_INFOは、Windows 7 オペレーティング システム以降でサポートされています。
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_DECRYPTIONBLT

DecryptionBlt