// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use ctypes::{c_float, c_int, c_long, c_void};
use shared::basetsd::{SIZE_T, UINT64, UINT8};
use shared::dxgi::{DXGI_SWAP_CHAIN_DESC, IDXGIAdapter, IDXGISwapChain};
use shared::dxgiformat::DXGI_FORMAT;
use shared::dxgitype::{DXGI_RATIONAL, DXGI_SAMPLE_DESC};
use shared::guiddef::{GUID, REFGUID, REFIID};
use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, HMODULE, INT, UINT, USHORT};
use shared::windef::{RECT, SIZE};
use um::d3dcommon::{
    D3D_DRIVER_TYPE, D3D_FEATURE_LEVEL, D3D_PRIMITIVE, D3D_PRIMITIVE_TOPOLOGY, D3D_SRV_DIMENSION,
};
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::winnt::{HANDLE, HRESULT, LPCSTR, LPSTR, ULONGLONG};
pub const D3D11_16BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xffff;
pub const D3D11_32BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xffffffff;
pub const D3D11_8BIT_INDEX_STRIP_CUT_VALUE: DWORD = 0xff;
pub const D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT: DWORD = 9;
pub const D3D11_CLIP_OR_CULL_DISTANCE_COUNT: DWORD = 8;
pub const D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT: DWORD = 2;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT: DWORD = 14;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS: DWORD = 4;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT: DWORD = 15;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT: DWORD = 16;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT: DWORD = 15;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT: DWORD = 64;
pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT: DWORD = 1;
pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT: DWORD = 128;
pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT: DWORD = 128;
pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT: DWORD = 16;
pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT: DWORD = 16;
pub const D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT: DWORD = 32;
pub const D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_COMMONSHADER_TEMP_REGISTER_COUNT: DWORD = 4096;
pub const D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST: DWORD = 3;
pub const D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS: DWORD = 3;
pub const D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX: DWORD = 10;
pub const D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN: c_long = -10;
pub const D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE: c_long = -8;
pub const D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE: DWORD = 7;
pub const D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 256;
pub const D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP: DWORD = 64;
pub const D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 240;
pub const D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP: DWORD = 68;
pub const D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 224;
pub const D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP: DWORD = 72;
pub const D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 208;
pub const D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP: DWORD = 76;
pub const D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 192;
pub const D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP: DWORD = 84;
pub const D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 176;
pub const D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP: DWORD = 92;
pub const D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 160;
pub const D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP: DWORD = 100;
pub const D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 144;
pub const D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP: DWORD = 112;
pub const D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 128;
pub const D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP: DWORD = 128;
pub const D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 112;
pub const D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP: DWORD = 144;
pub const D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 96;
pub const D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP: DWORD = 168;
pub const D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 80;
pub const D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP: DWORD = 204;
pub const D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 64;
pub const D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP: DWORD = 256;
pub const D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 48;
pub const D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP: DWORD = 340;
pub const D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 32;
pub const D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP: DWORD = 512;
pub const D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: DWORD = 16;
pub const D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP: DWORD = 768;
pub const D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION: DWORD = 1;
pub const D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT: DWORD = 256;
pub const D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP: DWORD = 768;
pub const D3D11_CS_4_X_THREAD_GROUP_MAX_X: DWORD = 768;
pub const D3D11_CS_4_X_THREAD_GROUP_MAX_Y: DWORD = 768;
pub const D3D11_CS_4_X_UAV_REGISTER_COUNT: DWORD = 1;
pub const D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION: DWORD = 65535;
pub const D3D11_CS_TGSM_REGISTER_COUNT: DWORD = 8192;
pub const D3D11_CS_TGSM_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_CS_THREADGROUPID_REGISTER_COMPONENTS: DWORD = 3;
pub const D3D11_CS_THREADGROUPID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT: DWORD = 1;
pub const D3D11_CS_THREADIDINGROUP_REGISTER_COMPONENTS: DWORD = 3;
pub const D3D11_CS_THREADIDINGROUP_REGISTER_COUNT: DWORD = 1;
pub const D3D11_CS_THREADID_REGISTER_COMPONENTS: DWORD = 3;
pub const D3D11_CS_THREADID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP: DWORD = 1024;
pub const D3D11_CS_THREAD_GROUP_MAX_X: DWORD = 1024;
pub const D3D11_CS_THREAD_GROUP_MAX_Y: DWORD = 1024;
pub const D3D11_CS_THREAD_GROUP_MAX_Z: DWORD = 64;
pub const D3D11_CS_THREAD_GROUP_MIN_X: DWORD = 1;
pub const D3D11_CS_THREAD_GROUP_MIN_Y: DWORD = 1;
pub const D3D11_CS_THREAD_GROUP_MIN_Z: DWORD = 1;
pub const D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL: DWORD = 16384;
pub const D3D11_DEFAULT_BLEND_FACTOR_ALPHA: FLOAT = 1.0;
pub const D3D11_DEFAULT_BLEND_FACTOR_BLUE: FLOAT = 1.0;
pub const D3D11_DEFAULT_BLEND_FACTOR_GREEN: FLOAT = 1.0;
pub const D3D11_DEFAULT_BLEND_FACTOR_RED: FLOAT = 1.0;
pub const D3D11_DEFAULT_BORDER_COLOR_COMPONENT: FLOAT = 0.0;
pub const D3D11_DEFAULT_DEPTH_BIAS: DWORD = 0;
pub const D3D11_DEFAULT_DEPTH_BIAS_CLAMP: FLOAT = 0.0;
pub const D3D11_DEFAULT_MAX_ANISOTROPY: DWORD = 16;
pub const D3D11_DEFAULT_MIP_LOD_BIAS: FLOAT = 0.0;
pub const D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX: DWORD = 0;
pub const D3D11_DEFAULT_SAMPLE_MASK: DWORD = 0xffffffff;
pub const D3D11_DEFAULT_SCISSOR_ENDX: DWORD = 0;
pub const D3D11_DEFAULT_SCISSOR_ENDY: DWORD = 0;
pub const D3D11_DEFAULT_SCISSOR_STARTX: DWORD = 0;
pub const D3D11_DEFAULT_SCISSOR_STARTY: DWORD = 0;
pub const D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS: FLOAT = 0.0;
pub const D3D11_DEFAULT_STENCIL_READ_MASK: DWORD = 0xff;
pub const D3D11_DEFAULT_STENCIL_REFERENCE: DWORD = 0;
pub const D3D11_DEFAULT_STENCIL_WRITE_MASK: DWORD = 0xff;
pub const D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX: DWORD = 0;
pub const D3D11_DEFAULT_VIEWPORT_HEIGHT: DWORD = 0;
pub const D3D11_DEFAULT_VIEWPORT_MAX_DEPTH: FLOAT = 0.0;
pub const D3D11_DEFAULT_VIEWPORT_MIN_DEPTH: FLOAT = 0.0;
pub const D3D11_DEFAULT_VIEWPORT_TOPLEFTX: DWORD = 0;
pub const D3D11_DEFAULT_VIEWPORT_TOPLEFTY: DWORD = 0;
pub const D3D11_DEFAULT_VIEWPORT_WIDTH: DWORD = 0;
pub const D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: DWORD = 3968;
pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS: DWORD = 3;
pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT: DWORD = 1;
pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_DS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_DS_OUTPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP: FLOAT = 0.6;
pub const D3D11_FLOAT32_MAX: FLOAT = 3.402823466E+38;
pub const D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP: FLOAT = 0.6;
pub const D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR: FLOAT = 2.4;
pub const D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR: FLOAT = 1.0;
pub const D3D11_FLOAT_TO_SRGB_OFFSET: FLOAT = 0.055;
pub const D3D11_FLOAT_TO_SRGB_SCALE_1: FLOAT = 12.92;
pub const D3D11_FLOAT_TO_SRGB_SCALE_2: FLOAT = 1.055;
pub const D3D11_FLOAT_TO_SRGB_THRESHOLD: FLOAT = 0.0031308;
pub const D3D11_FTOI_INSTRUCTION_MAX_INPUT: FLOAT = 2147483647.999;
pub const D3D11_FTOI_INSTRUCTION_MIN_INPUT: FLOAT = -2147483648.999;
pub const D3D11_FTOU_INSTRUCTION_MAX_INPUT: FLOAT = 4294967295.999;
pub const D3D11_FTOU_INSTRUCTION_MIN_INPUT: FLOAT = 0.0;
pub const D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST: DWORD = 2;
pub const D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS: DWORD = 1;
pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT: DWORD = 1;
pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_GS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_GS_INPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_GS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_GS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_GS_INPUT_REGISTER_VERTICES: DWORD = 32;
pub const D3D11_GS_MAX_INSTANCE_COUNT: DWORD = 32;
pub const D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES: DWORD = 1024;
pub const D3D11_GS_OUTPUT_ELEMENTS: DWORD = 32;
pub const D3D11_GS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_GS_OUTPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND: DWORD = 0xffffffff;
pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND: DWORD = 0xffffffff;
pub const D3D11_HS_MAXTESSFACTOR_LOWER_BOUND: FLOAT = 1.0;
pub const D3D11_HS_MAXTESSFACTOR_UPPER_BOUND: FLOAT = 64.0;
pub const D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: DWORD = 3968;
pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT: DWORD = 1;
pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS: DWORD = 128;
pub const D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES: DWORD = 0;
pub const D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY: DWORD = 0;
pub const D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES: DWORD = 0;
pub const D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT: DWORD = 1;
pub const D3D11_IA_INSTANCE_ID_BIT_COUNT: DWORD = 32;
pub const D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT: DWORD = 32;
pub const D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT: DWORD = 32;
pub const D3D11_IA_PRIMITIVE_ID_BIT_COUNT: DWORD = 32;
pub const D3D11_IA_VERTEX_ID_BIT_COUNT: DWORD = 32;
pub const D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT: DWORD = 32;
pub const D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS: DWORD = 128;
pub const D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT: DWORD = 32;
pub const D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT: DWORD = 0xffffffff;
pub const D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER: DWORD = 0xffffffff;
pub const D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL: DWORD = 0xffffffff;
pub const D3D11_KEEP_UNORDERED_ACCESS_VIEWS: DWORD = 0xffffffff;
pub const D3D11_LINEAR_GAMMA: FLOAT = 1.0;
pub const D3D11_MAJOR_VERSION: DWORD = 11;
pub const D3D11_MAX_BORDER_COLOR_COMPONENT: FLOAT = 1.0;
pub const D3D11_MAX_DEPTH: FLOAT = 1.0;
pub const D3D11_MAX_MAXANISOTROPY: DWORD = 16;
pub const D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT: DWORD = 32;
pub const D3D11_MAX_POSITION_VALUE: FLOAT = 3.402823466E+34;
pub const D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP: DWORD = 17;
pub const D3D11_MINOR_VERSION: DWORD = 0;
pub const D3D11_MIN_BORDER_COLOR_COMPONENT: FLOAT = 0.0;
pub const D3D11_MIN_DEPTH: FLOAT = 0.0;
pub const D3D11_MIN_MAXANISOTROPY: DWORD = 0;
pub const D3D11_MIP_LOD_BIAS_MAX: FLOAT = 15.99;
pub const D3D11_MIP_LOD_BIAS_MIN: FLOAT = -16.0;
pub const D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT: DWORD = 8;
pub const D3D11_MIP_LOD_RANGE_BIT_COUNT: DWORD = 8;
pub const D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH: FLOAT = 1.4;
pub const D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT: DWORD = 0;
pub const D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 15;
pub const D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 16;
pub const D3D11_PS_CS_UAV_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_PS_CS_UAV_REGISTER_COUNT: DWORD = 8;
pub const D3D11_PS_CS_UAV_REGISTER_READS_PER_INST: DWORD = 1;
pub const D3D11_PS_CS_UAV_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_PS_FRONTFACING_DEFAULT_VALUE: DWORD = 0xffffffff;
pub const D3D11_PS_FRONTFACING_FALSE_VALUE: DWORD = 0;
pub const D3D11_PS_FRONTFACING_TRUE_VALUE: DWORD = 0xffffffff;
pub const D3D11_PS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_PS_INPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_PS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_PS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT: FLOAT = 0.0;
pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT: DWORD = 1;
pub const D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS: DWORD = 1;
pub const D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_PS_OUTPUT_MASK_REGISTER_COUNT: DWORD = 1;
pub const D3D11_PS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_PS_OUTPUT_REGISTER_COUNT: DWORD = 8;
pub const D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT: FLOAT = 0.5;
pub const D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT: DWORD = 16;
pub const D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
pub const D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP: DWORD = 27;
pub const D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT: DWORD = 4096;
pub const D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
pub const D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: DWORD = 32;
pub const D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP: DWORD = 32;
pub const D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION: DWORD = 16384;
pub const D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT: DWORD = 1024;
pub const D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT: DWORD = 4096;
pub const D3D11_REQ_MAXANISOTROPY: DWORD = 16;
pub const D3D11_REQ_MIP_LEVELS: DWORD = 15;
pub const D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES: DWORD = 2048;
pub const D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
pub const D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH: DWORD = 16384;
pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM: DWORD = 128;
pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM: FLOAT = 0.25;
pub const D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM: DWORD = 2048;
pub const D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP: DWORD = 20;
pub const D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE: DWORD = 4096;
pub const D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION: DWORD = 2048;
pub const D3D11_REQ_TEXTURE1D_U_DIMENSION: DWORD = 16384;
pub const D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION: DWORD = 2048;
pub const D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION: DWORD = 16384;
pub const D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION: DWORD = 2048;
pub const D3D11_REQ_TEXTURECUBE_DIMENSION: DWORD = 16384;
pub const D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL: DWORD = 0;
pub const D3D11_SHADER_MAJOR_VERSION: DWORD = 5;
pub const D3D11_SHADER_MAX_INSTANCES: DWORD = 65535;
pub const D3D11_SHADER_MAX_INTERFACES: DWORD = 253;
pub const D3D11_SHADER_MAX_INTERFACE_CALL_SITES: DWORD = 4096;
pub const D3D11_SHADER_MAX_TYPES: DWORD = 65535;
pub const D3D11_SHADER_MINOR_VERSION: DWORD = 0;
pub const D3D11_SHIFT_INSTRUCTION_PAD_VALUE: DWORD = 0;
pub const D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT: DWORD = 5;
pub const D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT: DWORD = 8;
pub const D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES: DWORD = 2048;
pub const D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES: DWORD = 512;
pub const D3D11_SO_BUFFER_SLOT_COUNT: DWORD = 4;
pub const D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP: DWORD = 0xffffffff;
pub const D3D11_SO_NO_RASTERIZED_STREAM: DWORD = 0xffffffff;
pub const D3D11_SO_OUTPUT_COMPONENT_COUNT: DWORD = 128;
pub const D3D11_SO_STREAM_COUNT: DWORD = 4;
pub const D3D11_SPEC_DATE_DAY: DWORD = 16;
pub const D3D11_SPEC_DATE_MONTH: DWORD = 0o5;
pub const D3D11_SPEC_DATE_YEAR: DWORD = 2011;
pub const D3D11_SPEC_VERSION: FLOAT = 1.07;
pub const D3D11_SRGB_GAMMA: FLOAT = 2.2;
pub const D3D11_SRGB_TO_FLOAT_DENOMINATOR_1: FLOAT = 12.92;
pub const D3D11_SRGB_TO_FLOAT_DENOMINATOR_2: FLOAT = 1.055;
pub const D3D11_SRGB_TO_FLOAT_EXPONENT: FLOAT = 2.4;
pub const D3D11_SRGB_TO_FLOAT_OFFSET: FLOAT = 0.055;
pub const D3D11_SRGB_TO_FLOAT_THRESHOLD: FLOAT = 0.04045;
pub const D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP: FLOAT = 0.5;
pub const D3D11_STANDARD_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED: DWORD = 64;
pub const D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE: DWORD = 4;
pub const D3D11_STANDARD_PIXEL_COMPONENT_COUNT: DWORD = 128;
pub const D3D11_STANDARD_PIXEL_ELEMENT_COUNT: DWORD = 32;
pub const D3D11_STANDARD_VECTOR_SIZE: DWORD = 4;
pub const D3D11_STANDARD_VERTEX_ELEMENT_COUNT: DWORD = 32;
pub const D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT: DWORD = 64;
pub const D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT: DWORD = 8;
pub const D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT: DWORD = 8;
pub const D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR: DWORD = 64;
pub const D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR: DWORD = 64;
pub const D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR: DWORD = 63;
pub const D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR: DWORD = 64;
pub const D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR: DWORD = 2;
pub const D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR: DWORD = 1;
pub const D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR: DWORD = 1;
pub const D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT: DWORD = 16;
pub const D3D11_UNBOUND_MEMORY_ACCESS_RESULT: DWORD = 0;
pub const D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX: DWORD = 15;
pub const D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE: DWORD = 16;
pub const D3D11_VIEWPORT_BOUNDS_MAX: DWORD = 32767;
pub const D3D11_VIEWPORT_BOUNDS_MIN: c_long = -32768;
pub const D3D11_VS_INPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_VS_INPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_VS_INPUT_REGISTER_READS_PER_INST: DWORD = 2;
pub const D3D11_VS_INPUT_REGISTER_READ_PORTS: DWORD = 1;
pub const D3D11_VS_OUTPUT_REGISTER_COMPONENTS: DWORD = 4;
pub const D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: DWORD = 32;
pub const D3D11_VS_OUTPUT_REGISTER_COUNT: DWORD = 32;
pub const D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT: DWORD = 10;
pub const D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: DWORD = 25;
pub const D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP: DWORD = 25;
pub const D3D11_1_UAV_SLOT_COUNT: DWORD = 64;
pub const D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES: DWORD = 65536;
ENUM!{enum D3D11_INPUT_CLASSIFICATION {
    D3D11_INPUT_PER_VERTEX_DATA = 0,
    D3D11_INPUT_PER_INSTANCE_DATA = 1,
}}
pub const D3D11_APPEND_ALIGNED_ELEMENT: DWORD = 0xffffffff;
STRUCT!{struct D3D11_INPUT_ELEMENT_DESC {
    SemanticName: LPCSTR,
    SemanticIndex: UINT,
    Format: DXGI_FORMAT,
    InputSlot: UINT,
    AlignedByteOffset: UINT,
    InputSlotClass: D3D11_INPUT_CLASSIFICATION,
    InstanceDataStepRate: UINT,
}}
ENUM!{enum D3D11_FILL_MODE {
    D3D11_FILL_WIREFRAME = 2,
    D3D11_FILL_SOLID = 3,
}}
pub type D3D11_PRIMITIVE_TOPOLOGY = D3D_PRIMITIVE_TOPOLOGY;
pub type D3D11_PRIMITIVE = D3D_PRIMITIVE;
ENUM!{enum D3D11_CULL_MODE {
    D3D11_CULL_NONE = 1,
    D3D11_CULL_FRONT = 2,
    D3D11_CULL_BACK = 3,
}}
STRUCT!{struct D3D11_SO_DECLARATION_ENTRY {
    Stream: UINT,
    SemanticName: LPCSTR,
    SemanticIndex: UINT,
    StartComponent: BYTE,
    ComponentCount: BYTE,
    OutputSlot: BYTE,
}}
STRUCT!{struct D3D11_VIEWPORT {
    TopLeftX: FLOAT,
    TopLeftY: FLOAT,
    Width: FLOAT,
    Height: FLOAT,
    MinDepth: FLOAT,
    MaxDepth: FLOAT,
}}
STRUCT!{struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS {
    VertexCountPerInstance: UINT,
    InstanceCount: UINT,
    StartVertexLocation: UINT,
    StartInstanceLocation: UINT,
}}
STRUCT!{struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS {
    IndexCountPerInstance: UINT,
    InstanceCount: UINT,
    StartIndexLocation: UINT,
    BaseVertexLocation: INT,
    StartInstanceLocation: UINT,
}}
ENUM!{enum D3D11_RESOURCE_DIMENSION {
    D3D11_RESOURCE_DIMENSION_UNKNOWN = 0,
    D3D11_RESOURCE_DIMENSION_BUFFER = 1,
    D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2,
    D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3,
    D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4,
}}
pub type D3D11_SRV_DIMENSION = D3D_SRV_DIMENSION;
ENUM!{enum D3D11_DSV_DIMENSION {
    D3D11_DSV_DIMENSION_UNKNOWN = 0,
    D3D11_DSV_DIMENSION_TEXTURE1D = 1,
    D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2,
    D3D11_DSV_DIMENSION_TEXTURE2D = 3,
    D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4,
    D3D11_DSV_DIMENSION_TEXTURE2DMS = 5,
    D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6,
}}
ENUM!{enum D3D11_RTV_DIMENSION {
    D3D11_RTV_DIMENSION_UNKNOWN = 0,
    D3D11_RTV_DIMENSION_BUFFER = 1,
    D3D11_RTV_DIMENSION_TEXTURE1D = 2,
    D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3,
    D3D11_RTV_DIMENSION_TEXTURE2D = 4,
    D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5,
    D3D11_RTV_DIMENSION_TEXTURE2DMS = 6,
    D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
    D3D11_RTV_DIMENSION_TEXTURE3D = 8,
}}
ENUM!{enum D3D11_UAV_DIMENSION {
    D3D11_UAV_DIMENSION_UNKNOWN = 0,
    D3D11_UAV_DIMENSION_BUFFER = 1,
    D3D11_UAV_DIMENSION_TEXTURE1D = 2,
    D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3,
    D3D11_UAV_DIMENSION_TEXTURE2D = 4,
    D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5,
    D3D11_UAV_DIMENSION_TEXTURE3D = 8,
}}
ENUM!{enum D3D11_USAGE {
    D3D11_USAGE_DEFAULT = 0,
    D3D11_USAGE_IMMUTABLE = 1,
    D3D11_USAGE_DYNAMIC = 2,
    D3D11_USAGE_STAGING = 3,
}}
ENUM!{enum D3D11_BIND_FLAG {
    D3D11_BIND_VERTEX_BUFFER = 0x1,
    D3D11_BIND_INDEX_BUFFER = 0x2,
    D3D11_BIND_CONSTANT_BUFFER = 0x4,
    D3D11_BIND_SHADER_RESOURCE = 0x8,
    D3D11_BIND_STREAM_OUTPUT = 0x10,
    D3D11_BIND_RENDER_TARGET = 0x20,
    D3D11_BIND_DEPTH_STENCIL = 0x40,
    D3D11_BIND_UNORDERED_ACCESS = 0x80,
    D3D11_BIND_DECODER = 0x200,
    D3D11_BIND_VIDEO_ENCODER = 0x400,
}}
ENUM!{enum D3D11_CPU_ACCESS_FLAG {
    D3D11_CPU_ACCESS_WRITE = 0x10000,
    D3D11_CPU_ACCESS_READ = 0x20000,
}}
ENUM!{enum D3D11_RESOURCE_MISC_FLAG {
    D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1,
    D3D11_RESOURCE_MISC_SHARED = 0x2,
    D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4,
    D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10,
    D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20,
    D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40,
    D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80,
    D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100,
    D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200,
    D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800,
    D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000,
    D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000,
    D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
    D3D11_RESOURCE_MISC_GUARDED = 0x8000,
    D3D11_RESOURCE_MISC_TILE_POOL = 0x20000,
    D3D11_RESOURCE_MISC_TILED = 0x40000,
    D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000,
}}
ENUM!{enum D3D11_MAP {
    D3D11_MAP_READ = 1,
    D3D11_MAP_WRITE = 2,
    D3D11_MAP_READ_WRITE = 3,
    D3D11_MAP_WRITE_DISCARD = 4,
    D3D11_MAP_WRITE_NO_OVERWRITE = 5,
}}
ENUM!{enum D3D11_MAP_FLAG {
    D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000,
}}
ENUM!{enum D3D11_RAISE_FLAG {
    D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1,
}}
ENUM!{enum D3D11_CLEAR_FLAG {
    D3D11_CLEAR_DEPTH = 0x1,
    D3D11_CLEAR_STENCIL = 0x2,
}}
pub type D3D11_RECT = RECT;
STRUCT!{struct D3D11_BOX {
    left: UINT,
    top: UINT,
    front: UINT,
    right: UINT,
    bottom: UINT,
    back: UINT,
}}
RIDL!{#[uuid(0x1841e5c8, 0x16b0, 0x489b, 0xbc, 0xc8, 0x44, 0xcf, 0xb0, 0xd5, 0xde, 0xae)]
interface ID3D11DeviceChild(ID3D11DeviceChildVtbl): IUnknown(IUnknownVtbl) {
    fn GetDevice(
        ppDevice: *mut *mut ID3D11Device,
    ) -> (),
    fn GetPrivateData(
        guid: REFGUID,
        pDataSize: *mut UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn SetPrivateData(
        guid: REFGUID,
        DataSize: UINT,
        pData: *const c_void,
    ) -> HRESULT,
    fn SetPrivateDataInterface(
        guid: REFGUID,
        pData: *const IUnknown,
    ) -> HRESULT,
}}
ENUM!{enum D3D11_COMPARISON_FUNC {
    D3D11_COMPARISON_NEVER = 1,
    D3D11_COMPARISON_LESS = 2,
    D3D11_COMPARISON_EQUAL = 3,
    D3D11_COMPARISON_LESS_EQUAL = 4,
    D3D11_COMPARISON_GREATER = 5,
    D3D11_COMPARISON_NOT_EQUAL = 6,
    D3D11_COMPARISON_GREATER_EQUAL = 7,
    D3D11_COMPARISON_ALWAYS = 8,
}}
ENUM!{enum D3D11_DEPTH_WRITE_MASK {
    D3D11_DEPTH_WRITE_MASK_ZERO = 0,
    D3D11_DEPTH_WRITE_MASK_ALL = 1,
}}
ENUM!{enum D3D11_STENCIL_OP {
    D3D11_STENCIL_OP_KEEP = 1,
    D3D11_STENCIL_OP_ZERO = 2,
    D3D11_STENCIL_OP_REPLACE = 3,
    D3D11_STENCIL_OP_INCR_SAT = 4,
    D3D11_STENCIL_OP_DECR_SAT = 5,
    D3D11_STENCIL_OP_INVERT = 6,
    D3D11_STENCIL_OP_INCR = 7,
    D3D11_STENCIL_OP_DECR = 8,
}}
STRUCT!{struct D3D11_DEPTH_STENCILOP_DESC {
    StencilFailOp: D3D11_STENCIL_OP,
    StencilDepthFailOp: D3D11_STENCIL_OP,
    StencilPassOp: D3D11_STENCIL_OP,
    StencilFunc: D3D11_COMPARISON_FUNC,
}}
STRUCT!{struct D3D11_DEPTH_STENCIL_DESC {
    DepthEnable: BOOL,
    DepthWriteMask: D3D11_DEPTH_WRITE_MASK,
    DepthFunc: D3D11_COMPARISON_FUNC,
    StencilEnable: BOOL,
    StencilReadMask: UINT8,
    StencilWriteMask: UINT8,
    FrontFace: D3D11_DEPTH_STENCILOP_DESC,
    BackFace: D3D11_DEPTH_STENCILOP_DESC,
}}
RIDL!{#[uuid(0x03823efb, 0x8d8f, 0x4e1c, 0x9a, 0xa2, 0xf6, 0x4b, 0xb2, 0xcb, 0xfd, 0xf1)]
interface ID3D11DepthStencilState(ID3D11DepthStencilStateVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_DEPTH_STENCIL_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_BLEND {
    D3D11_BLEND_ZERO = 1,
    D3D11_BLEND_ONE = 2,
    D3D11_BLEND_SRC_COLOR = 3,
    D3D11_BLEND_INV_SRC_COLOR = 4,
    D3D11_BLEND_SRC_ALPHA = 5,
    D3D11_BLEND_INV_SRC_ALPHA = 6,
    D3D11_BLEND_DEST_ALPHA = 7,
    D3D11_BLEND_INV_DEST_ALPHA = 8,
    D3D11_BLEND_DEST_COLOR = 9,
    D3D11_BLEND_INV_DEST_COLOR = 10,
    D3D11_BLEND_SRC_ALPHA_SAT = 11,
    D3D11_BLEND_BLEND_FACTOR = 14,
    D3D11_BLEND_INV_BLEND_FACTOR = 15,
    D3D11_BLEND_SRC1_COLOR = 16,
    D3D11_BLEND_INV_SRC1_COLOR = 17,
    D3D11_BLEND_SRC1_ALPHA = 18,
    D3D11_BLEND_INV_SRC1_ALPHA = 19,
}}
ENUM!{enum D3D11_BLEND_OP {
    D3D11_BLEND_OP_ADD = 1,
    D3D11_BLEND_OP_SUBTRACT = 2,
    D3D11_BLEND_OP_REV_SUBTRACT = 3,
    D3D11_BLEND_OP_MIN = 4,
    D3D11_BLEND_OP_MAX = 5,
}}
ENUM!{enum D3D11_COLOR_WRITE_ENABLE {
    D3D11_COLOR_WRITE_ENABLE_RED = 1,
    D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
    D3D11_COLOR_WRITE_ENABLE_BLUE = 4,
    D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
    D3D11_COLOR_WRITE_ENABLE_ALL = D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN
        | D3D11_COLOR_WRITE_ENABLE_BLUE | D3D11_COLOR_WRITE_ENABLE_ALPHA,
}}
STRUCT!{struct D3D11_RENDER_TARGET_BLEND_DESC {
    BlendEnable: BOOL,
    SrcBlend: D3D11_BLEND,
    DestBlend: D3D11_BLEND,
    BlendOp: D3D11_BLEND_OP,
    SrcBlendAlpha: D3D11_BLEND,
    DestBlendAlpha: D3D11_BLEND,
    BlendOpAlpha: D3D11_BLEND_OP,
    RenderTargetWriteMask: UINT8,
}}
STRUCT!{struct D3D11_BLEND_DESC {
    AlphaToCoverageEnable: BOOL,
    IndependentBlendEnable: BOOL,
    RenderTarget: [D3D11_RENDER_TARGET_BLEND_DESC; 8],
}}
RIDL!{#[uuid(0x75b68faa, 0x347d, 0x4159, 0x8f, 0x45, 0xa0, 0x64, 0x0f, 0x01, 0xcd, 0x9a)]
interface ID3D11BlendState(ID3D11BlendStateVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_BLEND_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_RASTERIZER_DESC {
    FillMode: D3D11_FILL_MODE,
    CullMode: D3D11_CULL_MODE,
    FrontCounterClockwise: BOOL,
    DepthBias: INT,
    DepthBiasClamp: FLOAT,
    SlopeScaledDepthBias: FLOAT,
    DepthClipEnable: BOOL,
    ScissorEnable: BOOL,
    MultisampleEnable: BOOL,
    AntialiasedLineEnable: BOOL,
}}
RIDL!{#[uuid(0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5, 0x06, 0xfc, 0x04, 0x20, 0x0b, 0x6e, 0xe7)]
interface ID3D11RasterizerState(ID3D11RasterizerStateVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_RASTERIZER_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_SUBRESOURCE_DATA {
    pSysMem: *const c_void,
    SysMemPitch: UINT,
    SysMemSlicePitch: UINT,
}}
STRUCT!{struct D3D11_MAPPED_SUBRESOURCE {
    pData: *mut c_void,
    RowPitch: UINT,
    DepthPitch: UINT,
}}
RIDL!{#[uuid(0xdc8e63f3, 0xd12b, 0x4952, 0xb4, 0x7b, 0x5e, 0x45, 0x02, 0x6a, 0x86, 0x2d)]
interface ID3D11Resource(ID3D11ResourceVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetType(
        pResourceDimension: *mut D3D11_RESOURCE_DIMENSION,
    ) -> (),
    fn SetEvictionPriority(
        EvictionPriority: UINT,
    ) -> (),
    fn GetEvictionPriority() -> UINT,
}}
STRUCT!{struct D3D11_BUFFER_DESC {
    ByteWidth: UINT,
    Usage: D3D11_USAGE,
    BindFlags: UINT,
    CPUAccessFlags: UINT,
    MiscFlags: UINT,
    StructureByteStride: UINT,
}}
RIDL!{#[uuid(0x48570b85, 0xd1ee, 0x4fcd, 0xa2, 0x50, 0xeb, 0x35, 0x07, 0x22, 0xb0, 0x37)]
interface ID3D11Buffer(ID3D11BufferVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_BUFFER_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_TEXTURE1D_DESC {
    Width: UINT,
    MipLevels: UINT,
    ArraySize: UINT,
    Format: DXGI_FORMAT,
    Usage: D3D11_USAGE,
    BindFlags: UINT,
    CPUAccessFlags: UINT,
    MiscFlags: UINT,
}}
RIDL!{#[uuid(0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4, 0xc8, 0x43, 0x9a, 0xf2, 0xef, 0x56, 0x4c)]
interface ID3D11Texture1D(ID3D11Texture1DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_TEXTURE1D_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_TEXTURE2D_DESC {
    Width: UINT,
    Height: UINT,
    MipLevels: UINT,
    ArraySize: UINT,
    Format: DXGI_FORMAT,
    SampleDesc: DXGI_SAMPLE_DESC,
    Usage: D3D11_USAGE,
    BindFlags: UINT,
    CPUAccessFlags: UINT,
    MiscFlags: UINT,
}}
RIDL!{#[uuid(0x6f15aaf2, 0xd208, 0x4e89, 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c)]
interface ID3D11Texture2D(ID3D11Texture2DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_TEXTURE2D_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_TEXTURE3D_DESC {
    Width: UINT,
    Height: UINT,
    Depth: UINT,
    MipLevels: UINT,
    Format: DXGI_FORMAT,
    Usage: D3D11_USAGE,
    BindFlags: UINT,
    CPUAccessFlags: UINT,
    MiscFlags: UINT,
}}
RIDL!{#[uuid(0x037e866e, 0xf56d, 0x4357, 0xa8, 0xaf, 0x9d, 0xab, 0xbe, 0x6e, 0x25, 0x0e)]
interface ID3D11Texture3D(ID3D11Texture3DVtbl): ID3D11Resource(ID3D11ResourceVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_TEXTURE3D_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_TEXTURECUBE_FACE {
    D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0,
    D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1,
    D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2,
    D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3,
    D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4,
    D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5,
}}
RIDL!{#[uuid(0x839d1216, 0xbb2e, 0x412b, 0xb7, 0xf4, 0xa9, 0xdb, 0xeb, 0xe0, 0x8e, 0xd1)]
interface ID3D11View(ID3D11ViewVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetResource(
        ppResource: *mut *mut ID3D11Resource,
    ) -> (),
}}
UNION!{union D3D11_BUFFER_SRV_u1 {
    [u32; 1],
    FirstElement FirstElement_mut: UINT,
    ElementOffset ElementOffset_mut: UINT,
}}
UNION!{union D3D11_BUFFER_SRV_u2 {
    [u32; 1],
    NumElements NumElements_mut: UINT,
    ElementWidth ElementWidth_mut: UINT,
}}
STRUCT!{struct D3D11_BUFFER_SRV {
    u1: D3D11_BUFFER_SRV_u1,
    u2: D3D11_BUFFER_SRV_u2,
}}
ENUM!{enum D3D11_BUFFEREX_SRV_FLAG {
    D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1,
}}
STRUCT!{struct D3D11_BUFFEREX_SRV {
    FirstElement: UINT,
    NumElements: UINT,
    Flags: UINT,
}}
STRUCT!{struct D3D11_TEX1D_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
}}
STRUCT!{struct D3D11_TEX1D_ARRAY_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2D_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
}}
STRUCT!{struct D3D11_TEX2D_ARRAY_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX3D_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
}}
STRUCT!{struct D3D11_TEXCUBE_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
}}
STRUCT!{struct D3D11_TEXCUBE_ARRAY_SRV {
    MostDetailedMip: UINT,
    MipLevels: UINT,
    First2DArrayFace: UINT,
    NumCubes: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_SRV {
    UnusedField_NothingToDefine: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_ARRAY_SRV {
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
UNION!{union D3D11_SHADER_RESOURCE_VIEW_DESC_u {
    [u32; 4],
    Buffer Buffer_mut: D3D11_BUFFER_SRV,
    Texture1D Texture1D_mut: D3D11_TEX1D_SRV,
    Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_SRV,
    Texture2D Texture2D_mut: D3D11_TEX2D_SRV,
    Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_SRV,
    Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_SRV,
    Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_SRV,
    Texture3D Texture3D_mut: D3D11_TEX3D_SRV,
    TextureCube TextureCube_mut: D3D11_TEXCUBE_SRV,
    TextureCubeArray TextureCubeArray_mut: D3D11_TEXCUBE_ARRAY_SRV,
    BufferEx BufferEx_mut: D3D11_BUFFEREX_SRV,
}}
STRUCT!{struct D3D11_SHADER_RESOURCE_VIEW_DESC {
    Format: DXGI_FORMAT,
    ViewDimension: D3D11_SRV_DIMENSION,
    u: D3D11_SHADER_RESOURCE_VIEW_DESC_u,
}}
RIDL!{#[uuid(0xb0e06fe0, 0x8192, 0x4e1a, 0xb1, 0xca, 0x36, 0xd7, 0x41, 0x47, 0x10, 0xb2)]
interface ID3D11ShaderResourceView(ID3D11ShaderResourceViewVtbl): ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_SHADER_RESOURCE_VIEW_DESC,
    ) -> (),
}}
UNION!{union D3D11_BUFFER_RTV_u1 {
    [u32; 1],
    FirstElement FirstElement_mut: UINT,
    ElementOffset ElementOffset_mut: UINT,
}}
UNION!{union D3D11_BUFFER_RTV_u2 {
    [u32; 1],
    NumElements NumElements_mut: UINT,
    ElementWidth ElementWidth_mut: UINT,
}}
STRUCT!{struct D3D11_BUFFER_RTV {
    u1: D3D11_BUFFER_RTV_u1,
    u2: D3D11_BUFFER_RTV_u2,
}}
STRUCT!{struct D3D11_TEX1D_RTV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX1D_ARRAY_RTV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2D_RTV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_RTV {
    UnusedField_NothingToDefine: UINT,
}}
STRUCT!{struct D3D11_TEX2D_ARRAY_RTV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_ARRAY_RTV {
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX3D_RTV {
    MipSlice: UINT,
    FirstWSlice: UINT,
    WSize: UINT,
}}
UNION!{union D3D11_RENDER_TARGET_VIEW_DESC_u {
    [u32; 3],
    Buffer Buffer_mut: D3D11_BUFFER_RTV,
    Texture1D Texture1D_mut: D3D11_TEX1D_RTV,
    Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_RTV,
    Texture2D Texture2D_mut: D3D11_TEX2D_RTV,
    Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_RTV,
    Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_RTV,
    Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_RTV,
    Texture3D Texture3D_mut: D3D11_TEX3D_RTV,
}}
STRUCT!{struct D3D11_RENDER_TARGET_VIEW_DESC {
    Format: DXGI_FORMAT,
    ViewDimension: D3D11_RTV_DIMENSION,
    u: D3D11_RENDER_TARGET_VIEW_DESC_u,
}}
RIDL!{#[uuid(0xdfdba067, 0x0b8d, 0x4865, 0x87, 0x5b, 0xd7, 0xb4, 0x51, 0x6c, 0xc1, 0x64)]
interface ID3D11RenderTargetView(ID3D11RenderTargetViewVtbl): ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_RENDER_TARGET_VIEW_DESC,
    ) -> (),
}}
STRUCT!{struct D3D11_TEX1D_DSV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX1D_ARRAY_DSV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2D_DSV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX2D_ARRAY_DSV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_DSV {
    UnusedField_NothingToDefine: UINT,
}}
STRUCT!{struct D3D11_TEX2DMS_ARRAY_DSV {
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
ENUM!{enum D3D11_DSV_FLAG {
    D3D11_DSV_READ_ONLY_DEPTH = 0x1,
    D3D11_DSV_READ_ONLY_STENCIL = 0x2,
}}
UNION!{union D3D11_DEPTH_STENCIL_VIEW_DESC_u {
    [u32; 3],
    Texture1D Texture1D_mut: D3D11_TEX1D_DSV,
    Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_DSV,
    Texture2D Texture2D_mut: D3D11_TEX2D_DSV,
    Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_DSV,
    Texture2DMS Texture2DMS_mut: D3D11_TEX2DMS_DSV,
    Texture2DMSArray Texture2DMSArray_mut: D3D11_TEX2DMS_ARRAY_DSV,
}}
STRUCT!{struct D3D11_DEPTH_STENCIL_VIEW_DESC {
    Format: DXGI_FORMAT,
    ViewDimension: D3D11_DSV_DIMENSION,
    Flags: UINT,
    u: D3D11_DEPTH_STENCIL_VIEW_DESC_u,
}}
RIDL!{#[uuid(0x9fdac92a, 0x1876, 0x48c3, 0xaf, 0xad, 0x25, 0xb9, 0x4f, 0x84, 0xa9, 0xb6)]
interface ID3D11DepthStencilView(ID3D11DepthStencilViewVtbl): ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_DEPTH_STENCIL_VIEW_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_BUFFER_UAV_FLAG {
    D3D11_BUFFER_UAV_FLAG_RAW = 0x1,
    D3D11_BUFFER_UAV_FLAG_APPEND = 0x2,
    D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4,
}}
STRUCT!{struct D3D11_BUFFER_UAV {
    FirstElement: UINT,
    NumElements: UINT,
    Flags: UINT,
}}
STRUCT!{struct D3D11_TEX1D_UAV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX1D_ARRAY_UAV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX2D_UAV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX2D_ARRAY_UAV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
STRUCT!{struct D3D11_TEX3D_UAV {
    MipSlice: UINT,
    FirstWSlice: UINT,
    WSize: UINT,
}}
UNION!{union D3D11_UNORDERED_ACCESS_VIEW_DESC_u {
    [u32; 3],
    Buffer Buffer_mut: D3D11_BUFFER_UAV,
    Texture1D Texture1D_mut: D3D11_TEX1D_UAV,
    Texture1DArray Texture1DArray_mut: D3D11_TEX1D_ARRAY_UAV,
    Texture2D Texture2D_mut: D3D11_TEX2D_UAV,
    Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_UAV,
    Texture3D Texture3D_mut: D3D11_TEX3D_UAV,
}}
STRUCT!{struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
    Format: DXGI_FORMAT,
    ViewDimension: D3D11_UAV_DIMENSION,
    u: D3D11_UNORDERED_ACCESS_VIEW_DESC_u,
}}
RIDL!{#[uuid(0x28acf509, 0x7f5c, 0x48f6, 0x86, 0x11, 0xf3, 0x16, 0x01, 0x0a, 0x63, 0x80)]
interface ID3D11UnorderedAccessView(ID3D11UnorderedAccessViewVtbl): ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_UNORDERED_ACCESS_VIEW_DESC,
    ) -> (),
}}
RIDL!{#[uuid(0x3b301d64, 0xd678, 0x4289, 0x88, 0x97, 0x22, 0xf8, 0x92, 0x8b, 0x72, 0xf3)]
interface ID3D11VertexShader(ID3D11VertexShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0x8e5c6061, 0x628a, 0x4c8e, 0x82, 0x64, 0xbb, 0xe4, 0x5c, 0xb3, 0xd5, 0xdd)]
interface ID3D11HullShader(ID3D11HullShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0xf582c508, 0x0f36, 0x490c, 0x99, 0x77, 0x31, 0xee, 0xce, 0x26, 0x8c, 0xfa)]
interface ID3D11DomainShader(ID3D11DomainShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0x38325b96, 0xeffb, 0x4022, 0xba, 0x02, 0x2e, 0x79, 0x5b, 0x70, 0x27, 0x5c)]
interface ID3D11GeometryShader(ID3D11GeometryShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0xea82e40d, 0x51dc, 0x4f33, 0x93, 0xd4, 0xdb, 0x7c, 0x91, 0x25, 0xae, 0x8c)]
interface ID3D11PixelShader(ID3D11PixelShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0x4f5b196e, 0xc2bd, 0x495e, 0xbd, 0x01, 0x1f, 0xde, 0xd3, 0x8e, 0x49, 0x69)]
interface ID3D11ComputeShader(ID3D11ComputeShaderVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
RIDL!{#[uuid(0xe4819ddc, 0x4cf0, 0x4025, 0xbd, 0x26, 0x5d, 0xe8, 0x2a, 0x3e, 0x07, 0xb7)]
interface ID3D11InputLayout(ID3D11InputLayoutVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {}}
ENUM!{enum D3D11_FILTER {
    D3D11_FILTER_MIN_MAG_MIP_POINT = 0,
    D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
    D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
    D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
    D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
    D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
    D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
    D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
    D3D11_FILTER_ANISOTROPIC = 0x55,
    D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
    D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
    D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
    D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
    D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
    D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
    D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
    D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
    D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
    D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
    D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
    D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
    D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
    D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5,
}}
ENUM!{enum D3D11_FILTER_TYPE {
    D3D11_FILTER_TYPE_POINT = 0,
    D3D11_FILTER_TYPE_LINEAR = 1,
}}
ENUM!{enum D3D11_FILTER_REDUCTION_TYPE {
    D3D11_FILTER_REDUCTION_TYPE_STANDARD = 0,
    D3D11_FILTER_REDUCTION_TYPE_COMPARISON = 1,
    D3D11_FILTER_REDUCTION_TYPE_MINIMUM = 2,
    D3D11_FILTER_REDUCTION_TYPE_MAXIMUM = 3,
}}
pub const D3D11_FILTER_REDUCTION_TYPE_MASK: DWORD = 0x3;
pub const D3D11_FILTER_REDUCTION_TYPE_SHIFT: DWORD = 7;
pub const D3D11_FILTER_TYPE_MASK: DWORD = 0x3;
pub const D3D11_MIN_FILTER_SHIFT: DWORD = 4;
pub const D3D11_MAG_FILTER_SHIFT: DWORD = 2;
pub const D3D11_MIP_FILTER_SHIFT: DWORD = 0;
pub const D3D11_COMPARISON_FILTERING_BIT: DWORD = 0x80;
pub const D3D11_ANISOTROPIC_FILTERING_BIT: DWORD = 0x40;
ENUM!{enum D3D11_TEXTURE_ADDRESS_MODE {
    D3D11_TEXTURE_ADDRESS_WRAP = 1,
    D3D11_TEXTURE_ADDRESS_MIRROR = 2,
    D3D11_TEXTURE_ADDRESS_CLAMP = 3,
    D3D11_TEXTURE_ADDRESS_BORDER = 4,
    D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5,
}}
STRUCT!{struct D3D11_SAMPLER_DESC {
    Filter: D3D11_FILTER,
    AddressU: D3D11_TEXTURE_ADDRESS_MODE,
    AddressV: D3D11_TEXTURE_ADDRESS_MODE,
    AddressW: D3D11_TEXTURE_ADDRESS_MODE,
    MipLODBias: FLOAT,
    MaxAnisotropy: UINT,
    ComparisonFunc: D3D11_COMPARISON_FUNC,
    BorderColor: [FLOAT; 4],
    MinLOD: FLOAT,
    MaxLOD: FLOAT,
}}
RIDL!{#[uuid(0xda6fea51, 0x564c, 0x4487, 0x98, 0x10, 0xf0, 0xd0, 0xf9, 0xb4, 0xe3, 0xa5)]
interface ID3D11SamplerState(ID3D11SamplerStateVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_SAMPLER_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_FORMAT_SUPPORT {
    D3D11_FORMAT_SUPPORT_BUFFER = 0x1,
    D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
    D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
    D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8,
    D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10,
    D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20,
    D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40,
    D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
    D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
    D3D11_FORMAT_SUPPORT_MIP = 0x1000,
    D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
    D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
    D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000,
    D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
    D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
    D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
    D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000,
    D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
    D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
    D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
    D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
    D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
    D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
    D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000,
    D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000,
    D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
    D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000,
    D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000,
}}
ENUM!{enum D3D11_FORMAT_SUPPORT2 {
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
    D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
    D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
    D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
    D3D11_FORMAT_SUPPORT2_TILED = 0x200,
    D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400,
    D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
}}
RIDL!{#[uuid(0x4b35d0cd, 0x1e15, 0x4258, 0x9c, 0x98, 0x1b, 0x13, 0x33, 0xf6, 0xdd, 0x3b)]
interface ID3D11Asynchronous(ID3D11AsynchronousVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDataSize() -> UINT,
}}
ENUM!{enum D3D11_ASYNC_GETDATA_FLAG {
    D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1,
}}
ENUM!{enum D3D11_QUERY {
    D3D11_QUERY_EVENT = 0,
    D3D11_QUERY_OCCLUSION = D3D11_QUERY_EVENT + 1u32,
    D3D11_QUERY_TIMESTAMP = D3D11_QUERY_OCCLUSION + 1u32,
    D3D11_QUERY_TIMESTAMP_DISJOINT = D3D11_QUERY_TIMESTAMP + 1u32,
    D3D11_QUERY_PIPELINE_STATISTICS = D3D11_QUERY_TIMESTAMP_DISJOINT + 1u32,
    D3D11_QUERY_OCCLUSION_PREDICATE = D3D11_QUERY_PIPELINE_STATISTICS + 1u32,
    D3D11_QUERY_SO_STATISTICS = D3D11_QUERY_OCCLUSION_PREDICATE + 1u32,
    D3D11_QUERY_SO_OVERFLOW_PREDICATE = D3D11_QUERY_SO_STATISTICS + 1u32,
    D3D11_QUERY_SO_STATISTICS_STREAM0 = D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1u32,
    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = D3D11_QUERY_SO_STATISTICS_STREAM0 + 1u32,
    D3D11_QUERY_SO_STATISTICS_STREAM1 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1u32,
    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = D3D11_QUERY_SO_STATISTICS_STREAM1 + 1u32,
    D3D11_QUERY_SO_STATISTICS_STREAM2 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1u32,
    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = D3D11_QUERY_SO_STATISTICS_STREAM2 + 1u32,
    D3D11_QUERY_SO_STATISTICS_STREAM3 = D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1u32,
    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = D3D11_QUERY_SO_STATISTICS_STREAM3 + 1u32,
}}
ENUM!{enum D3D11_QUERY_MISC_FLAG {
    D3D11_QUERY_MISC_PREDICATEHINT = 0x1,
}}
STRUCT!{struct D3D11_QUERY_DESC {
    Query: D3D11_QUERY,
    MiscFlags: UINT,
}}
RIDL!{#[uuid(0xd6c00747, 0x87b7, 0x425e, 0xb8, 0x4d, 0x44, 0xd1, 0x08, 0x56, 0x0a, 0xfd)]
interface ID3D11Query(ID3D11QueryVtbl): ID3D11Asynchronous(ID3D11AsynchronousVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_QUERY_DESC,
    ) -> (),
}}
RIDL!{#[uuid(0x9eb576dd, 0x9f77, 0x4d86, 0x81, 0xaa, 0x8b, 0xab, 0x5f, 0xe4, 0x90, 0xe2)]
interface ID3D11Predicate(ID3D11PredicateVtbl): ID3D11Query(ID3D11QueryVtbl) {}}
STRUCT!{struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
    Frequency: UINT64,
    Disjoint: BOOL,
}}
STRUCT!{struct D3D11_QUERY_DATA_PIPELINE_STATISTICS {
    IAVertices: UINT64,
    IAPrimitives: UINT64,
    VSInvocations: UINT64,
    GSInvocations: UINT64,
    GSPrimitives: UINT64,
    CInvocations: UINT64,
    CPrimitives: UINT64,
    PSInvocations: UINT64,
    HSInvocations: UINT64,
    DSInvocations: UINT64,
    CSInvocations: UINT64,
}}
STRUCT!{struct D3D11_QUERY_DATA_SO_STATISTICS {
    NumPrimitivesWritten: UINT64,
    PrimitivesStorageNeeded: UINT64,
}}
ENUM!{enum D3D11_COUNTER {
    D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000,
}}
ENUM!{enum D3D11_COUNTER_TYPE {
    D3D11_COUNTER_TYPE_FLOAT32 = 0,
    D3D11_COUNTER_TYPE_UINT16 = D3D11_COUNTER_TYPE_FLOAT32 + 1u32,
    D3D11_COUNTER_TYPE_UINT32 = D3D11_COUNTER_TYPE_UINT16 + 1u32,
    D3D11_COUNTER_TYPE_UINT64 = D3D11_COUNTER_TYPE_UINT32 + 1u32,
}}
STRUCT!{struct D3D11_COUNTER_DESC {
    Counter: D3D11_COUNTER,
    MiscFlags: UINT,
}}
STRUCT!{struct D3D11_COUNTER_INFO {
    LastDeviceDependentCounter: D3D11_COUNTER,
    NumSimultaneousCounters: UINT,
    NumDetectableParallelUnits: UINT8,
}}
RIDL!{#[uuid(0x6e8c49fb, 0xa371, 0x4770, 0xb4, 0x40, 0x29, 0x08, 0x60, 0x22, 0xb7, 0x41)]
interface ID3D11Counter(ID3D11CounterVtbl): ID3D11Asynchronous(ID3D11AsynchronousVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_COUNTER_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS {
    D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
    D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe,
}}
ENUM!{enum D3D11_DEVICE_CONTEXT_TYPE {
    D3D11_DEVICE_CONTEXT_IMMEDIATE = 0,
    D3D11_DEVICE_CONTEXT_DEFERRED = D3D11_DEVICE_CONTEXT_IMMEDIATE + 1u32,
}}
STRUCT!{struct D3D11_CLASS_INSTANCE_DESC {
    InstanceId: UINT,
    InstanceIndex: UINT,
    TypeId: UINT,
    ConstantBuffer: UINT,
    BaseConstantBufferOffset: UINT,
    BaseTexture: UINT,
    BaseSampler: UINT,
    Created: BOOL,
}}
RIDL!{#[uuid(0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94, 0x36, 0x86, 0x62, 0xa6, 0x57, 0x97, 0xcb)]
interface ID3D11ClassInstance(ID3D11ClassInstanceVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetClassLinkage(
        ppLinkage: *mut *mut ID3D11ClassLinkage,
    ) -> (),
    fn GetDesc(
        pDesc: *mut D3D11_CLASS_INSTANCE_DESC,
    ) -> (),
    fn GetInstanceName(
        pInstanceName: LPSTR,
        pBufferLength: *mut SIZE_T,
    ) -> (),
    fn GetTypeName(
        pTypeName: LPSTR,
        pBufferLength: *mut SIZE_T,
    ) -> (),
}}
RIDL!{#[uuid(0xddf57cba, 0x9543, 0x46e4, 0xa1, 0x2b, 0xf2, 0x07, 0xa0, 0xfe, 0x7f, 0xed)]
interface ID3D11ClassLinkage(ID3D11ClassLinkageVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetClassInstance(
        GetClassInstance: LPCSTR,
        InstanceIndex: UINT,
        ppInstance: *mut *mut ID3D11ClassInstance,
    ) -> HRESULT,
    fn CreateClassInstance(
        pClassTypeName: LPCSTR,
        ConstantBufferOffset: UINT,
        ConstantVectorOffset: UINT,
        TextureOffset: UINT,
        SamplerOffset: UINT,
        ppInstance: *mut *mut ID3D11ClassInstance,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xa24bc4d1, 0x769e, 0x43f7, 0x80, 0x13, 0x98, 0xff, 0x56, 0x6c, 0x18, 0xe2)]
interface ID3D11CommandList(ID3D11CommandListVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetContextFlags() -> UINT,
}}
ENUM!{enum D3D11_FEATURE {
    D3D11_FEATURE_THREADING = 0,
    D3D11_FEATURE_DOUBLES = D3D11_FEATURE_THREADING + 1u32,
    D3D11_FEATURE_FORMAT_SUPPORT = D3D11_FEATURE_DOUBLES + 1u32,
    D3D11_FEATURE_FORMAT_SUPPORT2 = D3D11_FEATURE_FORMAT_SUPPORT + 1u32,
    D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = D3D11_FEATURE_FORMAT_SUPPORT2 + 1u32,
    D3D11_FEATURE_D3D11_OPTIONS = D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS + 1u32,
    D3D11_FEATURE_ARCHITECTURE_INFO = D3D11_FEATURE_D3D11_OPTIONS + 1u32,
    D3D11_FEATURE_D3D9_OPTIONS = D3D11_FEATURE_ARCHITECTURE_INFO + 1u32,
    D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = D3D11_FEATURE_D3D9_OPTIONS + 1u32,
    D3D11_FEATURE_D3D9_SHADOW_SUPPORT = D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT + 1u32,
    D3D11_FEATURE_D3D11_OPTIONS1 = D3D11_FEATURE_D3D9_SHADOW_SUPPORT + 1u32,
    D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = D3D11_FEATURE_D3D11_OPTIONS1 + 1u32,
    D3D11_FEATURE_MARKER_SUPPORT = D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT + 1u32,
    D3D11_FEATURE_D3D9_OPTIONS1 = D3D11_FEATURE_MARKER_SUPPORT + 1u32,
    D3D11_FEATURE_D3D11_OPTIONS2 = D3D11_FEATURE_D3D9_OPTIONS1 + 1u32,
    D3D11_FEATURE_D3D11_OPTIONS3 = D3D11_FEATURE_D3D11_OPTIONS2 + 1u32,
    D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = D3D11_FEATURE_D3D11_OPTIONS3 + 1u32,
}}
STRUCT!{struct D3D11_FEATURE_DATA_THREADING {
    DriverConcurrentCreates: BOOL,
    DriverCommandLists: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_DOUBLES {
    DoublePrecisionFloatShaderOps: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
    InFormat: DXGI_FORMAT,
    OutFormatSupport: UINT,
}}
STRUCT!{struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 {
    InFormat: DXGI_FORMAT,
    OutFormatSupport2: UINT,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS {
    ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
    OutputMergerLogicOp: BOOL,
    UAVOnlyRenderingForcedSampleCount: BOOL,
    DiscardAPIsSeenByDriver: BOOL,
    FlagsForUpdateAndCopySeenByDriver: BOOL,
    ClearView: BOOL,
    CopyWithOverlap: BOOL,
    ConstantBufferPartialUpdate: BOOL,
    ConstantBufferOffsetting: BOOL,
    MapNoOverwriteOnDynamicConstantBuffer: BOOL,
    MapNoOverwriteOnDynamicBufferSRV: BOOL,
    MultisampleRTVWithForcedSampleCountOne: BOOL,
    SAD4ShaderInstructions: BOOL,
    ExtendedDoublesShaderInstructions: BOOL,
    ExtendedResourceSharing: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
    TileBasedDeferredRenderer: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D9_OPTIONS {
    FullNonPow2TextureSupport: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
    SupportsDepthAsTextureWithLessEqualComparisonFilter: BOOL,
}}
ENUM!{enum D3D11_SHADER_MIN_PRECISION_SUPPORT {
    D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
    D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2,
}}
STRUCT!{struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
    PixelShaderMinPrecision: UINT,
    AllOtherShaderStagesMinPrecision: UINT,
}}
ENUM!{enum D3D11_TILED_RESOURCES_TIER {
    D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0,
    D3D11_TILED_RESOURCES_TIER_1 = 1,
    D3D11_TILED_RESOURCES_TIER_2 = 2,
    D3D11_TILED_RESOURCES_TIER_3 = 3,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 {
    TiledResourcesTier: D3D11_TILED_RESOURCES_TIER,
    MinMaxFiltering: BOOL,
    ClearViewAlsoSupportsDepthOnlyFormats: BOOL,
    MapOnDefaultBuffers: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
    SimpleInstancingSupported: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_MARKER_SUPPORT {
    Profile: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 {
    FullNonPow2TextureSupported: BOOL,
    DepthAsTextureWithLessEqualComparisonFilterSupported: BOOL,
    SimpleInstancingSupported: BOOL,
    TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported: BOOL,
}}
ENUM!{enum D3D11_CONSERVATIVE_RASTERIZATION_TIER {
    D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0,
    D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
    D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
    D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 3,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 {
    PSSpecifiedStencilRefSupported: BOOL,
    TypedUAVLoadAdditionalFormats: BOOL,
    ROVsSupported: BOOL,
    ConservativeRasterizationTier: D3D11_CONSERVATIVE_RASTERIZATION_TIER,
    TiledResourcesTier: D3D11_TILED_RESOURCES_TIER,
    MapOnDefaultTextures: BOOL,
    StandardSwizzle: BOOL,
    UnifiedMemoryArchitecture: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 {
    VPAndRTArrayIndexFromAnyShaderFeedingRasterizer: BOOL,
}}
STRUCT!{struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
    MaxGPUVirtualAddressBitsPerResource: UINT,
    MaxGPUVirtualAddressBitsPerProcess: UINT,
}}
RIDL!{#[uuid(0xc0bfa96c, 0xe089, 0x44fb, 0x8e, 0xaf, 0x26, 0xf8, 0x79, 0x61, 0x90, 0xda)]
interface ID3D11DeviceContext(ID3D11DeviceContextVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn VSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn PSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn PSSetShader(
        pPixelShader: *mut ID3D11PixelShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn PSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn VSSetShader(
        pVertexShader: *mut ID3D11VertexShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn DrawIndexed(
        IndexCount: UINT,
        StartIndexLocation: UINT,
        BaseVertexLocation: INT,
    ) -> (),
    fn Draw(
        VertexCount: UINT,
        StartVertexLocation: UINT,
    ) -> (),
    fn Map(
        pResource: *mut ID3D11Resource,
        Subresource: UINT,
        MapType: D3D11_MAP,
        MapFlags: UINT,
        pMappedResource: *mut D3D11_MAPPED_SUBRESOURCE,
    ) -> HRESULT,
    fn Unmap(
        pResource: *mut ID3D11Resource,
        Subresource: UINT,
    ) -> (),
    fn PSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn IASetInputLayout(
        pInputLayout: *mut ID3D11InputLayout,
    ) -> (),
    fn IASetVertexBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppVertexBuffers: *const *mut ID3D11Buffer,
        pStrides: *const UINT,
        pOffsets: *const UINT,
    ) -> (),
    fn IASetIndexBuffer(
        pIndexBuffer: *mut ID3D11Buffer,
        Format: DXGI_FORMAT,
        Offset: UINT,
    ) -> (),
    fn DrawIndexedInstanced(
        IndexCountPerInstance: UINT,
        InstanceCount: UINT,
        StartIndexLocation: UINT,
        BaseVertexLocation: INT,
        StartInstanceLocation: UINT,
    ) -> (),
    fn DrawInstanced(
        VertexCountPerInstance: UINT,
        InstanceCount: UINT,
        StartVertexLocation: UINT,
        StartInstanceLocation: UINT,
    ) -> (),
    fn GSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn GSSetShader(
        pShader: *mut ID3D11GeometryShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn IASetPrimitiveTopology(
        Topology: D3D11_PRIMITIVE_TOPOLOGY,
    ) -> (),
    fn VSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn VSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn Begin(
        pAsync: *mut ID3D11Asynchronous,
    ) -> (),
    fn End(
        pAsync: *mut ID3D11Asynchronous,
    ) -> (),
    fn GetData(
        pAsync: *mut ID3D11Asynchronous,
        pData: *mut c_void,
        DataSize: UINT,
        GetDataFlags: UINT,
    ) -> HRESULT,
    fn SetPredication(
        pPredicate: *mut ID3D11Predicate,
        PredicateValue: BOOL,
    ) -> (),
    fn GSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn GSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn OMSetRenderTargets(
        NumViews: UINT,
        ppRenderTargetViews: *const *mut ID3D11RenderTargetView,
        pDepthStencilView: *mut ID3D11DepthStencilView,
    ) -> (),
    fn OMSetRenderTargetsAndUnorderedAccessViews(
        NumRTVs: UINT,
        ppRenderTargetViews: *const *mut ID3D11RenderTargetView,
        pDepthStencilView: *mut ID3D11DepthStencilView,
        UAVStartSlot: UINT,
        NumUAVs: UINT,
        ppUnorderedAccessViews: *const *mut ID3D11UnorderedAccessView,
        pUAVInitialCounts: *const UINT,
    ) -> (),
    fn OMSetBlendState(
        pBlendState: *mut ID3D11BlendState,
        BlendFactor: &[FLOAT; 4],
        SampleMask: UINT,
    ) -> (),
    fn OMSetDepthStencilState(
        pDepthStencilState: *mut ID3D11DepthStencilState,
        StencilRef: UINT,
    ) -> (),
    fn SOSetTargets(
        NumBuffers: UINT,
        ppSOTargets: *const *mut ID3D11Buffer,
        pOffsets: *const UINT,
    ) -> (),
    fn DrawAuto() -> (),
    fn DrawIndexedInstancedIndirect(
        pBufferForArgs: *mut ID3D11Buffer,
        AlignedByteOffsetForArgs: UINT,
    ) -> (),
    fn DrawInstancedIndirect(
        pBufferForArgs: *mut ID3D11Buffer,
        AlignedByteOffsetForArgs: UINT,
    ) -> (),
    fn Dispatch(
        ThreadGroupCountX: UINT,
        ThreadGroupCountY: UINT,
        ThreadGroupCountZ: UINT,
    ) -> (),
    fn DispatchIndirect(
        pBufferForArgs: *mut ID3D11Buffer,
        AlignedByteOffsetForArgs: UINT,
    ) -> (),
    fn RSSetState(
        pRasterizerState: *mut ID3D11RasterizerState,
    ) -> (),
    fn RSSetViewports(
        NumViewports: UINT,
        pViewports: *const D3D11_VIEWPORT,
    ) -> (),
    fn RSSetScissorRects(
        NumRects: UINT,
        pRects: *const D3D11_RECT,
    ) -> (),
    fn CopySubresourceRegion(
        pDstResource: *mut ID3D11Resource,
        DstSubresource: UINT,
        DstX: UINT,
        DstY: UINT,
        DstZ: UINT,
        pSrcResource: *mut ID3D11Resource,
        SrcSubresource: UINT,
        pSrcBox: *const D3D11_BOX,
    ) -> (),
    fn CopyResource(
        pDstResource: *mut ID3D11Resource,
        pSrcResource: *mut ID3D11Resource,
    ) -> (),
    fn UpdateSubresource(
        pDstResource: *mut ID3D11Resource,
        DstSubresource: UINT,
        pDstBox: *const D3D11_BOX,
        pSrcData: *const c_void,
        SrcRowPitch: UINT,
        SrcDepthPitch: UINT,
    ) -> (),
    fn CopyStructureCount(
        pDstBuffer: *mut ID3D11Buffer,
        DstAlignedByteOffset: UINT,
        pSrcView: *mut ID3D11UnorderedAccessView,
    ) -> (),
    fn ClearRenderTargetView(
        pRenderTargetView: *mut ID3D11RenderTargetView,
        ColorRGBA: &[FLOAT; 4],
    ) -> (),
    fn ClearUnorderedAccessViewUint(
        pUnorderedAccessView: *mut ID3D11UnorderedAccessView,
        Values: &[UINT; 4],
    ) -> (),
    fn ClearUnorderedAccessViewFloat(
        pUnorderedAccessView: *mut ID3D11UnorderedAccessView,
        Values: &[FLOAT; 4],
    ) -> (),
    fn ClearDepthStencilView(
        pDepthStencilView: *mut ID3D11DepthStencilView,
        ClearFlags: UINT,
        Depth: FLOAT,
        Stencil: UINT8,
    ) -> (),
    fn GenerateMips(
        pShaderResourceView: *mut ID3D11ShaderResourceView,
    ) -> (),
    fn SetResourceMinLOD(
        pResource: *mut ID3D11Resource,
        MinLOD: FLOAT,
    ) -> (),
    fn GetResourceMinLOD(
        pResource: *mut ID3D11Resource,
    ) -> FLOAT,
    fn ResolveSubresource(
        pDstResource: *mut ID3D11Resource,
        DstSubresource: UINT,
        pSrcResource: *mut ID3D11Resource,
        SrcSubresource: UINT,
        Format: DXGI_FORMAT,
    ) -> (),
    fn ExecuteCommandList(
        pCommandList: *mut ID3D11CommandList,
        RestoreContextState: BOOL,
    ) -> (),
    fn HSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn HSSetShader(
        pHullShader: *mut ID3D11HullShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn HSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn HSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn DSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn DSSetShader(
        pDomainShader: *mut ID3D11DomainShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn DSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn DSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn CSSetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *const *mut ID3D11ShaderResourceView,
    ) -> (),
    fn CSSetUnorderedAccessViews(
        StartSlot: UINT,
        NumUAVs: UINT,
        ppUnorderedAccessViews: *const *mut ID3D11UnorderedAccessView,
        pUAVInitialCounts: *const UINT,
    ) -> (),
    fn CSSetShader(
        pComputeShader: *mut ID3D11ComputeShader,
        ppClassInstances: *const *mut ID3D11ClassInstance,
        NumClassInstances: UINT,
    ) -> (),
    fn CSSetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *const *mut ID3D11SamplerState,
    ) -> (),
    fn CSSetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *const *mut ID3D11Buffer,
    ) -> (),
    fn VSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn PSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn PSGetShader(
        ppPixelShader: *mut *mut ID3D11PixelShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn PSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn VSGetShader(
        ppVertexShader: *mut *mut ID3D11VertexShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn PSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn IAGetInputLayout(
        ppInputLayout: *mut *mut ID3D11InputLayout,
    ) -> (),
    fn IAGetVertexBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppVertexBuffers: *mut *mut ID3D11Buffer,
        pStrides: *mut UINT,
        pOffsets: *mut UINT,
    ) -> (),
    fn IAGetIndexBuffer(
        pIndexBuffer: *mut *mut ID3D11Buffer,
        Format: *mut DXGI_FORMAT,
        Offset: *mut UINT,
    ) -> (),
    fn GSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn GSGetShader(
        ppGeometryShader: *mut *mut ID3D11GeometryShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn IAGetPrimitiveTopology(
        pTopology: *mut D3D11_PRIMITIVE_TOPOLOGY,
    ) -> (),
    fn VSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn VSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn GetPredication(
        ppPredicate: *mut *mut ID3D11Predicate,
        pPredicateValue: *mut BOOL,
    ) -> (),
    fn GSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn GSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn OMGetRenderTargets(
        NumViews: UINT,
        ppRenderTargetViews: *mut *mut ID3D11RenderTargetView,
        ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
    ) -> (),
    fn OMGetRenderTargetsAndUnorderedAccessViews(
        NumRTVs: UINT,
        ppRenderTargetViews: *mut *mut ID3D11RenderTargetView,
        ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
        UAVStartSlot: UINT,
        NumUAVs: UINT,
        ppUnorderedAccessViews: *mut *mut ID3D11UnorderedAccessView,
    ) -> (),
    fn OMGetBlendState(
        ppBlendState: *mut *mut ID3D11BlendState,
        BlendFactor: &mut [FLOAT; 4],
        pSampleMask: *mut UINT,
    ) -> (),
    fn OMGetDepthStencilState(
        ppDepthStencilState: *mut *mut ID3D11DepthStencilState,
        pStencilRef: *mut UINT,
    ) -> (),
    fn SOGetTargets(
        NumBuffers: UINT,
        ppSOTargets: *mut *mut ID3D11Buffer,
    ) -> (),
    fn RSGetState(
        ppRasterizerState: *mut *mut ID3D11RasterizerState,
    ) -> (),
    fn RSGetViewports(
        pNumViewports: *mut UINT,
        pViewports: *mut D3D11_VIEWPORT,
    ) -> (),
    fn RSGetScissorRects(
        pNumRects: *mut UINT,
        pRects: *mut D3D11_RECT,
    ) -> (),
    fn HSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn HSGetShader(
        ppHullShader: *mut *mut ID3D11HullShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn HSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn HSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn DSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn DSGetShader(
        ppDomainShader: *mut *mut ID3D11DomainShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn DSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn DSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn CSGetShaderResources(
        StartSlot: UINT,
        NumViews: UINT,
        ppShaderResourceViews: *mut *mut ID3D11ShaderResourceView,
    ) -> (),
    fn CSGetUnorderedAccessViews(
        StartSlot: UINT,
        NumUAVs: UINT,
        ppUnorderedAccessViews: *mut *mut ID3D11UnorderedAccessView,
    ) -> (),
    fn CSGetShader(
        ppComputeShader: *mut *mut ID3D11ComputeShader,
        ppClassInstances: *mut *mut ID3D11ClassInstance,
        pNumClassInstances: *mut UINT,
    ) -> (),
    fn CSGetSamplers(
        StartSlot: UINT,
        NumSamplers: UINT,
        ppSamplers: *mut *mut ID3D11SamplerState,
    ) -> (),
    fn CSGetConstantBuffers(
        StartSlot: UINT,
        NumBuffers: UINT,
        ppConstantBuffers: *mut *mut ID3D11Buffer,
    ) -> (),
    fn ClearState() -> (),
    fn Flush() -> (),
    fn GetType() -> D3D11_DEVICE_CONTEXT_TYPE,
    fn GetContextFlags() -> UINT,
    fn FinishCommandList(
        RestoreDeferredContextState: BOOL,
        ppCommandList: *mut *mut ID3D11CommandList,
    ) -> HRESULT,
}}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_MOCOMP,
    0xe6a9f44b, 0x61b0, 0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_IDCT,
    0xbf22ad00, 0x03ea, 0x4690, 0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2_VLD,
    0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG1_VLD,
    0x6f3ec719, 0x3735, 0x42cc, 0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG2and1_VLD,
    0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT,
    0x1b81be64, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,
    0x1b81be65, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,
    0x1b81be66, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_IDCT_FGT,
    0x1b81be67, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_NOFGT,
    0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_FGT,
    0x1b81be69, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,
    0xd5f04ff9, 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT,
    0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,
    0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52}
DEFINE_GUID!{D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,
    0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c}
DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV8_POSTPROC,
    0x1b81be80, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV8_MOCOMP,
    0x1b81be81, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_POSTPROC,
    0x1b81be90, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_MOCOMP,
    0x1b81be91, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_WMV9_IDCT,
    0x1b81be94, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_POSTPROC,
    0x1b81bea0, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_MOCOMP,
    0x1b81bea1, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_IDCT,
    0x1b81bea2, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_VLD,
    0x1b81bea3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VC1_D2010,
    0x1b81bea4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,
    0xefd64d74, 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,
    0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e}
DEFINE_GUID!{D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,
    0xab998b5b, 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae}
DEFINE_GUID!{D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,
    0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0}
DEFINE_GUID!{D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,
    0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0,
    0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e}
DEFINE_GUID!{D3D11_DECODER_PROFILE_VP8_VLD,
    0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7}
STRUCT!{struct D3D11_VIDEO_DECODER_DESC {
    Guid: GUID,
    SampleWidth: UINT,
    SampleHeight: UINT,
    OutputFormat: DXGI_FORMAT,
}}
STRUCT!{struct D3D11_VIDEO_DECODER_CONFIG {
    guidConfigBitstreamEncryption: GUID,
    guidConfigMBcontrolEncryption: GUID,
    guidConfigResidDiffEncryption: GUID,
    ConfigBitstreamRaw: UINT,
    ConfigMBcontrolRasterOrder: UINT,
    ConfigResidDiffHost: UINT,
    ConfigSpatialResid8: UINT,
    ConfigResid8Subtraction: UINT,
    ConfigSpatialHost8or9Clipping: UINT,
    ConfigSpatialResidInterleaved: UINT,
    ConfigIntraResidUnsigned: UINT,
    ConfigResidDiffAccelerator: UINT,
    ConfigHostInverseScan: UINT,
    ConfigSpecificIDCT: UINT,
    Config4GroupedCoefs: UINT,
    ConfigMinRenderTargetBuffCount: USHORT,
    ConfigDecoderSpecific: USHORT,
}}
ENUM!{enum D3D11_VIDEO_DECODER_BUFFER_TYPE {
    D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0,
    D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1,
    D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2,
    D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3,
    D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4,
    D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5,
    D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6,
    D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7,
    D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8,
}}
STRUCT!{struct D3D11_AES_CTR_IV {
    IV: UINT64,
    Count: UINT64,
}}
STRUCT!{struct D3D11_ENCRYPTED_BLOCK_INFO {
    NumEncryptedBytesAtBeginning: UINT,
    NumBytesInSkipPattern: UINT,
    NumBytesInEncryptPattern: UINT,
}}
STRUCT!{struct D3D11_VIDEO_DECODER_BUFFER_DESC {
    BufferType: D3D11_VIDEO_DECODER_BUFFER_TYPE,
    BufferIndex: UINT,
    DataOffset: UINT,
    DataSize: UINT,
    FirstMBaddress: UINT,
    NumMBsInBuffer: UINT,
    Width: UINT,
    Height: UINT,
    Stride: UINT,
    ReservedBits: UINT,
    pIV: *mut c_void,
    IVSize: UINT,
    PartialEncryption: BOOL,
    EncryptedBlockInfo: D3D11_ENCRYPTED_BLOCK_INFO,
}}
STRUCT!{struct D3D11_VIDEO_DECODER_EXTENSION {
    Function: UINT,
    pPrivateInputData: *mut c_void,
    PrivateInputDataSize: UINT,
    pPrivateOutputData: *mut c_void,
    PrivateOutputDataSize: UINT,
    ResourceCount: UINT,
    ppResourceList: *mut *mut ID3D11Resource,
}}
RIDL!{#[uuid(0x3c9c5b51, 0x995d, 0x48d1, 0x9b, 0x8d, 0xfa, 0x5c, 0xae, 0xde, 0xd6, 0x5c)]
interface ID3D11VideoDecoder(ID3D11VideoDecoderVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetCreationParameters(
        pVideoDesc: *mut D3D11_VIDEO_DECODER_DESC,
        pConfig: *mut D3D11_VIDEO_DECODER_CONFIG,
    ) -> HRESULT,
    fn GetDriverHandle(
        pDriverHandle: *mut HANDLE,
    ) -> HRESULT,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT {
    D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1,
    D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS {
    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1,
    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2,
    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8,
    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS {
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS {
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40,
    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS {
    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1,
    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2,
    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS {
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40,
    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS {
    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1,
    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2,
    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4,
    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8,
    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_CAPS {
    DeviceCaps: UINT,
    FeatureCaps: UINT,
    FilterCaps: UINT,
    InputFormatCaps: UINT,
    AutoStreamCaps: UINT,
    StereoCaps: UINT,
    RateConversionCapsCount: UINT,
    MaxInputStreams: UINT,
    MaxStreamStates: UINT,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS {
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS {
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100,
    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS {
    PastFrames: UINT,
    FutureFrames: UINT,
    ProcessorCaps: UINT,
    ITelecineCaps: UINT,
    CustomRateCount: UINT,
}}
ENUM!{enum D3D11_CONTENT_PROTECTION_CAPS {
    D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1,
    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2,
    D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4,
    D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8,
    D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10,
    D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20,
    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40,
    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80,
    D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100,
    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200,
    D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400,
    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800,
    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000,
    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000,
    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000,
}}
DEFINE_GUID!{D3D11_CRYPTO_TYPE_AES128_CTR,
    0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0x0b, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f}
DEFINE_GUID!{D3D11_DECODER_ENCRYPTION_HW_CENC,
    0x89d6ac4f, 0x09f2, 0x4229, 0xb2, 0xcd, 0x37, 0x74, 0x0a, 0x6d, 0xfd, 0x81}
DEFINE_GUID!{D3D11_KEY_EXCHANGE_HW_PROTECTION,
    0xb1170d8a, 0x628d, 0x4da3, 0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70}
STRUCT!{struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS {
    Caps: UINT,
    KeyExchangeTypeCount: UINT,
    BlockAlignmentSize: UINT,
    ProtectedMemorySize: ULONGLONG,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE {
    CustomRate: DXGI_RATIONAL,
    OutputFrames: UINT,
    InputInterlaced: BOOL,
    InputFramesOrFields: UINT,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_FILTER {
    D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0,
    D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1,
    D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2,
    D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3,
    D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4,
    D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5,
    D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6,
    D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE {
    Minimum: c_int,
    Maximum: c_int,
    Default: c_int,
    Multiplier: c_float,
}}
ENUM!{enum D3D11_VIDEO_FRAME_FORMAT {
    D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0,
    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2,
}}
ENUM!{enum D3D11_VIDEO_USAGE {
    D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
    D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1,
    D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC {
    InputFrameFormat: D3D11_VIDEO_FRAME_FORMAT,
    InputFrameRate: DXGI_RATIONAL,
    InputWidth: UINT,
    InputHeight: UINT,
    OutputFrameRate: DXGI_RATIONAL,
    OutputWidth: UINT,
    OutputHeight: UINT,
    Usage: D3D11_VIDEO_USAGE,
}}
RIDL!{#[uuid(0x31627037, 0x53ab, 0x4200, 0x90, 0x61, 0x05, 0xfa, 0xa9, 0xab, 0x45, 0xf9)]
interface ID3D11VideoProcessorEnumerator(ID3D11VideoProcessorEnumeratorVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetVideoProcessorContentDesc(
        pContentDesc: *mut D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
    ) -> HRESULT,
    fn CheckVideoProcessorFormat(
        Format: DXGI_FORMAT,
        pFlags: *mut UINT,
    ) -> HRESULT,
    fn GetVideoProcessorCaps(
        pCaps: *mut D3D11_VIDEO_PROCESSOR_CAPS,
    ) -> HRESULT,
    fn GetVideoProcessorRateConversionCaps(
        TypeIndex: UINT,
        pCaps: *mut D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS,
    ) -> HRESULT,
    fn GetVideoProcessorCustomRate(
        TypeIndex: UINT,
        CustomRateIndex: UINT,
        pRate: *mut D3D11_VIDEO_PROCESSOR_CUSTOM_RATE,
    ) -> HRESULT,
    fn GetVideoProcessorFilterRange(
        Filter: D3D11_VIDEO_PROCESSOR_FILTER,
        Range: *mut D3D11_VIDEO_PROCESSOR_FILTER_RANGE,
    ) -> HRESULT,
}}
STRUCT!{struct D3D11_VIDEO_COLOR_RGBA {
    R: c_float,
    G: c_float,
    B: c_float,
    A: c_float,
}}
STRUCT!{struct D3D11_VIDEO_COLOR_YCbCrA {
    Y: c_float,
    Cb: c_float,
    Cr: c_float,
    A: c_float,
}}
UNION!{union D3D11_VIDEO_COLOR {
    [f32; 4],
    YCbCr YCbCr_mut: D3D11_VIDEO_COLOR_YCbCrA,
    RGBA RGBA_mut: D3D11_VIDEO_COLOR_RGBA,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE {
    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0,
    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 1,
    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 2,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE {
    bitfield: UINT,
}}
BITFIELD!{D3D11_VIDEO_PROCESSOR_COLOR_SPACE bitfield: UINT [
    Usage set_Usage[0..1],
    RGB_Range set_RGB_Range[1..2],
    YCbCr_Matrix set_YCbCr_Matrix[2..3],
    YCbCr_xvYCC set_YCbCr_xvYCC[3..4],
    Nominal_Range set_Nominal_Range[4..6],
]}
ENUM!{enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE {
    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0,
    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1,
    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2,
    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE {
    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0,
    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1,
    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT {
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE {
    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0,
    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2,
}}
ENUM!{enum D3D11_VIDEO_PROCESSOR_ROTATION {
    D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
    D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1,
    D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
    D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_STREAM {
    Enable: BOOL,
    OutputIndex: UINT,
    InputFrameOrField: UINT,
    PastFrames: UINT,
    FutureFrames: UINT,
    ppPastSurfaces: *mut *mut ID3D11VideoProcessorInputView,
    pInputSurface: *mut ID3D11VideoProcessorInputView,
    ppFutureSurfaces: *mut *mut ID3D11VideoProcessorInputView,
    ppPastSurfacesRight: *mut *mut ID3D11VideoProcessorInputView,
    pInputSurfaceRight: *mut ID3D11VideoProcessorInputView,
    ppFutureSurfacesRight: *mut *mut ID3D11VideoProcessorInputView,
}}
RIDL!{#[uuid(0x1d7b0652, 0x185f, 0x41c6, 0x85, 0xce, 0x0c, 0x5b, 0xe3, 0xd4, 0xae, 0x6c)]
interface ID3D11VideoProcessor(ID3D11VideoProcessorVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetContentDesc(
        pDesc: *mut D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
    ) -> (),
    fn GetRateConversionCaps(
        pCaps: *mut D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS,
    ) -> (),
}}
STRUCT!{struct D3D11_OMAC {
    Omac: [BYTE; 16],
}}
ENUM!{enum D3D11_AUTHENTICATED_CHANNEL_TYPE {
    D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1,
    D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2,
    D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3,
}}
RIDL!{#[uuid(0x3015a308, 0xdcbd, 0x47aa, 0xa7, 0x47, 0x19, 0x24, 0x86, 0xd1, 0x4d, 0x4a)]
interface ID3D11AuthenticatedChannel(ID3D11AuthenticatedChannelVtbl):
    ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetCertificateSize(
        pCertificateSize: *mut UINT,
    ) -> HRESULT,
    fn GetCertificate(
        CertificateSize: UINT,
        pCertificate: *mut BYTE,
    ) -> HRESULT,
    fn GetChannelHandle(
        pChannelHandle: *mut HANDLE,
    ) -> (),
}}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_PROTECTION,
    0xa84eb584, 0xc495, 0x48aa, 0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x05}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE,
    0xbc1b18a5, 0xb1fb, 0x42ab, 0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE,
    0xec1c539d, 0x8cff, 0x4e2a, 0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION,
    0x2634499e, 0xd018, 0x4d74, 0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT,
    0x0db207b3, 0x9450, 0x46a6, 0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS,
    0x649bbadb, 0xf0f4, 0x4639, 0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT,
    0x012f0bd6, 0xe662, 0x4474, 0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT,
    0x2c042b5e, 0x8c07, 0x46d5, 0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_OUTPUT_ID,
    0x839ddca3, 0x9b4e, 0x41e4, 0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES,
    0x6214d9d2, 0x432c, 0x4abb, 0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT,
    0xb30f7066, 0x203c, 0x4b07, 0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID,
    0xf83a5958, 0xe986, 0x4bda, 0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x01, 0xb7}
DEFINE_GUID!{D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE,
    0xec1791c7, 0xdad3, 0x4f15, 0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0}
DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE,
    0x06114bdb, 0x3523, 0x470a, 0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0}
DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_PROTECTION,
    0x50455658, 0x3f47, 0x4362, 0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29}
DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION,
    0x6346cc54, 0x2cfc, 0x4ad4, 0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x00}
DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE,
    0x0772d047, 0x1b40, 0x48e8, 0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x01}
DEFINE_GUID!{D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE,
    0x41fff286, 0x6ae0, 0x4d43, 0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_INPUT {
    QueryType: GUID,
    hChannel: HANDLE,
    SequenceNumber: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT {
    omac: D3D11_OMAC,
    QueryType: GUID,
    hChannel: HANDLE,
    SequenceNumber: UINT,
    ReturnCode: HRESULT,
}}
//FIXME bitfield
STRUCT!{struct D3D11_AUTHENTICATED_PROTECTION_FLAGS {
    u: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    ProtectionFlags: D3D11_AUTHENTICATED_PROTECTION_FLAGS,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    ChannelType: D3D11_AUTHENTICATED_CHANNEL_TYPE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    DeviceHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT {
    Input: D3D11_AUTHENTICATED_QUERY_INPUT,
    DecoderHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    DecoderHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
    DeviceHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    RestrictedSharedResourceProcessCount: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT {
    Input: D3D11_AUTHENTICATED_QUERY_INPUT,
    ProcessIndex: UINT,
}}
ENUM!{enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE {
    D3D11_PROCESSIDTYPE_UNKNOWN = 0,
    D3D11_PROCESSIDTYPE_DWM = 1,
    D3D11_PROCESSIDTYPE_HANDLE = 2,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    ProcessIndex: UINT,
    ProcessIdentifier: D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE,
    ProcessHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    UnrestrictedProtectedSharedResourceCount: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT {
    Input: D3D11_AUTHENTICATED_QUERY_INPUT,
    DeviceHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    DeviceHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
    OutputIDCount: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT {
    Input: D3D11_AUTHENTICATED_QUERY_INPUT,
    DeviceHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
    OutputIDIndex: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    DeviceHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
    OutputIDIndex: UINT,
    OutputID: UINT64,
}}
ENUM!{enum D3D11_BUS_TYPE {
    D3D11_BUS_TYPE_OTHER = 0,
    D3D11_BUS_TYPE_PCI = 0x1,
    D3D11_BUS_TYPE_PCIX = 0x2,
    D3D11_BUS_TYPE_PCIEXPRESS = 0x3,
    D3D11_BUS_TYPE_AGP = 0x4,
    D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000,
    D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000,
    D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000,
    D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000,
    D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000,
    D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    BusType: D3D11_BUS_TYPE,
    AccessibleInContiguousBlocks: BOOL,
    AccessibleInNonContiguousBlocks: BOOL,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    EncryptionGuidCount: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT {
    Input: D3D11_AUTHENTICATED_QUERY_INPUT,
    EncryptionGuidIndex: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    EncryptionGuidIndex: UINT,
    EncryptionGuid: GUID,
}}
STRUCT!{struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT {
    Output: D3D11_AUTHENTICATED_QUERY_OUTPUT,
    EncryptionGuid: GUID,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_INPUT {
    omac: D3D11_OMAC,
    ConfigureType: GUID,
    hChannel: HANDLE,
    SequenceNumber: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT {
    omac: D3D11_OMAC,
    ConfigureType: GUID,
    hChannel: HANDLE,
    SequenceNumber: UINT,
    ReturnCode: HRESULT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT {
    Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
    StartSequenceQuery: UINT,
    StartSequenceConfigure: UINT,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT {
    Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
    Protections: D3D11_AUTHENTICATED_PROTECTION_FLAGS,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT {
    Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
    DecoderHandle: HANDLE,
    CryptoSessionHandle: HANDLE,
    DeviceHandle: HANDLE,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT {
    Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
    ProcessType: D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE,
    ProcessHandle: HANDLE,
    AllowAccess: BOOL,
}}
STRUCT!{struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT {
    Parameters: D3D11_AUTHENTICATED_CONFIGURE_INPUT,
    EncryptionGuid: GUID,
}}
DEFINE_GUID!{D3D11_KEY_EXCHANGE_RSAES_OAEP,
    0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20}
RIDL!{#[uuid(0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3, 0x9d, 0xd5, 0xc8, 0x65, 0x84, 0x57, 0x20)]
interface ID3D11CryptoSession(ID3D11CryptoSessionVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetCryptoType(
        pCryptoType: *mut GUID,
    ) -> (),
    fn GetDecoderProfile(
        pDecoderProfile: *mut GUID,
    ) -> (),
    fn GetCertificateSize(
        pCertificateSize: *mut UINT,
    ) -> HRESULT,
    fn GetCertificate(
        CertificateSize: UINT,
        pCertificate: *mut BYTE,
    ) -> HRESULT,
    fn GetCryptoSessionHandle(
        pCertificate: *mut HANDLE,
    ) -> (),
}}
ENUM!{enum D3D11_VDOV_DIMENSION {
    D3D11_VDOV_DIMENSION_UNKNOWN = 0,
    D3D11_VDOV_DIMENSION_TEXTURE2D = 1,
}}
STRUCT!{struct D3D11_TEX2D_VDOV {
    ArraySlice: UINT,
}}
STRUCT!{struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC {
    DecodeProfile: GUID,
    ViewDimension: D3D11_VDOV_DIMENSION,
    Texture2D: D3D11_TEX2D_VDOV,
}}
RIDL!{#[uuid(0xc2931aea, 0x2a85, 0x4f20, 0x86, 0x0f, 0xfb, 0xa1, 0xfd, 0x25, 0x6e, 0x18)]
interface ID3D11VideoDecoderOutputView(ID3D11VideoDecoderOutputViewVtbl):
    ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_VPIV_DIMENSION {
    D3D11_VPIV_DIMENSION_UNKNOWN = 0,
    D3D11_VPIV_DIMENSION_TEXTURE2D = 1,
}}
STRUCT!{struct D3D11_TEX2D_VPIV {
    MipSlice: UINT,
    ArraySlice: UINT,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC {
    FourCC: UINT,
    ViewDimension: D3D11_VPIV_DIMENSION,
    Texture2D: D3D11_TEX2D_VPIV,
}}
RIDL!{#[uuid(0x11ec5a5f, 0x51dc, 0x4945, 0xab, 0x34, 0x6e, 0x8c, 0x21, 0x30, 0x0e, 0xa5)]
interface ID3D11VideoProcessorInputView(ID3D11VideoProcessorInputViewVtbl):
    ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC,
    ) -> (),
}}
ENUM!{enum D3D11_VPOV_DIMENSION {
    D3D11_VPOV_DIMENSION_UNKNOWN = 0,
    D3D11_VPOV_DIMENSION_TEXTURE2D = 1,
    D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2,
}}
STRUCT!{struct D3D11_TEX2D_VPOV {
    MipSlice: UINT,
}}
STRUCT!{struct D3D11_TEX2D_ARRAY_VPOV {
    MipSlice: UINT,
    FirstArraySlice: UINT,
    ArraySize: UINT,
}}
UNION!{union D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC_u {
    [u32; 3],
    Texture2D Texture2D_mut: D3D11_TEX2D_VPOV,
    Texture2DArray Texture2DArray_mut: D3D11_TEX2D_ARRAY_VPOV,
}}
STRUCT!{struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC {
    ViewDimension: D3D11_VPOV_DIMENSION,
    u: D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC_u,
}}
RIDL!{#[uuid(0xa048285e, 0x25a9, 0x4527, 0xbd, 0x93, 0xd6, 0x8b, 0x68, 0xc4, 0x42, 0x54)]
interface ID3D11VideoProcessorOutputView(ID3D11VideoProcessorOutputViewVtbl):
    ID3D11View(ID3D11ViewVtbl) {
    fn GetDesc(
        pDesc: *mut D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC,
    ) -> (),
}}
RIDL!{#[uuid(0x61f21c45, 0x3c0e, 0x4a74, 0x9c, 0xea, 0x67, 0x10, 0x0d, 0x9a, 0xd5, 0xe4)]
interface ID3D11VideoContext(ID3D11VideoContextVtbl): ID3D11DeviceChild(ID3D11DeviceChildVtbl) {
    fn GetDecoderBuffer(
        pDecoder: *mut ID3D11VideoDecoder,
        Type: D3D11_VIDEO_DECODER_BUFFER_TYPE,
        pBufferSize: *mut UINT,
        ppBuffer: *mut *mut c_void,
    ) -> HRESULT,
    fn ReleaseDecoderBuffer(
        pDecoder: *mut ID3D11VideoDecoder,
        Type: D3D11_VIDEO_DECODER_BUFFER_TYPE,
    ) -> HRESULT,
    fn DecoderBeginFrame(
        pDecoder: *mut ID3D11VideoDecoder,
        pView: *mut ID3D11VideoDecoderOutputView,
        ContentKeySize: UINT,
        pContentKey: *const c_void,
    ) -> HRESULT,
    fn DecoderEndFrame(
        pDecoder: *mut ID3D11VideoDecoder,
    ) -> HRESULT,
    fn SubmitDecoderBuffers(
        pDecoder: *mut ID3D11VideoDecoder,
        NumBuffers: UINT,
        pBufferDesc: *const D3D11_VIDEO_DECODER_BUFFER_DESC,
    ) -> HRESULT,
    fn DecoderExtension(
        pDecoder: *mut ID3D11VideoDecoder,
        pExtensionData: *const D3D11_VIDEO_DECODER_EXTENSION,
    ) -> HRESULT,
    fn VideoProcessorSetOutputTargetRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        Enable: BOOL,
        pRect: *const RECT,
    ) -> (),
    fn VideoProcessorSetOutputBackgroundColor(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        YCbCr: BOOL,
        pRect: *const RECT,
    ) -> (),
    fn VideoProcessorSetOutputColorSpace(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pColorSpace: *const D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
    ) -> HRESULT,
    fn VideoProcessorSetOutputAlphaFillMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        AlphaFillMode: D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE,
        StreamIndex: UINT,
    ) -> (),
    fn VideoProcessorSetOutputConstriction(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        Enable: BOOL,
        Size: SIZE,
    ) -> (),
    fn VideoProcessorSetOutputStereoMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        Enable: BOOL,
    ) -> (),
    fn VideoProcessorSetOutputExtension(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pExtensionGuid: *const GUID,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn VideoProcessorGetOutputTargetRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        Enabled: *mut BOOL,
        pRect: *mut RECT,
    ) -> (),
    fn VideoProcessorGetOutputBackgroundColor(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pYCbCr: *mut BOOL,
        pColor: *mut D3D11_VIDEO_COLOR,
    ) -> (),
    fn VideoProcessorGetOutputColorSpace(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pColorSpace: *mut D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
    ) -> (),
    fn VideoProcessorGetOutputAlphaFillMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pAlphaFillMode: *mut D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE,
        pStreamIndex: *mut UINT,
    ) -> (),
    fn VideoProcessorGetOutputConstriction(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pEnabled: *mut BOOL,
        pSize: *mut SIZE,
    ) -> (),
    fn VideoProcessorGetOutputStereoMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pEnabled: *mut BOOL,
    ) -> (),
    fn VideoProcessorGetOutputExtension(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pExtensionGuid: *const GUID,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn VideoProcessorSetStreamFrameFormat(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        FrameFormat: D3D11_VIDEO_FRAME_FORMAT,
    ) -> (),
    fn VideoProcessorSetStreamColorSpace(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pColorSpace: *const D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
    ) -> (),
    fn VideoProcessorSetStreamOutputRate(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        OutputRate: D3D11_VIDEO_PROCESSOR_OUTPUT_RATE,
        RepeatFrame: BOOL,
        pCustomRate: *const DXGI_RATIONAL,
    ) -> (),
    fn VideoProcessorSetStreamSourceRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        pRect: *const RECT,
    ) -> (),
    fn VideoProcessorSetStreamDestRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        pRect: *const RECT,
    ) -> (),
    fn VideoProcessorSetStreamAlpha(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        Alpha: FLOAT,
    ) -> (),
    fn VideoProcessorSetStreamPalette(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Count: UINT,
        pEntries: *const UINT,
    ) -> (),
    fn VideoProcessorSetStreamPixelAspectRatio(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        pSourceAspectRatio: *const DXGI_RATIONAL,
        pDestinationAspectRatio: *const DXGI_RATIONAL,
    ) -> (),
    fn VideoProcessorSetStreamLumaKey(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        Lower: FLOAT,
        Upper: FLOAT,
    ) -> (),
    fn VideoProcessorSetStreamStereoFormat(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        Format: D3D11_VIDEO_PROCESSOR_STEREO_FORMAT,
        LeftViewFrame0: BOOL,
        BaseViewFrame0: BOOL,
        FlipMode: D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE,
    ) -> (),
    fn VideoProcessorSetStreamAutoProcessingMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
    ) -> (),
    fn VideoProcessorSetStreamFilter(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Filter: D3D11_VIDEO_PROCESSOR_FILTER,
        Enable: BOOL,
        Level: c_int,
    ) -> (),
    fn VideoProcessorSetStreamExtension(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pExtensionGuid: *const GUID,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn VideoProcessorGetStreamFrameFormat(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pFrameFormat: *mut D3D11_VIDEO_FRAME_FORMAT,
    ) -> (),
    fn VideoProcessorGetStreamColorSpace(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pColorSpace: *mut D3D11_VIDEO_PROCESSOR_COLOR_SPACE,
    ) -> (),
    fn VideoProcessorGetStreamOutputRate(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pOutputRate: *mut D3D11_VIDEO_PROCESSOR_OUTPUT_RATE,
        pRepeatFrame: *mut BOOL,
        pCustomRate: *mut DXGI_RATIONAL,
    ) -> (),
    fn VideoProcessorGetStreamSourceRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pRect: *mut RECT,
    ) -> (),
    fn VideoProcessorGetStreamDestRect(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pRect: *mut RECT,
    ) -> (),
    fn VideoProcessorGetStreamAlpha(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pAlpha: *mut FLOAT,
    ) -> (),
    fn VideoProcessorGetStreamPalette(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Count: UINT,
        pEntries: *mut UINT,
    ) -> (),
    fn VideoProcessorGetStreamPixelAspectRatio(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pSourceAspectRatio: *mut DXGI_RATIONAL,
        pDestinationAspectRatio: *mut DXGI_RATIONAL,
    ) -> (),
    fn VideoProcessorGetStreamLumaKey(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pLower: *mut FLOAT,
        pUpper: *mut FLOAT,
    ) -> (),
    fn VideoProcessorGetStreamStereoFormat(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
        pFormat: *mut D3D11_VIDEO_PROCESSOR_STEREO_FORMAT,
        pLeftViewFrame0: *mut BOOL,
        pBaseViewFrame0: *mut BOOL,
        pFlipMode: *mut D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE,
        MonoOffset: *mut c_int,
    ) -> (),
    fn VideoProcessorGetStreamAutoProcessingMode(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnabled: *mut BOOL,
    ) -> (),
    fn VideoProcessorGetStreamFilter(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Filter: D3D11_VIDEO_PROCESSOR_FILTER,
        pEnabled: *mut BOOL,
        pLevel: *mut c_int,
    ) -> (),
    fn VideoProcessorGetStreamExtension(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pExtensionGuid: *const GUID,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn VideoProcessorBlt(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        pView: *mut ID3D11VideoProcessorOutputView,
        OutputFrame: UINT,
        StreamCount: UINT,
        pStreams: *const D3D11_VIDEO_PROCESSOR_STREAM,
    ) -> HRESULT,
    fn NegotiateCryptoSessionKeyExchange(
        pCryptoSession: *mut ID3D11CryptoSession,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn EncryptionBlt(
        pCryptoSession: *mut ID3D11CryptoSession,
        pSrcSurface: *mut ID3D11Texture2D,
        pDstSurface: *mut ID3D11Texture2D,
        IVSize: UINT,
        pIV: *mut c_void,
    ) -> HRESULT,
    fn DecryptionBlt(
        pCryptoSession: *mut ID3D11CryptoSession,
        pSrcSurface: *mut ID3D11Texture2D,
        pDstSurface: *mut ID3D11Texture2D,
        pEncryptedBlockInfo: *mut D3D11_ENCRYPTED_BLOCK_INFO,
        ContentKeySize: UINT,
        pContentKey: *const c_void,
        IVSize: UINT,
        pIV: *mut c_void,
    ) -> HRESULT,
    fn StartSessionKeyRefresh(
        pCryptoSession: *mut ID3D11CryptoSession,
        RandomNumberSize: UINT,
        pRandomNumber: *mut c_void,
    ) -> HRESULT,
    fn FinishSessionKeyRefresh(
        pCryptoSession: *mut ID3D11CryptoSession,
    ) -> HRESULT,
    fn GetEncryptionBltKey(
        pCryptoSession: *mut ID3D11CryptoSession,
        KeySize: UINT,
        pReadbackKey: *mut c_void,
    ) -> HRESULT,
    fn NegotiateAuthenticatedChannelKeyExchange(
        pChannel: *mut ID3D11AuthenticatedChannel,
        DataSize: UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn QueryAuthenticatedChannel(
        pChannel: *mut ID3D11AuthenticatedChannel,
        InputSize: UINT,
        pInput: *const c_void,
        OutputSize: UINT,
        pOutput: *mut c_void,
    ) -> HRESULT,
    fn ConfigureAuthenticatedChannel(
        pChannel: *mut ID3D11AuthenticatedChannel,
        InputSize: UINT,
        pInput: *const c_void,
        pOutput: *mut D3D11_AUTHENTICATED_CONFIGURE_OUTPUT,
    ) -> HRESULT,
    fn VideoProcessorSetStreamRotation(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        Enable: BOOL,
        Rotation: D3D11_VIDEO_PROCESSOR_ROTATION,
    ) -> HRESULT,
    fn VideoProcessorGetStreamRotation(
        pVideoProcessor: *mut ID3D11VideoProcessor,
        StreamIndex: UINT,
        pEnable: *mut BOOL,
        pRotation: *mut D3D11_VIDEO_PROCESSOR_ROTATION,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0x10ec4d5b, 0x975a, 0x4689, 0xb9, 0xe4, 0xd0, 0xaa, 0xc3, 0x0f, 0xe3, 0x33)]
interface ID3D11VideoDevice(ID3D11VideoDeviceVtbl): IUnknown(IUnknownVtbl) {
    fn CreateVideoDecoder(
        pVideoDesc: *const D3D11_VIDEO_DECODER_DESC,
        pConfig: *const D3D11_VIDEO_DECODER_CONFIG,
        ppDecoder: *mut *mut ID3D11VideoDecoder,
    ) -> HRESULT,
    fn CreateVideoProcessor(
        pEnum: *mut ID3D11VideoProcessorEnumerator,
        RateConversionIndex: UINT,
        ppVideoProcessor: *mut *mut ID3D11VideoProcessor,
    ) -> HRESULT,
    fn CreateAuthenticatedChannel(
        ChannelType: D3D11_AUTHENTICATED_CHANNEL_TYPE,
        ppAuthenticatedChannel: *mut *mut ID3D11AuthenticatedChannel,
    ) -> HRESULT,
    fn CreateCryptoSession(
        pCryptoType: *const GUID,
        pDecoderProfile: *const GUID,
        pKeyExchangeType: *const GUID,
        ppCryptoSession: *mut *mut ID3D11CryptoSession,
    ) -> HRESULT,
    fn CreateVideoDecoderOutputView(
        pResource: *mut ID3D11Resource,
        pDesc: *const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC,
        ppVDOVView: *mut *mut ID3D11VideoDecoderOutputView,
    ) -> HRESULT,
    fn CreateVideoProcessorInputView(
        pResource: *mut ID3D11Resource,
        pEnum: *mut ID3D11VideoProcessorEnumerator,
        pDesc: *const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC,
        ppVPIView: *mut *mut ID3D11VideoProcessorInputView,
    ) -> HRESULT,
    fn CreateVideoProcessorOutputView(
        pResource: *mut ID3D11Resource,
        pEnum: *mut ID3D11VideoProcessorEnumerator,
        pDesc: *const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC,
        ppVPOView: *mut *mut ID3D11VideoProcessorOutputView,
    ) -> HRESULT,
    fn CreateVideoProcessorEnumerator(
        pDesc: *const D3D11_VIDEO_PROCESSOR_CONTENT_DESC,
        ppEnum: *mut *mut ID3D11VideoProcessorEnumerator,
    ) -> HRESULT,
    fn GetVideoDecoderProfileCount() -> UINT,
    fn GetVideoDecoderProfile(
        Index: UINT,
        pDecoderProfile: *mut GUID,
    ) -> HRESULT,
    fn CheckVideoDecoderFormat(
        pDecoderProfile: *const GUID,
        Format: DXGI_FORMAT,
        pSupported: *mut BOOL,
    ) -> HRESULT,
    fn GetVideoDecoderConfigCount(
        pDesc: *const D3D11_VIDEO_DECODER_DESC,
        pCount: *mut UINT,
    ) -> HRESULT,
    fn GetVideoDecoderConfig(
        pDesc: *const D3D11_VIDEO_DECODER_DESC,
        Index: UINT,
        pConfig: *mut D3D11_VIDEO_DECODER_CONFIG,
    ) -> HRESULT,
    fn GetContentProtectionCaps(
        pCryptoType: *const GUID,
        pDecoderProfile: *const GUID,
        pCaps: *mut D3D11_VIDEO_CONTENT_PROTECTION_CAPS,
    ) -> HRESULT,
    fn CheckCryptoKeyExchange(
        pCryptoType: *const GUID,
        pDecoderProfile: *const GUID,
        Index: UINT,
        pKeyExchangeType: *mut GUID,
    ) -> HRESULT,
    fn SetPrivateData(
        guid: REFGUID,
        DataSize: UINT,
        pData: *const c_void,
    ) -> HRESULT,
    fn SetPrivateDataInterface(
        guid: REFGUID,
        pData: *const IUnknown,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xdb6f6ddb, 0xac77, 0x4e88, 0x82, 0x53, 0x81, 0x9d, 0xf9, 0xbb, 0xf1, 0x40)]
interface ID3D11Device(ID3D11DeviceVtbl): IUnknown(IUnknownVtbl) {
    fn CreateBuffer(
        pDesc: *const D3D11_BUFFER_DESC,
        pInitialData: *const D3D11_SUBRESOURCE_DATA,
        ppBuffer: *mut *mut ID3D11Buffer,
    ) -> HRESULT,
    fn CreateTexture1D(
        pDesc: *const D3D11_TEXTURE1D_DESC,
        pInitialData: *const D3D11_SUBRESOURCE_DATA,
        ppTexture1D: *mut *mut ID3D11Texture1D,
    ) -> HRESULT,
    fn CreateTexture2D(
        pDesc: *const D3D11_TEXTURE2D_DESC,
        pInitialData: *const D3D11_SUBRESOURCE_DATA,
        ppTexture2D: *mut *mut ID3D11Texture2D,
    ) -> HRESULT,
    fn CreateTexture3D(
        pDesc: *const D3D11_TEXTURE3D_DESC,
        pInitialData: *const D3D11_SUBRESOURCE_DATA,
        ppTexture3D: *mut *mut ID3D11Texture3D,
    ) -> HRESULT,
    fn CreateShaderResourceView(
        pResource: *mut ID3D11Resource,
        pDesc: *const D3D11_SHADER_RESOURCE_VIEW_DESC,
        ppSRView: *mut *mut ID3D11ShaderResourceView,
    ) -> HRESULT,
    fn CreateUnorderedAccessView(
        pResource: *mut ID3D11Resource,
        pDesc: *const D3D11_UNORDERED_ACCESS_VIEW_DESC,
        ppUAView: *mut *mut ID3D11UnorderedAccessView,
    ) -> HRESULT,
    fn CreateRenderTargetView(
        pResource: *mut ID3D11Resource,
        pDesc: *const D3D11_RENDER_TARGET_VIEW_DESC,
        ppRTView: *mut *mut ID3D11RenderTargetView,
    ) -> HRESULT,
    fn CreateDepthStencilView(
        pResource: *mut ID3D11Resource,
        pDesc: *const D3D11_DEPTH_STENCIL_VIEW_DESC,
        ppDepthStencilView: *mut *mut ID3D11DepthStencilView,
    ) -> HRESULT,
    fn CreateInputLayout(
        pInputElementDescs: *const D3D11_INPUT_ELEMENT_DESC,
        NumElements: UINT,
        pShaderBytecodeWithInputSignature: *const c_void,
        BytecodeLength: SIZE_T,
        ppInputLayout: *mut *mut ID3D11InputLayout,
    ) -> HRESULT,
    fn CreateVertexShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppVertexShader: *mut *mut ID3D11VertexShader,
    ) -> HRESULT,
    fn CreateGeometryShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppGeometryShader: *mut *mut ID3D11GeometryShader,
    ) -> HRESULT,
    fn CreateGeometryShaderWithStreamOutput(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pSODeclaration: *const D3D11_SO_DECLARATION_ENTRY,
        NumEntries: UINT,
        pBufferStrides: *const UINT,
        NumStrides: UINT,
        RasterizedStream: UINT,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppGeometryShader: *mut *mut ID3D11GeometryShader,
    ) -> HRESULT,
    fn CreatePixelShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppPixelShader: *mut *mut ID3D11PixelShader,
    ) -> HRESULT,
    fn CreateHullShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppHullShader: *mut *mut ID3D11HullShader,
    ) -> HRESULT,
    fn CreateDomainShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppDomainShader: *mut *mut ID3D11DomainShader,
    ) -> HRESULT,
    fn CreateComputeShader(
        pShaderBytecode: *const c_void,
        BytecodeLength: SIZE_T,
        pClassLinkage: *mut ID3D11ClassLinkage,
        ppComputeShader: *mut *mut ID3D11ComputeShader,
    ) -> HRESULT,
    fn CreateClassLinkage(
        ppLinkage: *mut *mut ID3D11ClassLinkage,
    ) -> HRESULT,
    fn CreateBlendState(
        pBlendStateDesc: *const D3D11_BLEND_DESC,
        ppBlendState: *mut *mut ID3D11BlendState,
    ) -> HRESULT,
    fn CreateDepthStencilState(
        pDepthStencilDesc: *const D3D11_DEPTH_STENCIL_DESC,
        ppDepthStencilState: *mut *mut ID3D11DepthStencilState,
    ) -> HRESULT,
    fn CreateRasterizerState(
        pRasterizerDesc: *const D3D11_RASTERIZER_DESC,
        ppRasterizerState: *mut *mut ID3D11RasterizerState,
    ) -> HRESULT,
    fn CreateSamplerState(
        pSamplerDesc: *const D3D11_SAMPLER_DESC,
        ppSamplerState: *mut *mut ID3D11SamplerState,
    ) -> HRESULT,
    fn CreateQuery(
        pQueryDesc: *const D3D11_QUERY_DESC,
        ppQuery: *mut *mut ID3D11Query,
    ) -> HRESULT,
    fn CreatePredicate(
        pPredicateDesc: *const D3D11_QUERY_DESC,
        ppPredicate: *mut *mut ID3D11Predicate,
    ) -> HRESULT,
    fn CreateCounter(
        pCounterDesc: *const D3D11_COUNTER_DESC,
        ppCounter: *mut *mut ID3D11Counter,
    ) -> HRESULT,
    fn CreateDeferredContext(
        ContextFlags: UINT,
        ppDeferredContext: *mut *mut ID3D11DeviceContext,
    ) -> HRESULT,
    fn OpenSharedResource(
        hResource: HANDLE,
        ReturnedInterface: REFIID,
        ppResource: *mut *mut c_void,
    ) -> HRESULT,
    fn CheckFormatSupport(
        Format: DXGI_FORMAT,
        pFormatSupport: *mut UINT,
    ) -> HRESULT,
    fn CheckMultisampleQualityLevels(
        Format: DXGI_FORMAT,
        SampleCount: UINT,
        pNumQualityLevels: *mut UINT,
    ) -> HRESULT,
    fn CheckCounterInfo(
        pCounterInfo: *mut D3D11_COUNTER_INFO,
    ) -> (),
    fn CheckCounter(
        pDesc: *const D3D11_COUNTER_DESC,
        pType: *mut D3D11_COUNTER_TYPE,
        pActiveCounters: *mut UINT,
        szName: LPSTR,
        pNameLength: *mut UINT,
        szUnits: LPSTR,
        pUnitsLength: *mut UINT,
        szDescription: LPSTR,
        pDescriptionLength: *mut UINT,
    ) -> HRESULT,
    fn CheckFeatureSupport(
        Feature: D3D11_FEATURE,
        pFeatureSupportData: *mut c_void,
        FeatureSupportDataSize: UINT,
    ) -> HRESULT,
    fn GetPrivateData(
        guid: REFGUID,
        pDataSize: *mut UINT,
        pData: *mut c_void,
    ) -> HRESULT,
    fn SetPrivateData(
        guid: REFGUID,
        DataSize: UINT,
        pData: *const c_void,
    ) -> HRESULT,
    fn SetPrivateDataInterface(
        guid: REFGUID,
        pData: *const IUnknown,
    ) -> HRESULT,
    fn GetFeatureLevel() -> D3D_FEATURE_LEVEL,
    fn GetCreationFlags() -> UINT,
    fn GetDeviceRemovedReason() -> HRESULT,
    fn GetImmediateContext(
        ppImmediateContext: *mut *mut ID3D11DeviceContext,
    ) -> (),
    fn SetExceptionMode(
        RaiseFlags: UINT,
    ) -> HRESULT,
    fn GetExceptionMode() -> UINT,
}}
ENUM!{enum D3D11_CREATE_DEVICE_FLAG {
    D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
    D3D11_CREATE_DEVICE_DEBUG = 0x2,
    D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
    D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
    D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
    D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
    D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
    D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
    D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800,
}}
pub const D3D11_SDK_VERSION: DWORD = 7;
#[inline]
pub fn D3D11CalcSubresource(MipSlice: UINT, ArraySlice: UINT, MipLevels: UINT) -> UINT {
    MipSlice + ArraySlice * MipLevels
}
extern "system" {
    pub fn D3D11CreateDevice(
        pAdapter: *mut IDXGIAdapter,
        DriverType: D3D_DRIVER_TYPE,
        Software: HMODULE,
        Flags: UINT,
        pFeatureLevels: *const D3D_FEATURE_LEVEL,
        FeatureLevels: UINT,
        SDKVersion: UINT,
        ppDevice: *mut *mut ID3D11Device,
        pFeatureLevel: *mut D3D_FEATURE_LEVEL,
        ppImmediateContext: *mut *mut ID3D11DeviceContext,
    ) -> HRESULT;
    pub fn D3D11CreateDeviceAndSwapChain(
        pAdapter: *mut IDXGIAdapter,
        DriverType: D3D_DRIVER_TYPE,
        Software: HMODULE,
        Flags: UINT,
        pFeatureLevels: *const D3D_FEATURE_LEVEL,
        FeatureLevels: UINT,
        SDKVersion: UINT,
        pSwapChainDesc: *const DXGI_SWAP_CHAIN_DESC,
        ppSwapChain: *mut *mut IDXGISwapChain,
        ppDevice: *mut *mut ID3D11Device,
        pFeatureLevel: *mut D3D_FEATURE_LEVEL,
        ppImmediateContext: *mut *mut ID3D11DeviceContext,
    ) -> HRESULT;
}
DEFINE_GUID!{IID_ID3D11DeviceChild,
    0x1841e5c8, 0x16b0, 0x489b, 0xbc, 0xc8, 0x44, 0xcf, 0xb0, 0xd5, 0xde, 0xae}
DEFINE_GUID!{IID_ID3D11DepthStencilState,
    0x03823efb, 0x8d8f, 0x4e1c, 0x9a, 0xa2, 0xf6, 0x4b, 0xb2, 0xcb, 0xfd, 0xf1}
DEFINE_GUID!{IID_ID3D11BlendState,
    0x75b68faa, 0x347d, 0x4159, 0x8f, 0x45, 0xa0, 0x64, 0x0f, 0x01, 0xcd, 0x9a}
DEFINE_GUID!{IID_ID3D11RasterizerState,
    0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5, 0x06, 0xfc, 0x04, 0x20, 0x0b, 0x6e, 0xe7}
DEFINE_GUID!{IID_ID3D11Resource,
    0xdc8e63f3, 0xd12b, 0x4952, 0xb4, 0x7b, 0x5e, 0x45, 0x02, 0x6a, 0x86, 0x2d}
DEFINE_GUID!{IID_ID3D11Buffer,
    0x48570b85, 0xd1ee, 0x4fcd, 0xa2, 0x50, 0xeb, 0x35, 0x07, 0x22, 0xb0, 0x37}
DEFINE_GUID!{IID_ID3D11Texture1D,
    0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4, 0xc8, 0x43, 0x9a, 0xf2, 0xef, 0x56, 0x4c}
DEFINE_GUID!{IID_ID3D11Texture2D,
    0x6f15aaf2, 0xd208, 0x4e89, 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c}
DEFINE_GUID!{IID_ID3D11Texture3D,
    0x037e866e, 0xf56d, 0x4357, 0xa8, 0xaf, 0x9d, 0xab, 0xbe, 0x6e, 0x25, 0x0e}
DEFINE_GUID!{IID_ID3D11View,
    0x839d1216, 0xbb2e, 0x412b, 0xb7, 0xf4, 0xa9, 0xdb, 0xeb, 0xe0, 0x8e, 0xd1}
DEFINE_GUID!{IID_ID3D11ShaderResourceView,
    0xb0e06fe0, 0x8192, 0x4e1a, 0xb1, 0xca, 0x36, 0xd7, 0x41, 0x47, 0x10, 0xb2}
DEFINE_GUID!{IID_ID3D11RenderTargetView,
    0xdfdba067, 0x0b8d, 0x4865, 0x87, 0x5b, 0xd7, 0xb4, 0x51, 0x6c, 0xc1, 0x64}
DEFINE_GUID!{IID_ID3D11DepthStencilView,
    0x9fdac92a, 0x1876, 0x48c3, 0xaf, 0xad, 0x25, 0xb9, 0x4f, 0x84, 0xa9, 0xb6}
DEFINE_GUID!{IID_ID3D11UnorderedAccessView,
    0x28acf509, 0x7f5c, 0x48f6, 0x86, 0x11, 0xf3, 0x16, 0x01, 0x0a, 0x63, 0x80}
DEFINE_GUID!{IID_ID3D11VertexShader,
    0x3b301d64, 0xd678, 0x4289, 0x88, 0x97, 0x22, 0xf8, 0x92, 0x8b, 0x72, 0xf3}
DEFINE_GUID!{IID_ID3D11HullShader,
    0x8e5c6061, 0x628a, 0x4c8e, 0x82, 0x64, 0xbb, 0xe4, 0x5c, 0xb3, 0xd5, 0xdd}
DEFINE_GUID!{IID_ID3D11DomainShader,
    0xf582c508, 0x0f36, 0x490c, 0x99, 0x77, 0x31, 0xee, 0xce, 0x26, 0x8c, 0xfa}
DEFINE_GUID!{IID_ID3D11GeometryShader,
    0x38325b96, 0xeffb, 0x4022, 0xba, 0x02, 0x2e, 0x79, 0x5b, 0x70, 0x27, 0x5c}
DEFINE_GUID!{IID_ID3D11PixelShader,
    0xea82e40d, 0x51dc, 0x4f33, 0x93, 0xd4, 0xdb, 0x7c, 0x91, 0x25, 0xae, 0x8c}
DEFINE_GUID!{IID_ID3D11ComputeShader,
    0x4f5b196e, 0xc2bd, 0x495e, 0xbd, 0x01, 0x1f, 0xde, 0xd3, 0x8e, 0x49, 0x69}
DEFINE_GUID!{IID_ID3D11InputLayout,
    0xe4819ddc, 0x4cf0, 0x4025, 0xbd, 0x26, 0x5d, 0xe8, 0x2a, 0x3e, 0x07, 0xb7}
DEFINE_GUID!{IID_ID3D11SamplerState,
    0xda6fea51, 0x564c, 0x4487, 0x98, 0x10, 0xf0, 0xd0, 0xf9, 0xb4, 0xe3, 0xa5}
DEFINE_GUID!{IID_ID3D11Asynchronous,
    0x4b35d0cd, 0x1e15, 0x4258, 0x9c, 0x98, 0x1b, 0x13, 0x33, 0xf6, 0xdd, 0x3b}
DEFINE_GUID!{IID_ID3D11Query,
    0xd6c00747, 0x87b7, 0x425e, 0xb8, 0x4d, 0x44, 0xd1, 0x08, 0x56, 0x0a, 0xfd}
DEFINE_GUID!{IID_ID3D11Predicate,
    0x9eb576dd, 0x9f77, 0x4d86, 0x81, 0xaa, 0x8b, 0xab, 0x5f, 0xe4, 0x90, 0xe2}
DEFINE_GUID!{IID_ID3D11Counter,
    0x6e8c49fb, 0xa371, 0x4770, 0xb4, 0x40, 0x29, 0x08, 0x60, 0x22, 0xb7, 0x41}
DEFINE_GUID!{IID_ID3D11ClassInstance,
    0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94, 0x36, 0x86, 0x62, 0xa6, 0x57, 0x97, 0xcb}
DEFINE_GUID!{IID_ID3D11ClassLinkage,
    0xddf57cba, 0x9543, 0x46e4, 0xa1, 0x2b, 0xf2, 0x07, 0xa0, 0xfe, 0x7f, 0xed}
DEFINE_GUID!{IID_ID3D11CommandList,
    0xa24bc4d1, 0x769e, 0x43f7, 0x80, 0x13, 0x98, 0xff, 0x56, 0x6c, 0x18, 0xe2}
DEFINE_GUID!{IID_ID3D11DeviceContext,
    0xc0bfa96c, 0xe089, 0x44fb, 0x8e, 0xaf, 0x26, 0xf8, 0x79, 0x61, 0x90, 0xda}
DEFINE_GUID!{IID_ID3D11VideoDecoder,
    0x3c9c5b51, 0x995d, 0x48d1, 0x9b, 0x8d, 0xfa, 0x5c, 0xae, 0xde, 0xd6, 0x5c}
DEFINE_GUID!{IID_ID3D11VideoProcessorEnumerator,
    0x31627037, 0x53ab, 0x4200, 0x90, 0x61, 0x05, 0xfa, 0xa9, 0xab, 0x45, 0xf9}
DEFINE_GUID!{IID_ID3D11VideoProcessor,
    0x1d7b0652, 0x185f, 0x41c6, 0x85, 0xce, 0x0c, 0x5b, 0xe3, 0xd4, 0xae, 0x6c}
DEFINE_GUID!{IID_ID3D11AuthenticatedChannel,
    0x3015a308, 0xdcbd, 0x47aa, 0xa7, 0x47, 0x19, 0x24, 0x86, 0xd1, 0x4d, 0x4a}
DEFINE_GUID!{IID_ID3D11CryptoSession,
    0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3, 0x9d, 0xd5, 0xc8, 0x65, 0x84, 0x57, 0x20}
DEFINE_GUID!{IID_ID3D11VideoDecoderOutputView,
    0xc2931aea, 0x2a85, 0x4f20, 0x86, 0x0f, 0xfb, 0xa1, 0xfd, 0x25, 0x6e, 0x18}
DEFINE_GUID!{IID_ID3D11VideoProcessorInputView,
    0x11ec5a5f, 0x51dc, 0x4945, 0xab, 0x34, 0x6e, 0x8c, 0x21, 0x30, 0x0e, 0xa5}
DEFINE_GUID!{IID_ID3D11VideoProcessorOutputView,
    0xa048285e, 0x25a9, 0x4527, 0xbd, 0x93, 0xd6, 0x8b, 0x68, 0xc4, 0x42, 0x54}
DEFINE_GUID!{IID_ID3D11VideoContext,
    0x61f21c45, 0x3c0e, 0x4a74, 0x9c, 0xea, 0x67, 0x10, 0x0d, 0x9a, 0xd5, 0xe4}
DEFINE_GUID!{IID_ID3D11VideoDevice,
    0x10ec4d5b, 0x975a, 0x4689, 0xb9, 0xe4, 0xd0, 0xaa, 0xc3, 0x0f, 0xe3, 0x33}
DEFINE_GUID!{IID_ID3D11Device,
    0xdb6f6ddb, 0xac77, 0x4e88, 0x82, 0x53, 0x81, 0x9d, 0xf9, 0xbb, 0xf1, 0x40}
