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 的加密块对齐方式匹配。
运行时可以在内存块中指定填充的D3DDDIENCRYPTED_BLOCK_INFO结构,pEncryptedBlockInfoD3DDDIARG_DECRYPTIONBLT 结构的成员在运行时调用驱动程序的 DecryptionBlt 函数将数据写入受保护的图面时指向该结构。
以下示例演示运行时如何对缓冲区的加密进行分区。
- 以下值对缓冲区的前 100 个字节进行加密,并跳过剩余的缓冲区数据:
- NumEncryptedBytesAtBeginning = 100;
- NumBytesInSkipPattern = 0;
- NumBytesInEnycryptPattern = 0;
- 以下值加密缓冲区的前 100 个字节,跳过接下来的 20 个字节,然后加密接下来的 2 个字节块。 然后重复此过程,在这些值跳过 20 个字节并加密 2 个字节,直到缓冲区结束。
- NumEncryptedBytesAtBeginning = 100;
- NumBytesInSkipPattern = 20;
- NumBytesInEnycryptPattern = 2;
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 7作系统开始,支持D3DDDIENCRYPTED_BLOCK_INFO。 |
标头 | d3dumddi.h (包括 D3dumddi.h) |