winapi_ui_automation/shared/
d3dkmdt.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Longhorn Display Driver Model (LDDM) kernel mode data type definitions
7use shared::basetsd::UINT32;
8use shared::minwindef::UINT;
9use shared::ntdef::{BOOLEAN, WCHAR};
10//1932
11pub const DXGK_MAX_METADATA_NAME_LENGTH: usize = 32;
12ENUM!{enum DXGK_ENGINE_TYPE {
13    DXGK_ENGINE_TYPE_OTHER,
14    DXGK_ENGINE_TYPE_3D,
15    DXGK_ENGINE_TYPE_VIDEO_DECODE,
16    DXGK_ENGINE_TYPE_VIDEO_ENCODE,
17    DXGK_ENGINE_TYPE_VIDEO_PROCESSING,
18    DXGK_ENGINE_TYPE_SCENE_ASSEMBLY,
19    DXGK_ENGINE_TYPE_COPY,
20    DXGK_ENGINE_TYPE_OVERLAY,
21    DXGK_ENGINE_TYPE_CRYPTO,
22    DXGK_ENGINE_TYPE_MAX,
23}}
24STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA_FLAGS {
25    Value: UINT32,
26}}
27BITFIELD!{DXGK_NODEMETADATA_FLAGS Value: UINT32 [
28    ContextSchedulingSupported set_ContextSchedulingSupported[0..1],
29    RingBufferFenceRelease set_RingBufferFenceRelease[1..2],
30    SupportTrackedWorkload set_SupportTrackedWorkload[2..3],
31    Reserved set_Reserved[3..16],
32    MaxInFlightHwQueueBuffers set_MaxInFlightHwQueueBuffers[16..32],
33]}
34STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA {
35    EngineType: DXGK_ENGINE_TYPE,
36    FriendlyName: [WCHAR; DXGK_MAX_METADATA_NAME_LENGTH],
37    Flags: DXGK_NODEMETADATA_FLAGS,
38    GpuMmuSupported: BOOLEAN,
39    IoMmuSupported: BOOLEAN,
40}}
41//2100
42STRUCT!{#[repr(packed)] struct D3DKMT_NODEMETADATA {
43    NodeOrdinalAndAdapterIndex: UINT,
44    NodeData: DXGK_NODEMETADATA,
45}}