10.0.26100.7705 → 10.0.28000.1-rtm
178
Structs added
36
Structs removed
16
Structs modified
27
Functions added
34
Functions removed
3
Functions changed
Structs Added
178D3D12_FEATURE_DATA_TIGHT_ALIGNMENT
struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT { // size: 4 bytes, align: 4
D3D12_TIGHT_ALIGNMENT_TIER SupportTier; // offset: 0, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS { // size: 120 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; // offset: 64, size: 768 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 832, size: 32 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; // offset: 864, size: 32 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags; // offset: 896, size: 32 bits
UINT MapSourcePreferenceRanking; // offset: 928, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1 { // size: 96 bytes, align: 8
D3D12_VIDEO_ENCODER_HEAP_DESC1 HeapDesc; // offset: 0, size: 576 bits
BOOL IsSupported; // offset: 576, size: 32 bits
UINT64 MemoryPoolL0Size; // offset: 640, size: 64 bits
UINT64 MemoryPoolL1Size; // offset: 704, size: 64 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH { // size: 144 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; // offset: 64, size: 768 bits
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; // offset: 832, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 864, size: 32 bits
BOOL BidirectionalRefFrameEnabled; // offset: 896, size: 32 bits
D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; // offset: 928, size: 32 bits
UINT MaxMotionHints; // offset: 960, size: 32 bits
UINT MinDeviation; // offset: 992, size: 32 bits
UINT MaxDeviation; // offset: 1024, size: 32 bits
UINT MapSourcePreferenceRanking; // offset: 1056, size: 32 bits
D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport; // offset: 1088, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT { // size: 120 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; // offset: 64, size: 768 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 832, size: 32 bits
BOOL IsSupported; // offset: 864, size: 32 bits
UINT MapSourcePreferenceRanking; // offset: 896, size: 32 bits
UINT BlockSize; // offset: 928, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS { // size: 144 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC Codec; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // offset: 64, size: 128 bits
D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // offset: 192, size: 128 bits
DXGI_FORMAT InputFormat; // offset: 320, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; // offset: 352, size: 64 bits
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // offset: 448, size: 128 bits
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; // offset: 576, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; // offset: 640, size: 128 bits
D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; // offset: 768, size: 64 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; // offset: 832, size: 96 bits
D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; // offset: 928, size: 128 bits
UINT Pow2DownscaleFactor; // offset: 1056, size: 32 bits
D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; // offset: 1088, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS { // size: 8 bytes, align: 4
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags; // offset: 0, size: 32 bits
UINT MapSourcePreferenceRanking; // offset: 32, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS { // size: 4 bytes, align: 4
D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; // offset: 0, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 { // size: 56 bytes, align: 4
UINT MaxSubregionsNumber; // offset: 0, size: 32 bits
UINT MaxIntraRefreshFrameDuration; // offset: 32, size: 32 bits
UINT SubregionBlockPixelsSize; // offset: 64, size: 32 bits
UINT QPMapRegionPixelsSize; // offset: 96, size: 32 bits
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap; // offset: 128, size: 32 bits
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions; // offset: 160, size: 64 bits
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch; // offset: 224, size: 192 bits
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS FrameAnalysis; // offset: 416, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH { // size: 24 bytes, align: 4
UINT MaxMotionHints; // offset: 0, size: 32 bits
UINT MinDeviation; // offset: 32, size: 32 bits
UINT MaxDeviation; // offset: 64, size: 32 bits
UINT MapSourcePreferenceRanking; // offset: 96, size: 32 bits
D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags; // offset: 128, size: 32 bits
D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; // offset: 160, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP { // size: 4 bytes, align: 4
UINT MapSourcePreferenceRanking; // offset: 0, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT { // size: 120 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; // offset: 64, size: 768 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; // offset: 832, size: 32 bits
BOOL IsSupported; // offset: 864, size: 32 bits
UINT64 MaxResolvedBufferAllocationSize; // offset: 896, size: 64 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 { // size: 112 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC Codec; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // offset: 64, size: 128 bits
DXGI_FORMAT InputFormat; // offset: 192, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; // offset: 224, size: 64 bits
BOOL IsSupported; // offset: 288, size: 32 bits
UINT CompressedBitstreamBufferAccessAlignment; // offset: 320, size: 32 bits
UINT EncoderMetadataBufferAccessAlignment; // offset: 352, size: 32 bits
UINT MaxEncoderOutputMetadataBufferSize; // offset: 384, size: 32 bits
D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; // offset: 416, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // offset: 448, size: 128 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions; // offset: 576, size: 64 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions; // offset: 640, size: 64 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions; // offset: 704, size: 64 bits
UINT EncoderOutputMetadataFramePSNRComponentsNumber; // offset: 768, size: 32 bits
UINT EncoderOutputMetadataSubregionsPSNRComponentsNumber; // offset: 800, size: 32 bits
UINT EncoderOutputMetadataSubregionsPSNRResolvedMetadataBufferSize; // offset: 832, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2
struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 { // size: 224 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC Codec; // offset: 32, size: 32 bits
DXGI_FORMAT InputFormat; // offset: 64, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // offset: 128, size: 128 bits
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; // offset: 256, size: 128 bits
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; // offset: 384, size: 256 bits
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; // offset: 640, size: 32 bits
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; // offset: 672, size: 32 bits
UINT ResolutionsListCount; // offset: 704, size: 32 bits
const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC * pResolutionList; // offset: 768, size: 64 bits
UINT MaxReferenceFramesInDPB; // offset: 832, size: 32 bits
D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; // offset: 864, size: 32 bits
D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; // offset: 896, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; // offset: 960, size: 128 bits
D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; // offset: 1088, size: 128 bits
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 * pResolutionDependentSupport; // offset: 1216, size: 64 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; // offset: 1280, size: 128 bits
UINT MaxQualityVsSpeed; // offset: 1408, size: 32 bits
D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; // offset: 1440, size: 64 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; // offset: 1504, size: 96 bits
D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; // offset: 1600, size: 128 bits
D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION FrameAnalysis; // offset: 1728, size: 64 bits
};
D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE
struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE { // size: 16 bytes, align: 8
D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; // offset: 0, size: 128 bits
};
D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE
struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE { // size: 16 bytes, align: 8
D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; // offset: 0, size: 128 bits
};
D3D12_SERIALIZED_ROOT_SIGNATURE_DESC
struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC { // size: 16 bytes, align: 8
const void * pSerializedBlob; // offset: 0, size: 64 bits
SIZE_T SerializedBlobSizeInBytes; // offset: 64, size: 64 bits
};
D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1
struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 { // size: 64 bytes, align: 8
D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer; // offset: 64, size: 128 bits
D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers; // offset: 64, size: 448 bits
};
D3D12_VIDEO_ENCODER_DIRTY_REGIONS
struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS { // size: 16 bytes, align: 8
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 0, size: 32 bits
ID3D12Resource * pOpaqueLayoutBuffer; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO * pCPUBuffer; // offset: 64, size: 64 bits
};
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION
struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION { // size: 12 bytes, align: 4
BOOL Enabled; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; // offset: 64, size: 32 bits
};
D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1
struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 { // size: 248 bytes, align: 8
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; // offset: 0, size: 768 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc; // offset: 768, size: 1024 bits
ID3D12Resource * pInputFrame; // offset: 1792, size: 64 bits
UINT InputFrameSubresource; // offset: 1856, size: 32 bits
UINT CurrentFrameBitstreamMetadataSize; // offset: 1888, size: 32 bits
D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; // offset: 1920, size: 32 bits
};
D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1
struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 { // size: 112 bytes, align: 8
D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream; // offset: 0, size: 512 bits
D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; // offset: 512, size: 128 bits
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; // offset: 640, size: 128 bits
D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE FrameAnalysisReconstructedPicture; // offset: 768, size: 128 bits
};
D3D12_VIDEO_ENCODER_FRAME_ANALYSIS
struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS { // size: 40 bytes, align: 8
ID3D12Resource * pDownscaledFrame; // offset: 0, size: 64 bits
UINT64 Subresource; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODE_REFERENCE_FRAMES DownscaledReferences; // offset: 128, size: 192 bits
};
D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION
struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION { // size: 8 bytes, align: 4
BOOL Enabled; // offset: 0, size: 32 bits
UINT Pow2DownscaleFactor; // offset: 32, size: 32 bits
};
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG
struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG { // size: 8 bytes, align: 4
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; // offset: 0, size: 32 bits
UINT SearchDeviationLimit; // offset: 32, size: 32 bits
};
D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS
struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS { // size: 16 bytes, align: 8
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 0, size: 32 bits
ID3D12Resource * pOpaqueLayoutBuffer; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_MOVEREGION_INFO * pCPUBuffer; // offset: 64, size: 64 bits
};
D3D12_VIDEO_ENCODER_HEAP_DESC1
struct D3D12_VIDEO_ENCODER_HEAP_DESC1 { // size: 72 bytes, align: 8
UINT NodeMask; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC EncodeCodec; // offset: 64, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; // offset: 128, size: 128 bits
D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; // offset: 256, size: 128 bits
UINT ResolutionsListCount; // offset: 384, size: 32 bits
const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC * pResolutionList; // offset: 448, size: 64 bits
UINT Pow2DownscaleFactor; // offset: 512, size: 32 bits
};
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA
struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA { // size: 80 bytes, align: 8
D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions; // offset: 64, size: 192 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors; // offset: 64, size: 576 bits
};
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS
struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS { // size: 24 bytes, align: 8
BOOL FullFrameIdentical; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; // offset: 32, size: 32 bits
ID3D12Resource * pDirtyRegionsMap; // offset: 64, size: 64 bits
UINT SourceDPBFrameReference; // offset: 128, size: 32 bits
};
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS
struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS { // size: 72 bytes, align: 8
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; // offset: 0, size: 64 bits
UINT NumHintsPerPixel; // offset: 64, size: 32 bits
ID3D12Resource ** ppMotionVectorMaps; // offset: 128, size: 64 bits
UINT * pMotionVectorMapsSubresources; // offset: 192, size: 64 bits
ID3D12Resource ** ppMotionVectorMapsMetadata; // offset: 256, size: 64 bits
UINT * pMotionVectorMapsMetadataSubresources; // offset: 320, size: 64 bits
D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; // offset: 384, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlConfiguration; // offset: 448, size: 128 bits
};
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX
struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX { // size: 8 bytes, align: 8
ID3D12Resource * pQuantizationMap; // offset: 0, size: 64 bits
};
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO
struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO { // size: 96 bytes, align: 8
D3D12_VIDEO_ENCODER_CODEC Codec; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // offset: 64, size: 128 bits
D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // offset: 192, size: 128 bits
DXGI_FORMAT InputFormat; // offset: 320, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; // offset: 352, size: 64 bits
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // offset: 448, size: 128 bits
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; // offset: 576, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; // offset: 640, size: 128 bits
};
D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION
struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION { // size: 16 bytes, align: 4
BOOL Enabled; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; // offset: 64, size: 32 bits
BOOL BidirectionalRefFrameEnabled; // offset: 96, size: 32 bits
};
D3D12_VIDEO_ENCODER_MOVEREGION_INFO
struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO { // size: 40 bytes, align: 8
UINT NumMoveRegions; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_MOVE_RECT * pMoveRegions; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; // offset: 128, size: 64 bits
UINT SourceDPBFrameReference; // offset: 192, size: 32 bits
D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; // offset: 224, size: 32 bits
D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags; // offset: 256, size: 32 bits
};
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1
struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 { // size: 16 bytes, align: 8
UINT DataSize; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 * pH264PicData; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2 * pHEVCPicData; // offset: 64, size: 64 bits
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA * pAV1PicData; // offset: 64, size: 64 bits
};
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1
struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 { // size: 128 bytes, align: 8
UINT IntraRefreshFrameIndex; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; // offset: 32, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlCodecData; // offset: 64, size: 128 bits
D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; // offset: 192, size: 192 bits
D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors; // offset: 384, size: 128 bits
D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects; // offset: 512, size: 128 bits
D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap; // offset: 640, size: 64 bits
D3D12_VIDEO_ENCODER_FRAME_ANALYSIS FrameAnalysis; // offset: 704, size: 320 bits
};
D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION
struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION { // size: 8 bytes, align: 4
BOOL Enabled; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; // offset: 32, size: 32 bits
};
D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP
struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP { // size: 8 bytes, align: 8
ID3D12Resource * pOpaqueQuantizationMap; // offset: 0, size: 64 bits
};
D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS
struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS { // size: 176 bytes, align: 8
D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; // offset: 0, size: 768 bits
D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData; // offset: 768, size: 640 bits
};
D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS
struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS { // size: 8 bytes, align: 8
ID3D12Resource * pOpaqueLayoutBuffer; // offset: 0, size: 64 bits
};
D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1
struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 { // size: 80 bytes, align: 8
D3D12_VIDEO_ENCODER_CODEC EncoderCodec; // offset: 0, size: 32 bits
D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; // offset: 64, size: 128 bits
DXGI_FORMAT EncoderInputFormat; // offset: 192, size: 32 bits
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; // offset: 224, size: 64 bits
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; // offset: 320, size: 128 bits
D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; // offset: 448, size: 32 bits
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // offset: 512, size: 128 bits
};
D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1
struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 { // size: 72 bytes, align: 8
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; // offset: 0, size: 128 bits
ID3D12Resource * pOutputQPMap; // offset: 128, size: 64 bits
ID3D12Resource * pOutputSATDMap; // offset: 192, size: 64 bits
ID3D12Resource * pOutputBitAllocationMap; // offset: 256, size: 64 bits
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedFramePSNRData; // offset: 320, size: 128 bits
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedSubregionsPSNRData; // offset: 448, size: 128 bits
};
D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT
struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT { // size: 12 bytes, align: 4
float PSNRY; // offset: 0, size: 32 bits
float PSNRU; // offset: 32, size: 32 bits
float PSNRV; // offset: 64, size: 32 bits
};
D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM
struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM { // size: 56 bytes, align: 8
D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode; // offset: 0, size: 32 bits
UINT ExpectedSubregionCount; // offset: 32, size: 32 bits
UINT64 * pSubregionBitstreamsBaseOffsets; // offset: 64, size: 64 bits
ID3D12Resource ** ppSubregionBitstreams; // offset: 128, size: 64 bits
ID3D12Resource ** ppSubregionSizes; // offset: 192, size: 64 bits
ID3D12Resource ** ppSubregionOffsets; // offset: 256, size: 64 bits
ID3D12Fence ** ppSubregionFences; // offset: 320, size: 64 bits
UINT64 * pSubregionFenceValues; // offset: 384, size: 64 bits
};
DXGI_SWAP_CHAIN_DESC2
struct DXGI_SWAP_CHAIN_DESC2 { // size: 52 bytes, align: 4
UINT Width; // offset: 0, size: 32 bits
UINT Height; // offset: 32, size: 32 bits
DXGI_FORMAT Format; // offset: 64, size: 32 bits
BOOL Stereo; // offset: 96, size: 32 bits
DXGI_SAMPLE_DESC SampleDesc; // offset: 128, size: 64 bits
DXGI_USAGE BufferUsage; // offset: 192, size: 32 bits
UINT BufferCount; // offset: 224, size: 32 bits
DXGI_SCALING Scaling; // offset: 256, size: 32 bits
DXGI_SWAP_EFFECT SwapEffect; // offset: 288, size: 32 bits
DXGI_ALPHA_MODE AlphaMode; // offset: 320, size: 32 bits
UINT Flags; // offset: 352, size: 32 bits
DXGI_COLOR_SPACE_TYPE ColorSpace; // offset: 384, size: 32 bits
};
ID3D12PipelineState1
struct ID3D12PipelineState1 { // size: 8 bytes, align: 8
struct ID3D12PipelineState1Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (10)
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3D12PipelineState1 *) AddRef;
ULONG (*)(ID3D12PipelineState1 *) Release;
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(ID3D12PipelineState1 *, LPCWSTR) SetName;
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) GetDevice;
HRESULT (*)(ID3D12PipelineState1 *, ID3DBlob **) GetCachedBlob;
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) GetRootSignature;
ID3D12PipelineState1Vtbl
struct ID3D12PipelineState1Vtbl { // size: 80 bytes, align: 8
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3D12PipelineState1 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3D12PipelineState1 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 256, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 320, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, LPCWSTR) SetName; // offset: 384, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) GetDevice; // offset: 448, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, ID3DBlob **) GetCachedBlob; // offset: 512, size: 64 bits
HRESULT (*)(ID3D12PipelineState1 *, const IID *const, void **) GetRootSignature; // offset: 576, size: 64 bits
};
ID3D12StateObjectProperties2
struct ID3D12StateObjectProperties2 { // size: 8 bytes, align: 8
struct ID3D12StateObjectProperties2Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (10)
HRESULT (*)(ID3D12StateObjectProperties2 *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3D12StateObjectProperties2 *) AddRef;
ULONG (*)(ID3D12StateObjectProperties2 *) Release;
void *(*)(ID3D12StateObjectProperties2 *, LPCWSTR) GetShaderIdentifier;
UINT64 (*)(ID3D12StateObjectProperties2 *, LPCWSTR) GetShaderStackSize;
UINT64 (*)(ID3D12StateObjectProperties2 *) GetPipelineStackSize;
void (*)(ID3D12StateObjectProperties2 *, UINT64) SetPipelineStackSize;
D3D12_PROGRAM_IDENTIFIER *(*)(ID3D12StateObjectProperties2 *, D3D12_PROGRAM_IDENTIFIER *, LPCWSTR) GetProgramIdentifier;
HRESULT (*)(ID3D12StateObjectProperties2 *, LPCWSTR, const IID *const, void **) GetGlobalRootSignatureForProgram;
HRESULT (*)(ID3D12StateObjectProperties2 *, LPCWSTR, const IID *const, void **) GetGlobalRootSignatureForShader;
ID3D12StateObjectProperties2Vtbl
struct ID3D12StateObjectProperties2Vtbl { // size: 80 bytes, align: 8
HRESULT (*)(ID3D12StateObjectProperties2 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3D12StateObjectProperties2 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3D12StateObjectProperties2 *) Release; // offset: 128, size: 64 bits
void *(*)(ID3D12StateObjectProperties2 *, LPCWSTR) GetShaderIdentifier; // offset: 192, size: 64 bits
UINT64 (*)(ID3D12StateObjectProperties2 *, LPCWSTR) GetShaderStackSize; // offset: 256, size: 64 bits
UINT64 (*)(ID3D12StateObjectProperties2 *) GetPipelineStackSize; // offset: 320, size: 64 bits
void (*)(ID3D12StateObjectProperties2 *, UINT64) SetPipelineStackSize; // offset: 384, size: 64 bits
D3D12_PROGRAM_IDENTIFIER *(*)(ID3D12StateObjectProperties2 *, D3D12_PROGRAM_IDENTIFIER *, LPCWSTR) GetProgramIdentifier; // offset: 448, size: 64 bits
HRESULT (*)(ID3D12StateObjectProperties2 *, LPCWSTR, const IID *const, void **) GetGlobalRootSignatureForProgram; // offset: 512, size: 64 bits
HRESULT (*)(ID3D12StateObjectProperties2 *, LPCWSTR, const IID *const, void **) GetGlobalRootSignatureForShader; // offset: 576, size: 64 bits
};
ID3D12VideoDevice4
struct ID3D12VideoDevice4 { // size: 8 bytes, align: 8
struct ID3D12VideoDevice4Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (17)
HRESULT (*)(ID3D12VideoDevice4 *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3D12VideoDevice4 *) AddRef;
ULONG (*)(ID3D12VideoDevice4 *) Release;
HRESULT (*)(ID3D12VideoDevice4 *, D3D12_FEATURE_VIDEO, void *, UINT) CheckFeatureSupport;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_DESC *, const IID *const, void **) CreateVideoDecoder;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_HEAP_DESC *, const IID *const, void **) CreateVideoDecoderHeap;
HRESULT (*)(ID3D12VideoDevice4 *, UINT, const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *, UINT, const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *, const IID *const, void **) CreateVideoProcessor;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoMotionEstimator;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoMotionVectorHeap;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoDecoder1;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_HEAP_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoDecoderHeap1;
HRESULT (*)(ID3D12VideoDevice4 *, UINT, const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *, UINT, const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoProcessor1;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_EXTENSION_COMMAND_DESC *, const void *, SIZE_T, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoExtensionCommand;
HRESULT (*)(ID3D12VideoDevice4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T, void *, SIZE_T) ExecuteExtensionCommand;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_DESC *, const IID *const, void **) CreateVideoEncoder;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_HEAP_DESC *, const IID *const, void **) CreateVideoEncoderHeap;
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_HEAP_DESC1 *, const IID *const, void **) CreateVideoEncoderHeap1;
ID3D12VideoDevice4Vtbl
struct ID3D12VideoDevice4Vtbl { // size: 136 bytes, align: 8
HRESULT (*)(ID3D12VideoDevice4 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3D12VideoDevice4 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3D12VideoDevice4 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, D3D12_FEATURE_VIDEO, void *, UINT) CheckFeatureSupport; // offset: 192, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_DESC *, const IID *const, void **) CreateVideoDecoder; // offset: 256, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_HEAP_DESC *, const IID *const, void **) CreateVideoDecoderHeap; // offset: 320, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, UINT, const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *, UINT, const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *, const IID *const, void **) CreateVideoProcessor; // offset: 384, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoMotionEstimator; // offset: 448, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoMotionVectorHeap; // offset: 512, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoDecoder1; // offset: 576, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_DECODER_HEAP_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoDecoderHeap1; // offset: 640, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, UINT, const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *, UINT, const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoProcessor1; // offset: 704, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_EXTENSION_COMMAND_DESC *, const void *, SIZE_T, ID3D12ProtectedResourceSession *, const IID *const, void **) CreateVideoExtensionCommand; // offset: 768, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T, void *, SIZE_T) ExecuteExtensionCommand; // offset: 832, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_DESC *, const IID *const, void **) CreateVideoEncoder; // offset: 896, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_HEAP_DESC *, const IID *const, void **) CreateVideoEncoderHeap; // offset: 960, size: 64 bits
HRESULT (*)(ID3D12VideoDevice4 *, const D3D12_VIDEO_ENCODER_HEAP_DESC1 *, const IID *const, void **) CreateVideoEncoderHeap1; // offset: 1024, size: 64 bits
};
ID3D12VideoEncodeCommandList4
struct ID3D12VideoEncodeCommandList4 { // size: 8 bytes, align: 8
struct ID3D12VideoEncodeCommandList4Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (33)
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3D12VideoEncodeCommandList4 *) AddRef;
ULONG (*)(ID3D12VideoEncodeCommandList4 *) Release;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, LPCWSTR) SetName;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const IID *const, void **) GetDevice;
D3D12_COMMAND_LIST_TYPE (*)(ID3D12VideoEncodeCommandList4 *) GetType;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *) Close;
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, ID3D12CommandAllocator *) Reset;
void (*)(ID3D12VideoEncodeCommandList4 *) ClearState;
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const D3D12_RESOURCE_BARRIER *) ResourceBarrier;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12Resource *, const D3D12_DISCARD_REGION *) DiscardResource;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT) BeginQuery;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT) EndQuery;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT, UINT, ID3D12Resource *, UINT64) ResolveQueryData;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12Resource *, UINT64, D3D12_PREDICATION_OP) SetPredication;
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const void *, UINT) SetMarker;
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const void *, UINT) BeginEvent;
void (*)(ID3D12VideoEncodeCommandList4 *) EndEvent;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoMotionEstimator *, const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *, const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *) EstimateMotion;
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *, const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *) ResolveMotionVectorHeap;
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *, const D3D12_WRITEBUFFERIMMEDIATE_MODE *) WriteBufferImmediate;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12ProtectedResourceSession *) SetProtectedResourceSession;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T) InitializeExtensionCommand;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T) ExecuteExtensionCommand;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoEncoder *, ID3D12VideoEncoderHeap *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *) EncodeFrame;
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *) ResolveEncoderOutputMetadata;
void (*)(ID3D12VideoEncodeCommandList4 *, UINT32, const D3D12_BARRIER_GROUP *) Barrier;
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoEncoder *, ID3D12VideoEncoderHeap1 *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *) EncodeFrame1;
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *) ResolveEncoderOutputMetadata1;
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *) ResolveInputParamLayout;
ID3D12VideoEncodeCommandList4Vtbl
struct ID3D12VideoEncodeCommandList4Vtbl { // size: 264 bytes, align: 8
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3D12VideoEncodeCommandList4 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3D12VideoEncodeCommandList4 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 256, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 320, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, LPCWSTR) SetName; // offset: 384, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, const IID *const, void **) GetDevice; // offset: 448, size: 64 bits
D3D12_COMMAND_LIST_TYPE (*)(ID3D12VideoEncodeCommandList4 *) GetType; // offset: 512, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *) Close; // offset: 576, size: 64 bits
HRESULT (*)(ID3D12VideoEncodeCommandList4 *, ID3D12CommandAllocator *) Reset; // offset: 640, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *) ClearState; // offset: 704, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const D3D12_RESOURCE_BARRIER *) ResourceBarrier; // offset: 768, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12Resource *, const D3D12_DISCARD_REGION *) DiscardResource; // offset: 832, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT) BeginQuery; // offset: 896, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT) EndQuery; // offset: 960, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12QueryHeap *, D3D12_QUERY_TYPE, UINT, UINT, ID3D12Resource *, UINT64) ResolveQueryData; // offset: 1024, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12Resource *, UINT64, D3D12_PREDICATION_OP) SetPredication; // offset: 1088, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const void *, UINT) SetMarker; // offset: 1152, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const void *, UINT) BeginEvent; // offset: 1216, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *) EndEvent; // offset: 1280, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoMotionEstimator *, const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *, const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *) EstimateMotion; // offset: 1344, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *, const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *) ResolveMotionVectorHeap; // offset: 1408, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, UINT, const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *, const D3D12_WRITEBUFFERIMMEDIATE_MODE *) WriteBufferImmediate; // offset: 1472, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12ProtectedResourceSession *) SetProtectedResourceSession; // offset: 1536, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T) InitializeExtensionCommand; // offset: 1600, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoExtensionCommand *, const void *, SIZE_T) ExecuteExtensionCommand; // offset: 1664, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoEncoder *, ID3D12VideoEncoderHeap *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *) EncodeFrame; // offset: 1728, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *) ResolveEncoderOutputMetadata; // offset: 1792, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, UINT32, const D3D12_BARRIER_GROUP *) Barrier; // offset: 1856, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, ID3D12VideoEncoder *, ID3D12VideoEncoderHeap1 *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *, const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *) EncodeFrame1; // offset: 1920, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *, const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *) ResolveEncoderOutputMetadata1; // offset: 1984, size: 64 bits
void (*)(ID3D12VideoEncodeCommandList4 *, const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *, const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *) ResolveInputParamLayout; // offset: 2048, size: 64 bits
};
ID3D12VideoEncoderHeap1
struct ID3D12VideoEncoderHeap1 { // size: 8 bytes, align: 8
struct ID3D12VideoEncoderHeap1Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (16)
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3D12VideoEncoderHeap1 *) AddRef;
ULONG (*)(ID3D12VideoEncoderHeap1 *) Release;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, LPCWSTR) SetName;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const IID *const, void **) GetDevice;
UINT (*)(ID3D12VideoEncoderHeap1 *) GetNodeMask;
D3D12_VIDEO_ENCODER_HEAP_FLAGS (*)(ID3D12VideoEncoderHeap1 *) GetEncoderHeapFlags;
D3D12_VIDEO_ENCODER_CODEC (*)(ID3D12VideoEncoderHeap1 *) GetCodec;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, D3D12_VIDEO_ENCODER_PROFILE_DESC) GetCodecProfile;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, D3D12_VIDEO_ENCODER_LEVEL_SETTING) GetCodecLevel;
UINT (*)(ID3D12VideoEncoderHeap1 *) GetResolutionListCount;
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const UINT, D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *) GetResolutionList;
UINT (*)(ID3D12VideoEncoderHeap1 *) GetPow2DownscaleFactor;
ID3D12VideoEncoderHeap1Vtbl
struct ID3D12VideoEncoderHeap1Vtbl { // size: 128 bytes, align: 8
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3D12VideoEncoderHeap1 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3D12VideoEncoderHeap1 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 256, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 320, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, LPCWSTR) SetName; // offset: 384, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const IID *const, void **) GetDevice; // offset: 448, size: 64 bits
UINT (*)(ID3D12VideoEncoderHeap1 *) GetNodeMask; // offset: 512, size: 64 bits
D3D12_VIDEO_ENCODER_HEAP_FLAGS (*)(ID3D12VideoEncoderHeap1 *) GetEncoderHeapFlags; // offset: 576, size: 64 bits
D3D12_VIDEO_ENCODER_CODEC (*)(ID3D12VideoEncoderHeap1 *) GetCodec; // offset: 640, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, D3D12_VIDEO_ENCODER_PROFILE_DESC) GetCodecProfile; // offset: 704, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, D3D12_VIDEO_ENCODER_LEVEL_SETTING) GetCodecLevel; // offset: 768, size: 64 bits
UINT (*)(ID3D12VideoEncoderHeap1 *) GetResolutionListCount; // offset: 832, size: 64 bits
HRESULT (*)(ID3D12VideoEncoderHeap1 *, const UINT, D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *) GetResolutionList; // offset: 896, size: 64 bits
UINT (*)(ID3D12VideoEncoderHeap1 *) GetPow2DownscaleFactor; // offset: 960, size: 64 bits
};
IDXGIAdapter5
struct IDXGIAdapter5 { // size: 8 bytes, align: 8
struct IDXGIAdapter5Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (22)
HRESULT (*)(IDXGIAdapter5 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDXGIAdapter5 *) AddRef;
ULONG (*)(IDXGIAdapter5 *) Release;
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(IDXGIAdapter5 *, const IID *const, void **) GetParent;
HRESULT (*)(IDXGIAdapter5 *, UINT, IDXGIOutput **) EnumOutputs;
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC *) GetDesc;
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, int *) CheckInterfaceSupport;
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC1 *) GetDesc1;
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC2 *) GetDesc2;
HRESULT (*)(IDXGIAdapter5 *, HANDLE, DWORD *) RegisterHardwareContentProtectionTeardownStatusEvent;
void (*)(IDXGIAdapter5 *, DWORD) UnregisterHardwareContentProtectionTeardownStatus;
HRESULT (*)(IDXGIAdapter5 *, UINT, DXGI_MEMORY_SEGMENT_GROUP, DXGI_QUERY_VIDEO_MEMORY_INFO *) QueryVideoMemoryInfo;
HRESULT (*)(IDXGIAdapter5 *, UINT, DXGI_MEMORY_SEGMENT_GROUP, UINT64) SetVideoMemoryReservation;
HRESULT (*)(IDXGIAdapter5 *, HANDLE, DWORD *) RegisterVideoMemoryBudgetChangeNotificationEvent;
void (*)(IDXGIAdapter5 *, DWORD) UnregisterVideoMemoryBudgetChangeNotification;
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC3 *) GetDesc3;
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC4 *) GetDesc4;
HRESULT (*)(IDXGIAdapter5 *, DXGI_SINGLE_ADAPTER_HYBRID_MODE *) GetSingleAdapterHybridMode;
HRESULT (*)(IDXGIAdapter5 *, DXGI_SINGLE_ADAPTER_HYBRID_MODE) SetSingleAdapterHybridMode;
IDXGIAdapter5Vtbl
struct IDXGIAdapter5Vtbl { // size: 176 bytes, align: 8
HRESULT (*)(IDXGIAdapter5 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDXGIAdapter5 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDXGIAdapter5 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 256, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 320, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, const IID *const, void **) GetParent; // offset: 384, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, UINT, IDXGIOutput **) EnumOutputs; // offset: 448, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC *) GetDesc; // offset: 512, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, const GUID *const, int *) CheckInterfaceSupport; // offset: 576, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC1 *) GetDesc1; // offset: 640, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC2 *) GetDesc2; // offset: 704, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, HANDLE, DWORD *) RegisterHardwareContentProtectionTeardownStatusEvent; // offset: 768, size: 64 bits
void (*)(IDXGIAdapter5 *, DWORD) UnregisterHardwareContentProtectionTeardownStatus; // offset: 832, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, UINT, DXGI_MEMORY_SEGMENT_GROUP, DXGI_QUERY_VIDEO_MEMORY_INFO *) QueryVideoMemoryInfo; // offset: 896, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, UINT, DXGI_MEMORY_SEGMENT_GROUP, UINT64) SetVideoMemoryReservation; // offset: 960, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, HANDLE, DWORD *) RegisterVideoMemoryBudgetChangeNotificationEvent; // offset: 1024, size: 64 bits
void (*)(IDXGIAdapter5 *, DWORD) UnregisterVideoMemoryBudgetChangeNotification; // offset: 1088, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC3 *) GetDesc3; // offset: 1152, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_ADAPTER_DESC4 *) GetDesc4; // offset: 1216, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_SINGLE_ADAPTER_HYBRID_MODE *) GetSingleAdapterHybridMode; // offset: 1280, size: 64 bits
HRESULT (*)(IDXGIAdapter5 *, DXGI_SINGLE_ADAPTER_HYBRID_MODE) SetSingleAdapterHybridMode; // offset: 1344, size: 64 bits
};
IDXGIFactory8
struct IDXGIFactory8 { // size: 8 bytes, align: 8
struct IDXGIFactory8Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (35)
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDXGIFactory8 *) AddRef;
ULONG (*)(IDXGIFactory8 *) Release;
HRESULT (*)(IDXGIFactory8 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(IDXGIFactory8 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(IDXGIFactory8 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) GetParent;
HRESULT (*)(IDXGIFactory8 *, UINT, IDXGIAdapter **) EnumAdapters;
HRESULT (*)(IDXGIFactory8 *, int, UINT) MakeWindowAssociation;
HRESULT (*)(IDXGIFactory8 *, int *) GetWindowAssociation;
HRESULT (*)(IDXGIFactory8 *, int *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **) CreateSwapChain;
HRESULT (*)(IDXGIFactory8 *, int, IDXGIAdapter **) CreateSoftwareAdapter;
HRESULT (*)(IDXGIFactory8 *, UINT, IDXGIAdapter1 **) EnumAdapters1;
BOOL (*)(IDXGIFactory8 *) IsCurrent;
BOOL (*)(IDXGIFactory8 *) IsWindowedStereoEnabled;
HRESULT (*)(IDXGIFactory8 *, int *, int, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForHwnd;
HRESULT (*)(IDXGIFactory8 *, int *, int *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForCoreWindow;
HRESULT (*)(IDXGIFactory8 *, HANDLE, int *) GetSharedResourceAdapterLuid;
HRESULT (*)(IDXGIFactory8 *, int, UINT, DWORD *) RegisterStereoStatusWindow;
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterStereoStatusEvent;
void (*)(IDXGIFactory8 *, DWORD) UnregisterStereoStatus;
HRESULT (*)(IDXGIFactory8 *, int, UINT, DWORD *) RegisterOcclusionStatusWindow;
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterOcclusionStatusEvent;
void (*)(IDXGIFactory8 *, DWORD) UnregisterOcclusionStatus;
HRESULT (*)(IDXGIFactory8 *, int *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForComposition;
UINT (*)(IDXGIFactory8 *) GetCreationFlags;
HRESULT (*)(IDXGIFactory8 *, int, const IID *const, void **) EnumAdapterByLuid;
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) EnumWarpAdapter;
HRESULT (*)(IDXGIFactory8 *, DXGI_FEATURE, void *, UINT) CheckFeatureSupport;
HRESULT (*)(IDXGIFactory8 *, UINT, DXGI_GPU_PREFERENCE, const IID *const, void **) EnumAdapterByGpuPreference;
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterAdaptersChangedEvent;
HRESULT (*)(IDXGIFactory8 *, DWORD) UnregisterAdaptersChangedEvent;
HRESULT (*)(IDXGIFactory8 *, int *, int, const DXGI_SWAP_CHAIN_DESC2 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForHwnd1;
HRESULT (*)(IDXGIFactory8 *, int *, int *, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForCoreWindow1;
HRESULT (*)(IDXGIFactory8 *, int *, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForComposition1;
IDXGIFactory8Vtbl
struct IDXGIFactory8Vtbl { // size: 280 bytes, align: 8
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDXGIFactory8 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDXGIFactory8 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 256, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 320, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) GetParent; // offset: 384, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, UINT, IDXGIAdapter **) EnumAdapters; // offset: 448, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int, UINT) MakeWindowAssociation; // offset: 512, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *) GetWindowAssociation; // offset: 576, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **) CreateSwapChain; // offset: 640, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int, IDXGIAdapter **) CreateSoftwareAdapter; // offset: 704, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, UINT, IDXGIAdapter1 **) EnumAdapters1; // offset: 768, size: 64 bits
BOOL (*)(IDXGIFactory8 *) IsCurrent; // offset: 832, size: 64 bits
BOOL (*)(IDXGIFactory8 *) IsWindowedStereoEnabled; // offset: 896, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, int, const DXGI_SWAP_CHAIN_DESC1 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForHwnd; // offset: 960, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, int *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForCoreWindow; // offset: 1024, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, HANDLE, int *) GetSharedResourceAdapterLuid; // offset: 1088, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int, UINT, DWORD *) RegisterStereoStatusWindow; // offset: 1152, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterStereoStatusEvent; // offset: 1216, size: 64 bits
void (*)(IDXGIFactory8 *, DWORD) UnregisterStereoStatus; // offset: 1280, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int, UINT, DWORD *) RegisterOcclusionStatusWindow; // offset: 1344, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterOcclusionStatusEvent; // offset: 1408, size: 64 bits
void (*)(IDXGIFactory8 *, DWORD) UnregisterOcclusionStatus; // offset: 1472, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForComposition; // offset: 1536, size: 64 bits
UINT (*)(IDXGIFactory8 *) GetCreationFlags; // offset: 1600, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int, const IID *const, void **) EnumAdapterByLuid; // offset: 1664, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, const IID *const, void **) EnumWarpAdapter; // offset: 1728, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, DXGI_FEATURE, void *, UINT) CheckFeatureSupport; // offset: 1792, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, UINT, DXGI_GPU_PREFERENCE, const IID *const, void **) EnumAdapterByGpuPreference; // offset: 1856, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, HANDLE, DWORD *) RegisterAdaptersChangedEvent; // offset: 1920, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, DWORD) UnregisterAdaptersChangedEvent; // offset: 1984, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, int, const DXGI_SWAP_CHAIN_DESC2 *, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForHwnd1; // offset: 2048, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, int *, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForCoreWindow1; // offset: 2112, size: 64 bits
HRESULT (*)(IDXGIFactory8 *, int *, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForComposition1; // offset: 2176, size: 64 bits
};
IDXGIFactoryMedia2
struct IDXGIFactoryMedia2 { // size: 8 bytes, align: 8
struct IDXGIFactoryMedia2Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (6)
HRESULT (*)(IDXGIFactoryMedia2 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDXGIFactoryMedia2 *) AddRef;
ULONG (*)(IDXGIFactoryMedia2 *) Release;
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForCompositionSurfaceHandle;
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, DXGI_DECODE_SWAP_CHAIN_DESC *, IDXGIResource *, IDXGIOutput *, IDXGIDecodeSwapChain **) CreateDecodeSwapChainForCompositionSurfaceHandle;
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForCompositionSurfaceHandle1;
IDXGIFactoryMedia2Vtbl
struct IDXGIFactoryMedia2Vtbl { // size: 48 bytes, align: 8
HRESULT (*)(IDXGIFactoryMedia2 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDXGIFactoryMedia2 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDXGIFactoryMedia2 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, const DXGI_SWAP_CHAIN_DESC1 *, IDXGIOutput *, IDXGISwapChain1 **) CreateSwapChainForCompositionSurfaceHandle; // offset: 192, size: 64 bits
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, DXGI_DECODE_SWAP_CHAIN_DESC *, IDXGIResource *, IDXGIOutput *, IDXGIDecodeSwapChain **) CreateDecodeSwapChainForCompositionSurfaceHandle; // offset: 256, size: 64 bits
HRESULT (*)(IDXGIFactoryMedia2 *, int *, HANDLE, const DXGI_SWAP_CHAIN_DESC2 *, IDXGIOutput *, IDXGISwapChain5 **) CreateSwapChainForCompositionSurfaceHandle1; // offset: 320, size: 64 bits
};
IDXGISwapChain5
struct IDXGISwapChain5 { // size: 8 bytes, align: 8
struct IDXGISwapChain5Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (44)
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDXGISwapChain5 *) AddRef;
ULONG (*)(IDXGISwapChain5 *) Release;
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, UINT, const void *) SetPrivateData;
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, const int *) SetPrivateDataInterface;
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, UINT *, void *) GetPrivateData;
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetParent;
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetDevice;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT) Present;
HRESULT (*)(IDXGISwapChain5 *, UINT, const IID *const, void **) GetBuffer;
HRESULT (*)(IDXGISwapChain5 *, BOOL, IDXGIOutput *) SetFullscreenState;
HRESULT (*)(IDXGISwapChain5 *, BOOL *, IDXGIOutput **) GetFullscreenState;
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC *) GetDesc;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT) ResizeBuffers;
HRESULT (*)(IDXGISwapChain5 *, const DXGI_MODE_DESC *) ResizeTarget;
HRESULT (*)(IDXGISwapChain5 *, IDXGIOutput **) GetContainingOutput;
HRESULT (*)(IDXGISwapChain5 *, DXGI_FRAME_STATISTICS *) GetFrameStatistics;
HRESULT (*)(IDXGISwapChain5 *, UINT *) GetLastPresentCount;
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC1 *) GetDesc1;
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_FULLSCREEN_DESC *) GetFullscreenDesc;
HRESULT (*)(IDXGISwapChain5 *, int *) GetHwnd;
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetCoreWindow;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, const DXGI_PRESENT_PARAMETERS *) Present1;
BOOL (*)(IDXGISwapChain5 *) IsTemporaryMonoSupported;
HRESULT (*)(IDXGISwapChain5 *, IDXGIOutput **) GetRestrictToOutput;
HRESULT (*)(IDXGISwapChain5 *, const DXGI_RGBA *) SetBackgroundColor;
HRESULT (*)(IDXGISwapChain5 *, DXGI_RGBA *) GetBackgroundColor;
HRESULT (*)(IDXGISwapChain5 *, DXGI_MODE_ROTATION) SetRotation;
HRESULT (*)(IDXGISwapChain5 *, DXGI_MODE_ROTATION *) GetRotation;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT) SetSourceSize;
HRESULT (*)(IDXGISwapChain5 *, UINT *, UINT *) GetSourceSize;
HRESULT (*)(IDXGISwapChain5 *, UINT) SetMaximumFrameLatency;
HRESULT (*)(IDXGISwapChain5 *, UINT *) GetMaximumFrameLatency;
HANDLE (*)(IDXGISwapChain5 *) GetFrameLatencyWaitableObject;
HRESULT (*)(IDXGISwapChain5 *, const DXGI_MATRIX_3X2_F *) SetMatrixTransform;
HRESULT (*)(IDXGISwapChain5 *, DXGI_MATRIX_3X2_F *) GetMatrixTransform;
UINT (*)(IDXGISwapChain5 *) GetCurrentBackBufferIndex;
HRESULT (*)(IDXGISwapChain5 *, DXGI_COLOR_SPACE_TYPE, UINT *) CheckColorSpaceSupport;
HRESULT (*)(IDXGISwapChain5 *, DXGI_COLOR_SPACE_TYPE) SetColorSpace1;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT, const UINT *, int *const *) ResizeBuffers1;
HRESULT (*)(IDXGISwapChain5 *, DXGI_HDR_METADATA_TYPE, UINT, void *) SetHDRMetaData;
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC2 *) GetDesc2;
DXGI_COLOR_SPACE_TYPE (*)(IDXGISwapChain5 *) GetColorSpace1;
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT, const UINT *, int *const *, DXGI_COLOR_SPACE_TYPE) ResizeBuffers2;
IDXGISwapChain5Vtbl
struct IDXGISwapChain5Vtbl { // size: 352 bytes, align: 8
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDXGISwapChain5 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDXGISwapChain5 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, UINT, const void *) SetPrivateData; // offset: 192, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, const int *) SetPrivateDataInterface; // offset: 256, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const GUID *const, UINT *, void *) GetPrivateData; // offset: 320, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetParent; // offset: 384, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetDevice; // offset: 448, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT) Present; // offset: 512, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, const IID *const, void **) GetBuffer; // offset: 576, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, BOOL, IDXGIOutput *) SetFullscreenState; // offset: 640, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, BOOL *, IDXGIOutput **) GetFullscreenState; // offset: 704, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC *) GetDesc; // offset: 768, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT) ResizeBuffers; // offset: 832, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const DXGI_MODE_DESC *) ResizeTarget; // offset: 896, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, IDXGIOutput **) GetContainingOutput; // offset: 960, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_FRAME_STATISTICS *) GetFrameStatistics; // offset: 1024, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT *) GetLastPresentCount; // offset: 1088, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC1 *) GetDesc1; // offset: 1152, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_FULLSCREEN_DESC *) GetFullscreenDesc; // offset: 1216, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, int *) GetHwnd; // offset: 1280, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const IID *const, void **) GetCoreWindow; // offset: 1344, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, const DXGI_PRESENT_PARAMETERS *) Present1; // offset: 1408, size: 64 bits
BOOL (*)(IDXGISwapChain5 *) IsTemporaryMonoSupported; // offset: 1472, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, IDXGIOutput **) GetRestrictToOutput; // offset: 1536, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const DXGI_RGBA *) SetBackgroundColor; // offset: 1600, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_RGBA *) GetBackgroundColor; // offset: 1664, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_MODE_ROTATION) SetRotation; // offset: 1728, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_MODE_ROTATION *) GetRotation; // offset: 1792, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT) SetSourceSize; // offset: 1856, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT *, UINT *) GetSourceSize; // offset: 1920, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT) SetMaximumFrameLatency; // offset: 1984, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT *) GetMaximumFrameLatency; // offset: 2048, size: 64 bits
HANDLE (*)(IDXGISwapChain5 *) GetFrameLatencyWaitableObject; // offset: 2112, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, const DXGI_MATRIX_3X2_F *) SetMatrixTransform; // offset: 2176, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_MATRIX_3X2_F *) GetMatrixTransform; // offset: 2240, size: 64 bits
UINT (*)(IDXGISwapChain5 *) GetCurrentBackBufferIndex; // offset: 2304, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_COLOR_SPACE_TYPE, UINT *) CheckColorSpaceSupport; // offset: 2368, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_COLOR_SPACE_TYPE) SetColorSpace1; // offset: 2432, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT, const UINT *, int *const *) ResizeBuffers1; // offset: 2496, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_HDR_METADATA_TYPE, UINT, void *) SetHDRMetaData; // offset: 2560, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, DXGI_SWAP_CHAIN_DESC2 *) GetDesc2; // offset: 2624, size: 64 bits
DXGI_COLOR_SPACE_TYPE (*)(IDXGISwapChain5 *) GetColorSpace1; // offset: 2688, size: 64 bits
HRESULT (*)(IDXGISwapChain5 *, UINT, UINT, UINT, DXGI_FORMAT, UINT, const UINT *, int *const *, DXGI_COLOR_SPACE_TYPE) ResizeBuffers2; // offset: 2752, size: 64 bits
};
IWTSRemoteAppWindowInfoService
struct IWTSRemoteAppWindowInfoService { // size: 8 bytes, align: 8
struct IWTSRemoteAppWindowInfoServiceVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IWTSRemoteAppWindowInfoService *, const IID *const, void **) QueryInterface;
ULONG (*)(IWTSRemoteAppWindowInfoService *) AddRef;
ULONG (*)(IWTSRemoteAppWindowInfoService *) Release;
HRESULT (*)(IWTSRemoteAppWindowInfoService *, unsigned int, int *) GetLocalHwnd;
IWTSRemoteAppWindowInfoServiceVtbl
struct IWTSRemoteAppWindowInfoServiceVtbl { // size: 32 bytes, align: 8
HRESULT (*)(IWTSRemoteAppWindowInfoService *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IWTSRemoteAppWindowInfoService *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IWTSRemoteAppWindowInfoService *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IWTSRemoteAppWindowInfoService *, unsigned int, int *) GetLocalHwnd; // offset: 192, size: 64 bits
};
IWTSWindowChangedCallback
struct IWTSWindowChangedCallback { // size: 8 bytes, align: 8
struct IWTSWindowChangedCallbackVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IWTSWindowChangedCallback *, const IID *const, void **) QueryInterface;
ULONG (*)(IWTSWindowChangedCallback *) AddRef;
ULONG (*)(IWTSWindowChangedCallback *) Release;
HRESULT (*)(IWTSWindowChangedCallback *, const WTSWindowInfo *) WindowChanged;
IWTSWindowChangedCallbackVtbl
struct IWTSWindowChangedCallbackVtbl { // size: 32 bytes, align: 8
HRESULT (*)(IWTSWindowChangedCallback *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IWTSWindowChangedCallback *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IWTSWindowChangedCallback *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IWTSWindowChangedCallback *, const WTSWindowInfo *) WindowChanged; // offset: 192, size: 64 bits
};
IWTSWindowInfoService
struct IWTSWindowInfoService { // size: 8 bytes, align: 8
struct IWTSWindowInfoServiceVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (8)
HRESULT (*)(IWTSWindowInfoService *, const IID *const, void **) QueryInterface;
ULONG (*)(IWTSWindowInfoService *) AddRef;
ULONG (*)(IWTSWindowInfoService *) Release;
HRESULT (*)(IWTSWindowInfoService *, int, WTSWindowInfo *) GetWindowInfo;
HRESULT (*)(IWTSWindowInfoService *, unsigned long *) GetRdpClientProcessId;
HRESULT (*)(IWTSWindowInfoService *, RdpSessionType *) GetRdpSessionType;
HRESULT (*)(IWTSWindowInfoService *, int, IWTSWindowChangedCallback *) SubscribeWindowChanged;
HRESULT (*)(IWTSWindowInfoService *, int, IWTSWindowChangedCallback *) UnsubscribeWindowChanged;
IWTSWindowInfoServiceVtbl
struct IWTSWindowInfoServiceVtbl { // size: 64 bytes, align: 8
HRESULT (*)(IWTSWindowInfoService *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IWTSWindowInfoService *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IWTSWindowInfoService *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IWTSWindowInfoService *, int, WTSWindowInfo *) GetWindowInfo; // offset: 192, size: 64 bits
HRESULT (*)(IWTSWindowInfoService *, unsigned long *) GetRdpClientProcessId; // offset: 256, size: 64 bits
HRESULT (*)(IWTSWindowInfoService *, RdpSessionType *) GetRdpSessionType; // offset: 320, size: 64 bits
HRESULT (*)(IWTSWindowInfoService *, int, IWTSWindowChangedCallback *) SubscribeWindowChanged; // offset: 384, size: 64 bits
HRESULT (*)(IWTSWindowInfoService *, int, IWTSWindowChangedCallback *) UnsubscribeWindowChanged; // offset: 448, size: 64 bits
};
NUMA_NODE_MEMORY_PERFORMANCE_BANDWIDTH
struct NUMA_NODE_MEMORY_PERFORMANCE_BANDWIDTH { // size: 24 bytes, align: 8
NUMA_NODE_MEMORY_PERFORMANCE_MEASUREMENT_CONDITION Condition; // offset: 0, size: 128 bits
ULONGLONG Bandwidth; // offset: 128, size: 64 bits
};
NUMA_NODE_MEMORY_PERFORMANCE_LATENCY
struct NUMA_NODE_MEMORY_PERFORMANCE_LATENCY { // size: 24 bytes, align: 8
NUMA_NODE_MEMORY_PERFORMANCE_MEASUREMENT_CONDITION Condition; // offset: 0, size: 128 bits
ULONGLONG Latency; // offset: 128, size: 64 bits
};
NUMA_NODE_MEMORY_PERFORMANCE_MEASUREMENT_CONDITION
struct NUMA_NODE_MEMORY_PERFORMANCE_MEASUREMENT_CONDITION { // size: 16 bytes, align: 8
struct (unnamed struct at um/memoryapi.h) Flags; // offset: 0, size: 8 bits
ULONGLONG MinTransferSizeInBytes; // offset: 64, size: 64 bits
};
NVME_BOOT_PARTITION_INFORMATION
union NVME_BOOT_PARTITION_INFORMATION { // size: 4 bytes, align: 4
struct (unnamed struct at shared/nvme.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
TLS_HYBRID_KEYEXCHANGE_BLOB
struct TLS_HYBRID_KEYEXCHANGE_BLOB { // size: 80 bytes, align: 8
ULONG dwMagic; // offset: 0, size: 32 bits
ULONG dwKeyType; // offset: 32, size: 32 bits
UCHAR NumBlobs; // offset: 64, size: 8 bits
PCWSTR[4] rgwszBlobTypes; // offset: 128, size: 256 bits
PUCHAR[4] rgbBlobs; // offset: 384, size: 256 bits
};
TLS_KEM_CIPHERTEXT_BLOB
struct TLS_KEM_CIPHERTEXT_BLOB { // size: 8 bytes, align: 4
ULONG dwMagic; // offset: 0, size: 32 bits
ULONG cbLength; // offset: 32, size: 32 bits
};
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT3
union WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT3 { // size: 16 bytes, align: 8
UINT64 MsrData; // offset: 0, size: 64 bits
WHV_UINT128 AsUINT128; // offset: 0, size: 128 bits
};
_ARM64_TPIDR2_BLOCK
struct _ARM64_TPIDR2_BLOCK { // size: 16 bytes, align: 8
PVOID ZaSaveBuffer; // offset: 0, size: 64 bits
WORD NumZaSaveSlices; // offset: 64, size: 16 bits
WORD Reserved1; // offset: 80, size: 16 bits
DWORD Reserved2; // offset: 96, size: 32 bits
};
_BOOT_PARTITION_REQUEST_BLOCK
struct _BOOT_PARTITION_REQUEST_BLOCK { // size: 24 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONG Function; // offset: 64, size: 32 bits
ULONG Flags; // offset: 96, size: 32 bits
ULONG DataBufferOffset; // offset: 128, size: 32 bits
ULONG DataBufferLength; // offset: 160, size: 32 bits
};
_CODE_INTEGRITY_REPORT_GENERATION_HEADER
struct _CODE_INTEGRITY_REPORT_GENERATION_HEADER { // size: 16 bytes, align: 8
UINT16 Version; // offset: 0, size: 16 bits
UINT16 Reserved; // offset: 16, size: 16 bits
UINT32 RecordSize; // offset: 32, size: 32 bits
UINT64 CommitTime; // offset: 64, size: 64 bits
};
_CODE_INTEGRITY_REPORT_RECORD_HEADER
struct _CODE_INTEGRITY_REPORT_RECORD_HEADER { // size: 12 bytes, align: 4
UINT16 Version; // offset: 0, size: 16 bits
UINT16 Reserved; // offset: 16, size: 16 bits
UINT32 RecordSize; // offset: 32, size: 32 bits
UINT32 SipaEventCode; // offset: 64, size: 32 bits
};
_CODE_INTEGRITY_RUNTIME_REPORT
struct _CODE_INTEGRITY_RUNTIME_REPORT { // size: 24 bytes, align: 8
RUNTIME_REPORT_HEADER Header; // offset: 0, size: 64 bits
UINT64 CurrentGeneration; // offset: 64, size: 64 bits
UINT32 NumberOfGenerations; // offset: 128, size: 32 bits
};
_CXL_BACKGROUND_COMMAND_STATUS_REGISTER
union _CXL_BACKGROUND_COMMAND_STATUS_REGISTER { // size: 8 bytes, align: 8
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG AsUlonglong; // offset: 0, size: 64 bits
};
_CXL_CACHEMEM_CAPABILITY_HEADER_REGISTER
union _CXL_CACHEMEM_CAPABILITY_HEADER_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_CAPABILITY_HEADER_REGISTER
union _CXL_CAPABILITY_HEADER_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_COMMAND_REGISTER
union _CXL_COMMAND_REGISTER { // size: 8 bytes, align: 8
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG AsUlonglong; // offset: 0, size: 64 bits
};
_CXL_DEVICE_CAPABILITIES_ARRAY_REGISTER
struct _CXL_DEVICE_CAPABILITIES_ARRAY_REGISTER { // size: 16 bytes, align: 4
CXL_DEVICE_CAPABILITIES_ARRAY_REGISTER_HEADER Header; // offset: 0, size: 32 bits
USHORT CapabilitiesCount; // offset: 32, size: 16 bits
USHORT Reserved; // offset: 48, size: 16 bits
ULONG[2] Reserved1; // offset: 64, size: 64 bits
};
_CXL_DEVICE_CAPABILITIES_ARRAY_REGISTER_HEADER
union _CXL_DEVICE_CAPABILITIES_ARRAY_REGISTER_HEADER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_DEVICE_CAPABILITY_HEADER_REGISTER
struct _CXL_DEVICE_CAPABILITY_HEADER_REGISTER { // size: 16 bytes, align: 4
CXL_DEVICE_CAPABILITY_HEADER_REGISTER_HEADER Header; // offset: 0, size: 32 bits
ULONG Offset; // offset: 32, size: 32 bits
ULONG Length; // offset: 64, size: 32 bits
ULONG Reserved; // offset: 96, size: 32 bits
};
_CXL_DEVICE_CAPABILITY_HEADER_REGISTER_HEADER
union _CXL_DEVICE_CAPABILITY_HEADER_REGISTER_HEADER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_DEVICE_HEALTH_INFO
struct _CXL_DEVICE_HEALTH_INFO { // size: 18 bytes, align: 1
union (unnamed union at shared/cxl.h) HealthStatus; // offset: 0, size: 8 bits
UCHAR MediaStatus; // offset: 8, size: 8 bits
UCHAR LifeUsed; // offset: 24, size: 2 bits
UCHAR DeviceTemperature; // offset: 32, size: 2 bits
UCHAR CorrectedVolatileErrorCount; // offset: 80, size: 1 bits
UCHAR CorrectedPersistentErrorCount; // offset: 112, size: 1 bits
union (unnamed union at shared/cxl.h) AdditionalStatus; // offset: 16, size: 8 bits
UCHAR LifeUsed; // offset: 24, size: 8 bits
USHORT DeviceTemperature; // offset: 32, size: 16 bits
ULONG DirtyShutdownCount; // offset: 48, size: 32 bits
ULONG CorrectedVolatileErrorCount; // offset: 80, size: 32 bits
ULONG CorrectedPersistentErrorCount; // offset: 112, size: 32 bits
};
_CXL_DEVICE_STATUS_REGISTERS
struct _CXL_DEVICE_STATUS_REGISTERS { // size: 8 bytes, align: 8
CXL_EVENT_STATUS_REGISTER EventStatusRegister; // offset: 0, size: 64 bits
};
_CXL_EVENT_STATUS_REGISTER
union _CXL_EVENT_STATUS_REGISTER { // size: 8 bytes, align: 8
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_CAPABILITY_REGISTER
union _CXL_HDM_DECODER_CAPABILITY_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_CONTROL_REGISTER
union _CXL_HDM_DECODER_CONTROL_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_DPA_SKIP_LOW_REGISTER
union _CXL_HDM_DECODER_DPA_SKIP_LOW_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_GLOBAL_CONTROL_REGISTER
union _CXL_HDM_DECODER_GLOBAL_CONTROL_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_REGISTERS
struct _CXL_HDM_DECODER_REGISTERS { // size: 32 bytes, align: 4
CXL_HDM_MEMORY_BASE_LOW MemoryBaseLow; // offset: 0, size: 32 bits
ULONG MemoryBaseHigh; // offset: 32, size: 32 bits
CXL_HDM_MEMORY_SIZE_LOW MemorySizeLow; // offset: 64, size: 32 bits
ULONG MemorySizeHigh; // offset: 96, size: 32 bits
CXL_HDM_DECODER_CONTROL_REGISTER Control; // offset: 128, size: 32 bits
union (unnamed union at shared/cxl.h) u1; // offset: 160, size: 32 bits
union (unnamed union at shared/cxl.h) u2; // offset: 192, size: 32 bits
ULONG Reserved; // offset: 224, size: 32 bits
};
_CXL_HDM_DECODER_TARGET_LIST_HIGH_REGISTER
union _CXL_HDM_DECODER_TARGET_LIST_HIGH_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_DECODER_TARGET_LIST_LOW_REGISTER
union _CXL_HDM_DECODER_TARGET_LIST_LOW_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_MEMORY_BASE_LOW
union _CXL_HDM_MEMORY_BASE_LOW { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_HDM_MEMORY_SIZE_LOW
union _CXL_HDM_MEMORY_SIZE_LOW { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_INTERRUPT_POLICY
struct _CXL_INTERRUPT_POLICY { // size: 1 bytes, align: 1
UCHAR InterruptMode; // offset: 0, size: 2 bits
UCHAR Reserved; // offset: 2, size: 2 bits
UCHAR InterruptMessageNumber; // offset: 4, size: 4 bits
};
_CXL_MAILBOX_ACTIVATE_FIRMWARE
struct _CXL_MAILBOX_ACTIVATE_FIRMWARE { // size: 2 bytes, align: 1
UCHAR Action; // offset: 0, size: 8 bits
UCHAR Slot; // offset: 8, size: 8 bits
};
_CXL_MAILBOX_CAPABILITY_REGISTER
union _CXL_MAILBOX_CAPABILITY_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_MAILBOX_CEL_ENTRY
struct _CXL_MAILBOX_CEL_ENTRY { // size: 4 bytes, align: 2
USHORT Opcode; // offset: 0, size: 16 bits
struct (unnamed struct at shared/cxl.h) CommandEffect; // offset: 16, size: 16 bits
};
_CXL_MAILBOX_CLEAR_POISON_INPUT
struct _CXL_MAILBOX_CLEAR_POISON_INPUT { // size: 72 bytes, align: 8
ULONGLONG ClearPoisonPhysicalAddress; // offset: 0, size: 64 bits
UCHAR[64] ClearPoisonWriteData; // offset: 64, size: 512 bits
};
_CXL_MAILBOX_CONTROL_REGISTER
union _CXL_MAILBOX_CONTROL_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_MAILBOX_GET_ALERT_CONFIG_OUTPUT
struct _CXL_MAILBOX_GET_ALERT_CONFIG_OUTPUT { // size: 16 bytes, align: 1
union (unnamed union at shared/cxl.h) ValidAlerts; // offset: 0, size: 8 bits
union (unnamed union at shared/cxl.h) ProgrammableAlerts; // offset: 8, size: 8 bits
UCHAR LifeUsedCriticalThreshold; // offset: 16, size: 8 bits
UCHAR LifeUsedProgrammableWarningThreshold; // offset: 24, size: 8 bits
USHORT DeviceOverTemperatureCriticalThreshold; // offset: 32, size: 16 bits
USHORT DeviceUnderTemperatureCriticalThreshold; // offset: 48, size: 16 bits
USHORT DeviceOverTemperatureProgrammableWarningThreshold; // offset: 64, size: 16 bits
USHORT DeviceUnderTemperatureProgrammableWarningThreshold; // offset: 80, size: 16 bits
USHORT CorrectedVolatileMemoryProgrammableWarningThreshold; // offset: 96, size: 16 bits
USHORT CorrectedPersistentMemoryProgrammableWarningThreshold; // offset: 112, size: 16 bits
};
_CXL_MAILBOX_GET_EVENT_RECORDS_INPUT
struct _CXL_MAILBOX_GET_EVENT_RECORDS_INPUT { // size: 1 bytes, align: 1
UCHAR EventLog; // offset: 0, size: 8 bits
};
_CXL_MAILBOX_GET_LOG_CAPABILITIES_OUTPUT
struct _CXL_MAILBOX_GET_LOG_CAPABILITIES_OUTPUT { // size: 4 bytes, align: 4
ULONG ClearLogSupported; // offset: 0, size: 1 bits
ULONG PopulateLogSupported; // offset: 1, size: 1 bits
ULONG AutoPopulateSupported; // offset: 2, size: 1 bits
ULONG PersistentAcrossColdReset; // offset: 3, size: 1 bits
ULONG Reserved; // offset: 4, size: 28 bits
};
_CXL_MAILBOX_GET_POISON_LIST_INPUT
struct _CXL_MAILBOX_GET_POISON_LIST_INPUT { // size: 16 bytes, align: 1
ULONGLONG RestartRequest; // offset: 0, size: 1 bits
ULONGLONG Reserved; // offset: 1, size: 5 bits
ULONGLONG PhysicalAddress; // offset: 6, size: 58 bits
ULONGLONG PhysicalAddressLength; // offset: 64, size: 64 bits
};
_CXL_MAILBOX_INJECT_POISON_INPUT
struct _CXL_MAILBOX_INJECT_POISON_INPUT { // size: 8 bytes, align: 8
ULONGLONG InjectPoisonPhysicalAddress; // offset: 0, size: 64 bits
};
_CXL_MAILBOX_INTERRUPT_POLICY
struct _CXL_MAILBOX_INTERRUPT_POLICY { // size: 5 bytes, align: 1
CXL_INTERRUPT_POLICY InformationalEventLogInterruptSettings; // offset: 0, size: 8 bits
CXL_INTERRUPT_POLICY WarningEventLogInterruptSettings; // offset: 8, size: 8 bits
CXL_INTERRUPT_POLICY FailureEventLogInterruptSettings; // offset: 16, size: 8 bits
CXL_INTERRUPT_POLICY FatalEventLogInterruptSettings; // offset: 24, size: 8 bits
CXL_INTERRUPT_POLICY DynamicCapacityEventLogInterruptSettings; // offset: 32, size: 8 bits
};
_CXL_MAILBOX_INTERRUPT_POLICY_2_0
struct _CXL_MAILBOX_INTERRUPT_POLICY_2_0 { // size: 4 bytes, align: 1
CXL_INTERRUPT_POLICY InformationalEventLogInterruptSettings; // offset: 0, size: 8 bits
CXL_INTERRUPT_POLICY WarningEventLogInterruptSettings; // offset: 8, size: 8 bits
CXL_INTERRUPT_POLICY FailureEventLogInterruptSettings; // offset: 16, size: 8 bits
CXL_INTERRUPT_POLICY FatalEventLogInterruptSettings; // offset: 24, size: 8 bits
};
_CXL_MAILBOX_MEDIA_ERROR_RECORD
struct _CXL_MAILBOX_MEDIA_ERROR_RECORD { // size: 16 bytes, align: 1
ULONGLONG ErrorSource; // offset: 0, size: 3 bits
ULONGLONG Reserved; // offset: 3, size: 3 bits
ULONGLONG MediaErrorAddress; // offset: 6, size: 58 bits
ULONG MediaErrorLength; // offset: 64, size: 32 bits
UCHAR[4] Reserved1; // offset: 96, size: 32 bits
};
_CXL_MAILBOX_SET_ALERT_CONFIG_INPUT
struct _CXL_MAILBOX_SET_ALERT_CONFIG_INPUT { // size: 12 bytes, align: 1
UCHAR Reserved; // offset: 24, size: 3 bits
union (unnamed union at shared/cxl.h) ValidAlertActions; // offset: 0, size: 8 bits
UCHAR Reserved; // offset: 24, size: 3 bits
union (unnamed union at shared/cxl.h) EnableAlertActions; // offset: 8, size: 8 bits
UCHAR LifeUsedProgrammableWarningThreshold; // offset: 16, size: 8 bits
UCHAR Reserved; // offset: 24, size: 8 bits
USHORT DeviceOverTemperatureProgrammableWarningThreshold; // offset: 32, size: 16 bits
USHORT DeviceUnderTemperatureProgrammableWarningThreshold; // offset: 48, size: 16 bits
USHORT CorrectedVolatileMemoryProgrammableWarningThreshold; // offset: 64, size: 16 bits
USHORT CorrectedPersistentMemoryProgrammableWarningThreshold; // offset: 80, size: 16 bits
};
_CXL_MAILBOX_STATUS_REGISTER
union _CXL_MAILBOX_STATUS_REGISTER { // size: 8 bytes, align: 8
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG AsUlonglong; // offset: 0, size: 64 bits
};
_CXL_MEMORY_DEVICE_STATUS_REGISTER
union _CXL_MEMORY_DEVICE_STATUS_REGISTER { // size: 8 bytes, align: 8
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG AsUlonglong; // offset: 0, size: 64 bits
};
_CXL_MEMORY_DEVICE_STATUS_REGISTERS
struct _CXL_MEMORY_DEVICE_STATUS_REGISTERS { // size: 8 bytes, align: 8
CXL_MEMORY_DEVICE_STATUS_REGISTER MemoryDeviceStatusRegister; // offset: 0, size: 64 bits
};
_CXL_RAS_CAPABILITY_STRUCTURE
struct _CXL_RAS_CAPABILITY_STRUCTURE { // size: 88 bytes, align: 4
CXL_RAS_UNCORRECTABLE_ERROR_STATUS_REGISTER UncorrectableErrorStatusRegister; // offset: 0, size: 32 bits
CXL_RAS_UNCORRECTABLE_ERROR_MASK_REGISTER UncorrectableErrorMaskRegister; // offset: 32, size: 32 bits
CXL_RAS_UNCORRECTABLE_ERROR_SEVERITY_REGISTER UncorrectableErrorSeverityRegister; // offset: 64, size: 32 bits
CXL_RAS_CORRECTABLE_ERROR_STATUS_REGISTER CorrectableErrorStatusRegister; // offset: 96, size: 32 bits
CXL_RAS_CORRECTABLE_ERROR_MASK_REGISTER CorrectableErrorMaskRegister; // offset: 128, size: 32 bits
CXL_RAS_ERROR_CAPABILITY_AND_CONTROL_REGISTER ErrorCapabilityAndControlRegister; // offset: 160, size: 32 bits
CXL_RAS_HEADER_LOG_REGISTERS HeaderLogRegisters; // offset: 192, size: 512 bits
};
_CXL_RAS_CORRECTABLE_ERROR_MASK_REGISTER
union _CXL_RAS_CORRECTABLE_ERROR_MASK_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_RAS_CORRECTABLE_ERROR_STATUS_REGISTER
union _CXL_RAS_CORRECTABLE_ERROR_STATUS_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_RAS_ERROR_CAPABILITY_AND_CONTROL_REGISTER
union _CXL_RAS_ERROR_CAPABILITY_AND_CONTROL_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_RAS_HEADER_LOG_REGISTERS
struct _CXL_RAS_HEADER_LOG_REGISTERS { // size: 64 bytes, align: 4
ULONG[16] HeaderLogArray; // offset: 0, size: 512 bits
};
_CXL_RAS_UNCORRECTABLE_ERROR_MASK_REGISTER
union _CXL_RAS_UNCORRECTABLE_ERROR_MASK_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_RAS_UNCORRECTABLE_ERROR_SEVERITY_REGISTER
union _CXL_RAS_UNCORRECTABLE_ERROR_SEVERITY_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_CXL_RAS_UNCORRECTABLE_ERROR_STATUS_REGISTER
union _CXL_RAS_UNCORRECTABLE_ERROR_STATUS_REGISTER { // size: 4 bytes, align: 4
struct (unnamed struct at shared/cxl.h) DUMMYSTRUCTNAME; // offset: 0, size: 32 bits
ULONG AsUlong; // offset: 0, size: 32 bits
};
_D3DDDI_CREATEHWQUEUEFORUSERMODESUBMISSION_FLAGS
struct _D3DDDI_CREATEHWQUEUEFORUSERMODESUBMISSION_FLAGS { // size: 4 bytes, align: 4
UINT DisableGpuTimeout; // offset: 0, size: 1 bits
UINT NoBroadcastSignal; // offset: 1, size: 1 bits
UINT NoBroadcastWait; // offset: 2, size: 1 bits
UINT NoKmdAccess; // offset: 3, size: 1 bits
UINT TestQueue; // offset: 4, size: 1 bits
UINT DoorbellRequiresSecondaryCpuVA; // offset: 5, size: 1 bits
UINT Reserved; // offset: 6, size: 26 bits
UINT Value; // offset: 0, size: 32 bits
};
_D3DDDI_DOORBELLMAPPING
struct _D3DDDI_DOORBELLMAPPING { // size: 16 bytes, align: 8
void * CpuVa; // offset: 0, size: 64 bits
void * SecondaryCpuVa; // offset: 64, size: 64 bits
};
_D3DKMT_QUERY_PHYSICAL_ADAPTER
struct _D3DKMT_QUERY_PHYSICAL_ADAPTER { // size: 12 bytes, align: 4
UINT PhysicalAdapterIndex; // offset: 0, size: 32 bits
UINT NumExecutionNodes; // offset: 32, size: 32 bits
UINT PagingNodeIndex; // offset: 64, size: 32 bits
};
_D3DKMT_QUERY_PHYSICAL_ADAPTER_1
struct _D3DKMT_QUERY_PHYSICAL_ADAPTER_1 { // size: 16 bytes, align: 4
UINT PhysicalAdapterIndex; // offset: 0, size: 32 bits
UINT NumExecutionNodes; // offset: 32, size: 32 bits
UINT PagingNodeIndex; // offset: 64, size: 32 bits
UINT GdiNodeIndex; // offset: 96, size: 32 bits
};
_D3DKMT_RESIZERINGBUFFER
struct _D3DKMT_RESIZERINGBUFFER { // size: 144 bytes, align: 4
D3DKMT_HANDLE hHwQueue; // offset: 0, size: 32 bits
D3DKMT_HANDLE hRingBuffer; // offset: 32, size: 32 bits
D3DKMT_HANDLE hRingBufferControl; // offset: 64, size: 32 bits
D3DKMT_RESIZERINGBUFFER_FLAGS Flags; // offset: 96, size: 32 bits
BYTE[64] PrivateDriverData; // offset: 128, size: 512 bits
BYTE[64] Reserved; // offset: 640, size: 512 bits
};
_D3DKMT_RESIZERINGBUFFER_FLAGS
struct _D3DKMT_RESIZERINGBUFFER_FLAGS { // size: 4 bytes, align: 4
UINT Reserved; // offset: 0, size: 32 bits
UINT Value; // offset: 0, size: 32 bits
};
_EXPERIMENTAL_WINBIO_CONNECTED_SENSOR
struct _EXPERIMENTAL_WINBIO_CONNECTED_SENSOR { // size: 8 bytes, align: 4
WINBIO_BIOMETRIC_TYPE biometricType; // offset: 0, size: 32 bits
BOOL isEnhancedSignInSecurityCapable; // offset: 32, size: 32 bits
};
_HEAP_MEMORY_USAGE_ENTRY
struct _HEAP_MEMORY_USAGE_ENTRY { // size: 24 bytes, align: 8
PVOID HeapHandle; // offset: 0, size: 64 bits
SIZE_T TotalCommittedBytes; // offset: 64, size: 64 bits
SIZE_T TotalReservedBytes; // offset: 128, size: 64 bits
};
_HEAP_MEMORY_USAGE_INFORMATION
struct _HEAP_MEMORY_USAGE_INFORMATION { // size: 40 bytes, align: 8
WORD Version; // offset: 0, size: 16 bits
SIZE_T EntryCount; // offset: 64, size: 64 bits
HEAP_MEMORY_USAGE_ENTRY[1] Entries; // offset: 128, size: 192 bits
};
_IMAGE_FILE_MACHINES
struct _IMAGE_FILE_MACHINES { // size: 4 bytes, align: 4
DWORD Value; // offset: 0, size: 32 bits
DWORD MachineX86; // offset: 0, size: 1 bits
DWORD MachineAmd64; // offset: 1, size: 1 bits
DWORD MachineArm; // offset: 2, size: 1 bits
DWORD MachineArm64; // offset: 3, size: 1 bits
DWORD MachineArm64EC; // offset: 4, size: 1 bits
};
_IMAGE_HOTSWAP_ARM64_ENDPOINT_INFO_ENTRY_V2
struct _IMAGE_HOTSWAP_ARM64_ENDPOINT_INFO_ENTRY_V2 { // size: 36 bytes, align: 4
IMAGE_HOTSWAP_ENDPOINT_INFO_ENTRY_COMMON Common; // offset: 0, size: 128 bits
DWORD IntArgs; // offset: 128, size: 32 bits
DWORD FloatArgs; // offset: 160, size: 32 bits
DWORD ArgStackSize; // offset: 192, size: 32 bits
IMAGE_HOTSWAP_ARM64_ENDPOINT_INFO_CC_RETURN ReturnType; // offset: 224, size: 32 bits
BYTE[1] Name; // offset: 256, size: 8 bits
};
_IMAGE_HOTSWAP_ENDPOINT_INFO_ENTRY_COMMON
struct _IMAGE_HOTSWAP_ENDPOINT_INFO_ENTRY_COMMON { // size: 16 bytes, align: 4
DWORD Size; // offset: 0, size: 32 bits
DWORD Rva; // offset: 32, size: 32 bits
DWORD NameSize; // offset: 64, size: 32 bits
DWORD NameOffset; // offset: 96, size: 32 bits
};
_IMAGE_HOTSWAP_ENDPOINT_INFO_HEADER_COMMON
struct _IMAGE_HOTSWAP_ENDPOINT_INFO_HEADER_COMMON { // size: 8 bytes, align: 4
DWORD Version; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
};
_IMAGE_HOTSWAP_ENDPOINT_INFO_HEADER_V2
struct _IMAGE_HOTSWAP_ENDPOINT_INFO_HEADER_V2 { // size: 12 bytes, align: 4
IMAGE_HOTSWAP_ENDPOINT_INFO_HEADER_COMMON Common; // offset: 0, size: 64 bits
DWORD Count; // offset: 64, size: 32 bits
};
_IMAGE_HOTSWAP_X64_ENDPOINT_INFO_ENTRY_V2
struct _IMAGE_HOTSWAP_X64_ENDPOINT_INFO_ENTRY_V2 { // size: 44 bytes, align: 4
IMAGE_HOTSWAP_ENDPOINT_INFO_ENTRY_COMMON Common; // offset: 0, size: 128 bits
IMAGE_HOTSWAP_X64_ENDPOINT_INFO_CC_REG[4] ArgRegs; // offset: 128, size: 128 bits
DWORD ArgStackSize; // offset: 256, size: 32 bits
IMAGE_HOTSWAP_X64_ENDPOINT_INFO_CC_REG RetReg; // offset: 288, size: 32 bits
BYTE[1] Name; // offset: 320, size: 8 bits
};
_MTM_BUS_DESCRIPTOR_HEADER
struct _MTM_BUS_DESCRIPTOR_HEADER { // size: 8 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
};
_MTM_FLAT_MEMORY_EXTENDED_LINEAR_INFO
struct _MTM_FLAT_MEMORY_EXTENDED_LINEAR_INFO { // size: 16 bytes, align: 8
ULONG NumberOfAliasedAddresses; // offset: 0, size: 32 bits
ULONG64 CacheSize; // offset: 64, size: 64 bits
};
_MTM_PD_CLEAR_MEMORY_ERROR_TYPE
struct _MTM_PD_CLEAR_MEMORY_ERROR_TYPE { // size: 72 bytes, align: 8
ULONGLONG ClearErrorPhysicalAddress; // offset: 0, size: 64 bits
UCHAR[64] ClearErrorData; // offset: 64, size: 512 bits
};
_MTM_PD_COMMAND
struct _MTM_PD_COMMAND { // size: 8 bytes, align: 4
MTM_PD_COMMAND_TYPE Type; // offset: 0, size: 32 bits
union (unnamed union at shared/ntddmtm.h) u; // offset: 32, size: 32 bits
};
_MTM_PD_COMMAND_STATUS
struct _MTM_PD_COMMAND_STATUS { // size: 16 bytes, align: 4
MTM_PD_COMMAND_TYPE Type; // offset: 0, size: 32 bits
union (unnamed union at shared/ntddmtm.h) u; // offset: 32, size: 96 bits
};
_MTM_PD_DESCRIPTOR_HEADER
struct _MTM_PD_DESCRIPTOR_HEADER { // size: 8 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
};
_MTM_PD_FIRMWARE_ACTIVATE
struct _MTM_PD_FIRMWARE_ACTIVATE { // size: 16 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
UCHAR Slot; // offset: 64, size: 8 bits
UCHAR[7] Reserved; // offset: 72, size: 56 bits
};
_MTM_PD_FIRMWARE_OUTPUT
struct _MTM_PD_FIRMWARE_OUTPUT { // size: 16 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONG DurationInMilliSeconds; // offset: 64, size: 32 bits
MTM_PD_FIRMWARE_RESULT Result; // offset: 96, size: 32 bits
};
_MTM_PD_FIRMWARE_SLOT_INFO
struct _MTM_PD_FIRMWARE_SLOT_INFO { // size: 48 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
UCHAR SlotNumber; // offset: 64, size: 8 bits
UCHAR[7] Reserved; // offset: 72, size: 56 bits
UCHAR[32] Revision; // offset: 128, size: 256 bits
};
_MTM_PD_GET_ALERT_CONFIG_INFO
struct _MTM_PD_GET_ALERT_CONFIG_INFO { // size: 24 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
union (unnamed union at shared/ntddmtm.h) ValidAlerts; // offset: 64, size: 8 bits
union (unnamed union at shared/ntddmtm.h) ProgrammableAlerts; // offset: 72, size: 8 bits
UCHAR LifeUsedCriticalThreshold; // offset: 80, size: 8 bits
UCHAR LifeUsedProgWarningThreshold; // offset: 88, size: 8 bits
USHORT DeviceOverTempCriticalThreshold; // offset: 96, size: 16 bits
USHORT DeviceUnderTempCriticalThreshold; // offset: 112, size: 16 bits
USHORT DeviceOverTempProgWarningThreshold; // offset: 128, size: 16 bits
USHORT DeviceUnderTempProgWarningThreshold; // offset: 144, size: 16 bits
USHORT CorrectedVolatileMemoryProgWarningThreshold; // offset: 160, size: 16 bits
USHORT CorrectedPersistentMemoryProgWarningThreshold; // offset: 176, size: 16 bits
};
_MTM_PD_GET_HEALTH_INFO
struct _MTM_PD_GET_HEALTH_INFO { // size: 28 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
union (unnamed union at shared/ntddmtm.h) HealthStatus; // offset: 64, size: 8 bits
UCHAR MediaStatus; // offset: 72, size: 8 bits
UCHAR LifeUsed; // offset: 88, size: 2 bits
UCHAR DeviceTemperature; // offset: 96, size: 2 bits
UCHAR CorrectedVolatileErrorCount; // offset: 160, size: 1 bits
UCHAR CorrectedPersistentErrorCount; // offset: 192, size: 1 bits
union (unnamed union at shared/ntddmtm.h) AdditionalStatus; // offset: 80, size: 8 bits
UCHAR LifeUsed; // offset: 88, size: 8 bits
USHORT DeviceTemperature; // offset: 96, size: 16 bits
ULONG DirtyShutdownCount; // offset: 128, size: 32 bits
ULONG CorrectedVolatileErrorCount; // offset: 160, size: 32 bits
ULONG CorrectedPersistentErrorCount; // offset: 192, size: 32 bits
};
_MTM_PD_GET_POISON_LIST_INPUT
struct _MTM_PD_GET_POISON_LIST_INPUT { // size: 24 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONGLONG Dpa; // offset: 64, size: 64 bits
ULONGLONG Length; // offset: 128, size: 64 bits
};
_MTM_PD_GET_SAVED_EVENT_INPUT
struct _MTM_PD_GET_SAVED_EVENT_INPUT { // size: 12 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
UCHAR EventSeverity; // offset: 64, size: 8 bits
UCHAR EventRecord; // offset: 72, size: 8 bits
};
_MTM_PD_GET_SAVED_EVENT_OUTPUT
struct _MTM_PD_GET_SAVED_EVENT_OUTPUT { // size: 144 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONG TotalEventsReceived; // offset: 64, size: 32 bits
UCHAR EventBufferSize; // offset: 96, size: 8 bits
UCHAR NumberOfSavedEvents; // offset: 104, size: 8 bits
UCHAR OldestEvent; // offset: 112, size: 8 bits
UCHAR EventType; // offset: 120, size: 8 bits
UCHAR[128] EventData; // offset: 128, size: 1024 bits
};
_MTM_PD_INJECT_MEMORY_ERROR_TYPE
struct _MTM_PD_INJECT_MEMORY_ERROR_TYPE { // size: 8 bytes, align: 8
ULONGLONG InjectErrorPhysicalAddress; // offset: 0, size: 64 bits
};
_MTM_PD_MEDIA_ERROR_RECORD
struct _MTM_PD_MEDIA_ERROR_RECORD { // size: 24 bytes, align: 8
UCHAR ErrorSource; // offset: 0, size: 8 bits
ULONGLONG MediaErrorAddress; // offset: 64, size: 64 bits
ULONG MediaErrorLength; // offset: 128, size: 32 bits
};
_MTM_PD_SET_ALERT_CONFIG_INFO
struct _MTM_PD_SET_ALERT_CONFIG_INFO { // size: 20 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
UCHAR Reserved; // offset: 88, size: 3 bits
union (unnamed union at shared/ntddmtm.h) ValidAlertActions; // offset: 64, size: 8 bits
UCHAR Reserved; // offset: 88, size: 3 bits
union (unnamed union at shared/ntddmtm.h) EnableAlertActions; // offset: 72, size: 8 bits
UCHAR LifeUsedProgWarningThreshold; // offset: 80, size: 8 bits
UCHAR Reserved; // offset: 88, size: 8 bits
USHORT DeviceOverTempProgWarningThreshold; // offset: 96, size: 16 bits
USHORT DeviceUnderTempProgWarningThreshold; // offset: 112, size: 16 bits
USHORT CorrectedVolatileMemoryProgWarningThreshold; // offset: 128, size: 16 bits
USHORT CorrectedPersistentMemoryProgWarningThreshold; // offset: 144, size: 16 bits
};
_MTM_PD_TIMESTAMP_INFO
struct _MTM_PD_TIMESTAMP_INFO { // size: 16 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONGLONG Timestamp; // offset: 64, size: 64 bits
};
_PROCESS_CREATION_SME_VECTOR_LENGTH
struct _PROCESS_CREATION_SME_VECTOR_LENGTH { // size: 8 bytes, align: 4
ULONG Data; // offset: 0, size: 32 bits
ULONG VectorLength; // offset: 0, size: 24 bits
ULONG FlagsReserved; // offset: 24, size: 8 bits
ULONG Reserved; // offset: 32, size: 32 bits
};
_SHARED_COMPUTE_UNIT_RELATIONSHIP
struct _SHARED_COMPUTE_UNIT_RELATIONSHIP { // size: 40 bytes, align: 8
DWORD Type; // offset: 0, size: 32 bits
DWORD ComputeUnitCount; // offset: 32, size: 32 bits
BYTE[14] Reserved; // offset: 64, size: 112 bits
WORD GroupCount; // offset: 176, size: 16 bits
GROUP_AFFINITY[1] GroupMasks; // offset: 192, size: 128 bits
};
_STORAGE_BOOT_PARTITION_ACTIVATE
struct _STORAGE_BOOT_PARTITION_ACTIVATE { // size: 12 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
UCHAR BPID; // offset: 64, size: 8 bits
UCHAR[3] Reserved0; // offset: 72, size: 24 bits
};
_STORAGE_BOOT_PARTITION_INFO
struct _STORAGE_BOOT_PARTITION_INFO { // size: 32 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONGLONG BPSZ; // offset: 64, size: 64 bits
ULONG ImagePayloadAlignment; // offset: 128, size: 32 bits
ULONG ImagePayloadMaxSize; // offset: 160, size: 32 bits
UCHAR SlotCount; // offset: 192, size: 8 bits
UCHAR ABPID; // offset: 200, size: 8 bits
};
_STORAGE_HW_BOOT_PARTITION_ACTIVATE
struct _STORAGE_HW_BOOT_PARTITION_ACTIVATE { // size: 16 bytes, align: 4
DWORD Version; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
DWORD Flags; // offset: 64, size: 32 bits
BYTE BPID; // offset: 96, size: 8 bits
BYTE[3] Reserved; // offset: 104, size: 24 bits
};
_STORAGE_HW_BOOT_PARTITION_INFO
struct _STORAGE_HW_BOOT_PARTITION_INFO { // size: 32 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
ULONGLONG BPSZ; // offset: 64, size: 64 bits
ULONG Flags; // offset: 128, size: 32 bits
ULONG ImagePayloadAlignment; // offset: 160, size: 32 bits
ULONG ImagePayloadMaxSize; // offset: 192, size: 32 bits
UCHAR SlotCount; // offset: 224, size: 8 bits
UCHAR ABPID; // offset: 232, size: 8 bits
};
_WHEA_CXL_AGENT_ADDRESS
union _WHEA_CXL_AGENT_ADDRESS { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME2; // offset: 0, size: 64 bits
};
_WHEA_CXL_COMPONENT_EVENTS_SECTION_VALIDBITS
union _WHEA_CXL_COMPONENT_EVENTS_SECTION_VALIDBITS { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG ValidBits; // offset: 0, size: 64 bits
};
_WHEA_CXL_DEVICE_ID
struct _WHEA_CXL_DEVICE_ID { // size: 16 bytes, align: 1
USHORT VendorID; // offset: 0, size: 16 bits
USHORT DeviceID; // offset: 16, size: 16 bits
USHORT SubsystemVendorID; // offset: 32, size: 16 bits
USHORT SubsystemDeviceID; // offset: 48, size: 16 bits
USHORT ClassCode; // offset: 64, size: 16 bits
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 80, size: 16 bits
UCHAR[4] Reserved2; // offset: 96, size: 32 bits
};
_WHEA_CXL_DEVICE_SERIAL_NUMBER
union _WHEA_CXL_DEVICE_SERIAL_NUMBER { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG AsUlonglong; // offset: 0, size: 64 bits
};
_WHEA_CXL_PCIE_DEVICE_ID
struct _WHEA_CXL_PCIE_DEVICE_ID { // size: 12 bytes, align: 1
USHORT VendorID; // offset: 0, size: 16 bits
USHORT DeviceID; // offset: 16, size: 16 bits
UCHAR FunctionNumber; // offset: 32, size: 8 bits
UCHAR DeviceNumber; // offset: 40, size: 8 bits
UCHAR BusNumber; // offset: 48, size: 8 bits
USHORT SegmentNumber; // offset: 56, size: 16 bits
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 72, size: 16 bits
UCHAR Reserved2; // offset: 88, size: 8 bits
};
_WHEA_CXL_PROTOCOL_ERROR_SECTION_VALIDBITS
union _WHEA_CXL_PROTOCOL_ERROR_SECTION_VALIDBITS { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG ValidBits; // offset: 0, size: 64 bits
};
_WHEA_DEVICE_INFO
union _WHEA_DEVICE_INFO { // size: 72 bytes, align: 1
struct (unnamed struct at um/cper.h) CXL; // offset: 0, size: 160 bits
UCHAR[72] AsUCHAR; // offset: 0, size: 576 bits
};
_WHEA_MEMORY_RANGE
struct _WHEA_MEMORY_RANGE { // size: 16 bytes, align: 1
ULONGLONG StartSystemPhysicalAddress; // offset: 0, size: 64 bits
ULONGLONG LengthInBytes; // offset: 64, size: 64 bits
};
_WHEA_MEMORY_RANGE_ERROR_SECTION_VALIDBITS
union _WHEA_MEMORY_RANGE_ERROR_SECTION_VALIDBITS { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONGLONG ValidBits; // offset: 0, size: 64 bits
};
_XSAVE_ARM64_SME_TPIDR2_HEADER
struct _XSAVE_ARM64_SME_TPIDR2_HEADER { // size: 32 bytes, align: 4
DWORD[8] Reserved; // offset: 0, size: 256 bits
};
_XSAVE_ARM64_SME_ZA_HEADER
struct _XSAVE_ARM64_SME_ZA_HEADER { // size: 32 bytes, align: 4
DWORD VectorLength; // offset: 0, size: 32 bits
DWORD Flags; // offset: 32, size: 32 bits
DWORD Za; // offset: 32, size: 1 bits
DWORD ReservedFlags; // offset: 33, size: 31 bits
DWORD[6] Reserved; // offset: 64, size: 192 bits
};
_XSAVE_ARM64_SME_ZT_HEADER
struct _XSAVE_ARM64_SME_ZT_HEADER { // size: 32 bytes, align: 4
DWORD RegisterCount; // offset: 0, size: 32 bits
DWORD[7] Reserved; // offset: 32, size: 224 bits
};
Structs Removed
36D3D_SHADER_CACHE_APPLICATION_DESC
struct D3D_SHADER_CACHE_APPLICATION_DESC { // size: 40 bytes, align: 8
const wchar_t * pExeFilename; // offset: 0, size: 64 bits
const wchar_t * pName; // offset: 64, size: 64 bits
D3D_VERSION_NUMBER Version; // offset: 128, size: 64 bits
const wchar_t * pEngineName; // offset: 192, size: 64 bits
D3D_VERSION_NUMBER EngineVersion; // offset: 256, size: 64 bits
};
D3D_SHADER_CACHE_COMPILER_PROPERTIES
struct D3D_SHADER_CACHE_COMPILER_PROPERTIES { // size: 288 bytes, align: 8
wchar_t[128] szAdapterFamily; // offset: 0, size: 2048 bits
UINT64 MinimumABISupportVersion; // offset: 2048, size: 64 bits
UINT64 MaximumABISupportVersion; // offset: 2112, size: 64 bits
D3D_VERSION_NUMBER CompilerVersion; // offset: 2176, size: 64 bits
D3D_VERSION_NUMBER ApplicationProfileVersion; // offset: 2240, size: 64 bits
};
D3D_SHADER_CACHE_PSDB_PROPERTIES
struct D3D_SHADER_CACHE_PSDB_PROPERTIES { // size: 16 bytes, align: 8
const wchar_t * pAdapterFamily; // offset: 0, size: 64 bits
const wchar_t * pPsdbPath; // offset: 64, size: 64 bits
};
D3D_VERSION_NUMBER
union D3D_VERSION_NUMBER { // size: 8 bytes, align: 8
UINT64 Version; // offset: 0, size: 64 bits
UINT16[4] VersionParts; // offset: 0, size: 64 bits
};
IAppxBundleFactory3
struct IAppxBundleFactory3 { // size: 8 bytes, align: 8
struct IAppxBundleFactory3Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IAppxBundleFactory3 *, const IID *const, void **) QueryInterface;
ULONG (*)(IAppxBundleFactory3 *) AddRef;
ULONG (*)(IAppxBundleFactory3 *) Release;
HRESULT (*)(IAppxBundleFactory3 *, LPCWSTR, LPCWSTR, IAppxBundleReader **) CreateBundleReaderFromSourceUri;
IAppxBundleFactory3Vtbl
struct IAppxBundleFactory3Vtbl { // size: 32 bytes, align: 8
HRESULT (*)(IAppxBundleFactory3 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IAppxBundleFactory3 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IAppxBundleFactory3 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IAppxBundleFactory3 *, LPCWSTR, LPCWSTR, IAppxBundleReader **) CreateBundleReaderFromSourceUri; // offset: 192, size: 64 bits
};
IAppxBundleReader2
struct IAppxBundleReader2 { // size: 8 bytes, align: 8
struct IAppxBundleReader2Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IAppxBundleReader2 *, const IID *const, void **) QueryInterface;
ULONG (*)(IAppxBundleReader2 *) AddRef;
ULONG (*)(IAppxBundleReader2 *) Release;
HRESULT (*)(IAppxBundleReader2 *, LPCWSTR, IAppxPackageReader **) GetPayloadPackageReader;
IAppxBundleReader2Vtbl
struct IAppxBundleReader2Vtbl { // size: 32 bytes, align: 8
HRESULT (*)(IAppxBundleReader2 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IAppxBundleReader2 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IAppxBundleReader2 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IAppxBundleReader2 *, LPCWSTR, IAppxPackageReader **) GetPayloadPackageReader; // offset: 192, size: 64 bits
};
IAppxFactory4
struct IAppxFactory4 { // size: 8 bytes, align: 8
struct IAppxFactory4Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IAppxFactory4 *, const IID *const, void **) QueryInterface;
ULONG (*)(IAppxFactory4 *) AddRef;
ULONG (*)(IAppxFactory4 *) Release;
HRESULT (*)(IAppxFactory4 *, LPCWSTR, LPCWSTR, IAppxPackageReader **) CreatePackageReaderFromSourceUri;
IAppxFactory4Vtbl
struct IAppxFactory4Vtbl { // size: 32 bytes, align: 8
HRESULT (*)(IAppxFactory4 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IAppxFactory4 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IAppxFactory4 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IAppxFactory4 *, LPCWSTR, LPCWSTR, IAppxPackageReader **) CreatePackageReaderFromSourceUri; // offset: 192, size: 64 bits
};
ID3DShaderCacheApplication
struct ID3DShaderCacheApplication { // size: 8 bytes, align: 8
struct ID3DShaderCacheApplicationVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (12)
HRESULT (*)(ID3DShaderCacheApplication *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3DShaderCacheApplication *) AddRef;
ULONG (*)(ID3DShaderCacheApplication *) Release;
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t **) GetExePath;
HRESULT (*)(ID3DShaderCacheApplication *, D3D_SHADER_CACHE_APPLICATION_DESC *) GetDesc;
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t *, const wchar_t *, UINT, const D3D_SHADER_CACHE_PSDB_PROPERTIES *, const IID *const, void **) RegisterComponent;
HRESULT (*)(ID3DShaderCacheApplication *, ID3DShaderCacheComponent *) RemoveComponent;
UINT (*)(ID3DShaderCacheApplication *) GetComponentCount;
HRESULT (*)(ID3DShaderCacheApplication *, UINT, const IID *const, void **) GetComponent;
UINT (*)(ID3DShaderCacheApplication *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargetCount;
HRESULT (*)(ID3DShaderCacheApplication *, UINT, D3D_SHADER_CACHE_COMPILER_PROPERTIES *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargets;
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t **) GetInstallerName;
ID3DShaderCacheApplicationVtbl
struct ID3DShaderCacheApplicationVtbl { // size: 96 bytes, align: 8
HRESULT (*)(ID3DShaderCacheApplication *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3DShaderCacheApplication *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3DShaderCacheApplication *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t **) GetExePath; // offset: 192, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, D3D_SHADER_CACHE_APPLICATION_DESC *) GetDesc; // offset: 256, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t *, const wchar_t *, UINT, const D3D_SHADER_CACHE_PSDB_PROPERTIES *, const IID *const, void **) RegisterComponent; // offset: 320, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, ID3DShaderCacheComponent *) RemoveComponent; // offset: 384, size: 64 bits
UINT (*)(ID3DShaderCacheApplication *) GetComponentCount; // offset: 448, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, UINT, const IID *const, void **) GetComponent; // offset: 512, size: 64 bits
UINT (*)(ID3DShaderCacheApplication *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargetCount; // offset: 576, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, UINT, D3D_SHADER_CACHE_COMPILER_PROPERTIES *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargets; // offset: 640, size: 64 bits
HRESULT (*)(ID3DShaderCacheApplication *, const wchar_t **) GetInstallerName; // offset: 704, size: 64 bits
};
ID3DShaderCacheComponent
struct ID3DShaderCacheComponent { // size: 8 bytes, align: 8
struct ID3DShaderCacheComponentVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (8)
HRESULT (*)(ID3DShaderCacheComponent *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3DShaderCacheComponent *) AddRef;
ULONG (*)(ID3DShaderCacheComponent *) Release;
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t **) GetComponentName;
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t **) GetStateObjectDatabasePath;
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t *, const wchar_t **) GetPrecompiledCachePath;
UINT (*)(ID3DShaderCacheComponent *) GetPrecompiledShaderDatabaseCount;
HRESULT (*)(ID3DShaderCacheComponent *, UINT, D3D_SHADER_CACHE_PSDB_PROPERTIES *) GetPrecompiledShaderDatabases;
ID3DShaderCacheComponentVtbl
struct ID3DShaderCacheComponentVtbl { // size: 64 bytes, align: 8
HRESULT (*)(ID3DShaderCacheComponent *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3DShaderCacheComponent *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3DShaderCacheComponent *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t **) GetComponentName; // offset: 192, size: 64 bits
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t **) GetStateObjectDatabasePath; // offset: 256, size: 64 bits
HRESULT (*)(ID3DShaderCacheComponent *, const wchar_t *, const wchar_t **) GetPrecompiledCachePath; // offset: 320, size: 64 bits
UINT (*)(ID3DShaderCacheComponent *) GetPrecompiledShaderDatabaseCount; // offset: 384, size: 64 bits
HRESULT (*)(ID3DShaderCacheComponent *, UINT, D3D_SHADER_CACHE_PSDB_PROPERTIES *) GetPrecompiledShaderDatabases; // offset: 448, size: 64 bits
};
ID3DShaderCacheExplorer
struct ID3DShaderCacheExplorer { // size: 8 bytes, align: 8
struct ID3DShaderCacheExplorerVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(ID3DShaderCacheExplorer *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3DShaderCacheExplorer *) AddRef;
ULONG (*)(ID3DShaderCacheExplorer *) Release;
HRESULT (*)(ID3DShaderCacheExplorer *, const wchar_t *, const IID *const, void **) GetApplicationFromExePath;
ID3DShaderCacheExplorerVtbl
struct ID3DShaderCacheExplorerVtbl { // size: 32 bytes, align: 8
HRESULT (*)(ID3DShaderCacheExplorer *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3DShaderCacheExplorer *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3DShaderCacheExplorer *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3DShaderCacheExplorer *, const wchar_t *, const IID *const, void **) GetApplicationFromExePath; // offset: 192, size: 64 bits
};
ID3DShaderCacheInstaller
struct ID3DShaderCacheInstaller { // size: 8 bytes, align: 8
struct ID3DShaderCacheInstallerVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (14)
HRESULT (*)(ID3DShaderCacheInstaller *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3DShaderCacheInstaller *) AddRef;
ULONG (*)(ID3DShaderCacheInstaller *) Release;
HRESULT (*)(ID3DShaderCacheInstaller *) RegisterDriverUpdateListener;
HRESULT (*)(ID3DShaderCacheInstaller *) UnregisterDriverUpdateListener;
HRESULT (*)(ID3DShaderCacheInstaller *, SC_HANDLE) RegisterServiceDriverUpdateTrigger;
HRESULT (*)(ID3DShaderCacheInstaller *, SC_HANDLE) UnregisterServiceDriverUpdateTrigger;
HRESULT (*)(ID3DShaderCacheInstaller *, const wchar_t *, const D3D_SHADER_CACHE_APPLICATION_DESC *, const IID *const, void **) RegisterApplication;
HRESULT (*)(ID3DShaderCacheInstaller *, ID3DShaderCacheApplication *) RemoveApplication;
UINT (*)(ID3DShaderCacheInstaller *) GetApplicationCount;
HRESULT (*)(ID3DShaderCacheInstaller *, UINT, const IID *const, void **) GetApplication;
HRESULT (*)(ID3DShaderCacheInstaller *) ClearAllState;
UINT (*)(ID3DShaderCacheInstaller *) GetMaxPrecompileTargetCount;
HRESULT (*)(ID3DShaderCacheInstaller *, const D3D_SHADER_CACHE_APPLICATION_DESC *, UINT *, D3D_SHADER_CACHE_COMPILER_PROPERTIES *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargets;
ID3DShaderCacheInstallerClient
struct ID3DShaderCacheInstallerClient { // size: 8 bytes, align: 8
struct ID3DShaderCacheInstallerClientVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (3)
HRESULT (*)(ID3DShaderCacheInstallerClient *, SIZE_T *, wchar_t *) GetInstallerName;
D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE (*)(ID3DShaderCacheInstallerClient *) GetInstallerScope;
HRESULT (*)(ID3DShaderCacheInstallerClient *, ID3DShaderCacheInstaller *) HandleDriverUpdate;
ID3DShaderCacheInstallerClientVtbl
struct ID3DShaderCacheInstallerClientVtbl { // size: 24 bytes, align: 8
HRESULT (*)(ID3DShaderCacheInstallerClient *, SIZE_T *, wchar_t *) GetInstallerName; // offset: 0, size: 64 bits
D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE (*)(ID3DShaderCacheInstallerClient *) GetInstallerScope; // offset: 64, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstallerClient *, ID3DShaderCacheInstaller *) HandleDriverUpdate; // offset: 128, size: 64 bits
};
ID3DShaderCacheInstallerFactory
struct ID3DShaderCacheInstallerFactory { // size: 8 bytes, align: 8
struct ID3DShaderCacheInstallerFactoryVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(ID3DShaderCacheInstallerFactory *, const IID *const, void **) QueryInterface;
ULONG (*)(ID3DShaderCacheInstallerFactory *) AddRef;
ULONG (*)(ID3DShaderCacheInstallerFactory *) Release;
HRESULT (*)(ID3DShaderCacheInstallerFactory *, ID3DShaderCacheInstallerClient *, const IID *const, void **) CreateInstaller;
HRESULT (*)(ID3DShaderCacheInstallerFactory *, int *, const IID *const, void **) CreateExplorer;
ID3DShaderCacheInstallerFactoryVtbl
struct ID3DShaderCacheInstallerFactoryVtbl { // size: 40 bytes, align: 8
HRESULT (*)(ID3DShaderCacheInstallerFactory *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3DShaderCacheInstallerFactory *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3DShaderCacheInstallerFactory *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstallerFactory *, ID3DShaderCacheInstallerClient *, const IID *const, void **) CreateInstaller; // offset: 192, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstallerFactory *, int *, const IID *const, void **) CreateExplorer; // offset: 256, size: 64 bits
};
ID3DShaderCacheInstallerVtbl
struct ID3DShaderCacheInstallerVtbl { // size: 112 bytes, align: 8
HRESULT (*)(ID3DShaderCacheInstaller *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(ID3DShaderCacheInstaller *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(ID3DShaderCacheInstaller *) Release; // offset: 128, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *) RegisterDriverUpdateListener; // offset: 192, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *) UnregisterDriverUpdateListener; // offset: 256, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, SC_HANDLE) RegisterServiceDriverUpdateTrigger; // offset: 320, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, SC_HANDLE) UnregisterServiceDriverUpdateTrigger; // offset: 384, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, const wchar_t *, const D3D_SHADER_CACHE_APPLICATION_DESC *, const IID *const, void **) RegisterApplication; // offset: 448, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, ID3DShaderCacheApplication *) RemoveApplication; // offset: 512, size: 64 bits
UINT (*)(ID3DShaderCacheInstaller *) GetApplicationCount; // offset: 576, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, UINT, const IID *const, void **) GetApplication; // offset: 640, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *) ClearAllState; // offset: 704, size: 64 bits
UINT (*)(ID3DShaderCacheInstaller *) GetMaxPrecompileTargetCount; // offset: 768, size: 64 bits
HRESULT (*)(ID3DShaderCacheInstaller *, const D3D_SHADER_CACHE_APPLICATION_DESC *, UINT *, D3D_SHADER_CACHE_COMPILER_PROPERTIES *, D3D_SHADER_CACHE_TARGET_FLAGS) GetPrecompileTargets; // offset: 832, size: 64 bits
};
IUIAutomationClientConnectionCallback
struct IUIAutomationClientConnectionCallback { // size: 8 bytes, align: 8
struct IUIAutomationClientConnectionCallbackVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IUIAutomationClientConnectionCallback *, const IID *const, void **) QueryInterface;
ULONG (*)(IUIAutomationClientConnectionCallback *) AddRef;
ULONG (*)(IUIAutomationClientConnectionCallback *) Release;
HRESULT (*)(IUIAutomationClientConnectionCallback *, IUIAutomationClientInfo *) OnConnected;
HRESULT (*)(IUIAutomationClientConnectionCallback *, IUIAutomationClientInfo *) OnDisconnected;
IUIAutomationClientConnectionCallbackVtbl
struct IUIAutomationClientConnectionCallbackVtbl { // size: 40 bytes, align: 8
HRESULT (*)(IUIAutomationClientConnectionCallback *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IUIAutomationClientConnectionCallback *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IUIAutomationClientConnectionCallback *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IUIAutomationClientConnectionCallback *, IUIAutomationClientInfo *) OnConnected; // offset: 192, size: 64 bits
HRESULT (*)(IUIAutomationClientConnectionCallback *, IUIAutomationClientInfo *) OnDisconnected; // offset: 256, size: 64 bits
};
IUIAutomationClientInfo
struct IUIAutomationClientInfo { // size: 8 bytes, align: 8
struct IUIAutomationClientInfoVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IUIAutomationClientInfo *, const IID *const, void **) QueryInterface;
ULONG (*)(IUIAutomationClientInfo *) AddRef;
ULONG (*)(IUIAutomationClientInfo *) Release;
HRESULT (*)(IUIAutomationClientInfo *, DWORD *) get_ProcessId;
HRESULT (*)(IUIAutomationClientInfo *, int *) get_ProcessName;
IUIAutomationClientInfoSource
struct IUIAutomationClientInfoSource { // size: 8 bytes, align: 8
struct IUIAutomationClientInfoSourceVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (6)
HRESULT (*)(IUIAutomationClientInfoSource *, const IID *const, void **) QueryInterface;
ULONG (*)(IUIAutomationClientInfoSource *) AddRef;
ULONG (*)(IUIAutomationClientInfoSource *) Release;
HRESULT (*)(IUIAutomationClientInfoSource *, IUIAutomationClientConnectionCallback *, unsigned long long *) RegisterClientConnectionCallback;
HRESULT (*)(IUIAutomationClientInfoSource *, unsigned long long) UnregisterClientConnectionCallback;
HRESULT (*)(IUIAutomationClientInfoSource *, SAFEARRAY **) GetConnectedClients;
IUIAutomationClientInfoSourceVtbl
struct IUIAutomationClientInfoSourceVtbl { // size: 48 bytes, align: 8
HRESULT (*)(IUIAutomationClientInfoSource *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IUIAutomationClientInfoSource *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IUIAutomationClientInfoSource *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IUIAutomationClientInfoSource *, IUIAutomationClientConnectionCallback *, unsigned long long *) RegisterClientConnectionCallback; // offset: 192, size: 64 bits
HRESULT (*)(IUIAutomationClientInfoSource *, unsigned long long) UnregisterClientConnectionCallback; // offset: 256, size: 64 bits
HRESULT (*)(IUIAutomationClientInfoSource *, SAFEARRAY **) GetConnectedClients; // offset: 320, size: 64 bits
};
IUIAutomationClientInfoVtbl
struct IUIAutomationClientInfoVtbl { // size: 40 bytes, align: 8
HRESULT (*)(IUIAutomationClientInfo *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IUIAutomationClientInfo *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IUIAutomationClientInfo *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IUIAutomationClientInfo *, DWORD *) get_ProcessId; // offset: 192, size: 64 bits
HRESULT (*)(IUIAutomationClientInfo *, int *) get_ProcessName; // offset: 256, size: 64 bits
};
_D3DDDI_DRIVERESCAPE_BUILDTESTCOMMANDBUFFER
struct _D3DDDI_DRIVERESCAPE_BUILDTESTCOMMANDBUFFER { // size: 112 bytes, align: 8
D3DDDI_DRIVERESCAPETYPE EscapeType; // offset: 0, size: 32 bits
D3DKMT_HANDLE hDevice; // offset: 32, size: 32 bits
D3DKMT_HANDLE hContext; // offset: 64, size: 32 bits
D3DDDI_BUILDTESTCOMMANDBUFFERFLAGS Flags; // offset: 96, size: 32 bits
D3DDDI_TESTCOMMANDBUFFER Command; // offset: 128, size: 576 bits
PVOID pDmaBuffer; // offset: 704, size: 64 bits
PVOID pDmaBufferPrivateData; // offset: 768, size: 64 bits
UINT DmaBufferSize; // offset: 832, size: 32 bits
UINT DmaBufferPrivateDataSize; // offset: 864, size: 32 bits
};
_EXPERIMENTAL_WEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_OPTIONS_2
struct _EXPERIMENTAL_WEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_OPTIONS_2 { // size: 80 bytes, align: 8
LPCWSTR pwszAuthenticatorName; // offset: 0, size: 64 bits
const CLSID * pClsid; // offset: 64, size: 64 bits
LPCWSTR pwszPluginRpId; // offset: 128, size: 64 bits
LPCWSTR pwszLightThemeLogoSvg; // offset: 192, size: 64 bits
LPCWSTR pwszDarkThemeLogoSvg; // offset: 256, size: 64 bits
DWORD cbAuthenticatorInfo; // offset: 320, size: 32 bits
const BYTE * pbAuthenticatorInfo; // offset: 384, size: 64 bits
DWORD cSupportedRpIds; // offset: 448, size: 32 bits
const LPCWSTR * ppwszSupportedRpIds; // offset: 512, size: 64 bits
LPCWSTR pwszUserVerificationKeyName; // offset: 576, size: 64 bits
};
_EXPERIMENTAL_WEBAUTHN_PLUGIN_UPDATE_AUTHENTICATOR_DETAILS_2
struct _EXPERIMENTAL_WEBAUTHN_PLUGIN_UPDATE_AUTHENTICATOR_DETAILS_2 { // size: 80 bytes, align: 8
LPCWSTR pwszAuthenticatorName; // offset: 0, size: 64 bits
const CLSID * pClsid; // offset: 64, size: 64 bits
const CLSID * pClsidNew; // offset: 128, size: 64 bits
LPCWSTR pwszLightThemeLogoSvg; // offset: 192, size: 64 bits
LPCWSTR pwszDarkThemeLogoSvg; // offset: 256, size: 64 bits
DWORD cbAuthenticatorInfo; // offset: 320, size: 32 bits
const BYTE * pbAuthenticatorInfo; // offset: 384, size: 64 bits
DWORD cSupportedRpIds; // offset: 448, size: 32 bits
const LPCWSTR * ppwszSupportedRpIds; // offset: 512, size: 64 bits
LPCWSTR pwszUserVerificationKeyName; // offset: 576, size: 64 bits
};
_HTTP_REQUEST_INFO_PROPERTY_INFO
struct _HTTP_REQUEST_INFO_PROPERTY_INFO { // size: 16 bytes, align: 8
HTTP_PROPERTY_FLAGS Flags; // offset: 0, size: 32 bits
ULONGLONG RequestInfoFlags; // offset: 64, size: 64 bits
};
_MINIDUMP_CALLBACK_OUTPUT
struct _MINIDUMP_CALLBACK_OUTPUT { // size: 12 bytes, align: 4
ULONG ModuleWriteFlags; // offset: 0, size: 32 bits
ULONG ThreadWriteFlags; // offset: 0, size: 32 bits
ULONG SecondaryFlags; // offset: 0, size: 32 bits
ULONG64 MemoryBase; // offset: 0, size: 64 bits
ULONG MemorySize; // offset: 64, size: 32 bits
BOOL CheckCancel; // offset: 0, size: 32 bits
BOOL Cancel; // offset: 32, size: 32 bits
HANDLE Handle; // offset: 0, size: 64 bits
HRESULT VmReadStatus; // offset: 0, size: 32 bits
ULONG VmReadBytesCompleted; // offset: 32, size: 32 bits
HRESULT Status; // offset: 0, size: 32 bits
};
_WIN32_MEMORY_NUMA_PERFORMANCE_ENTRY
struct _WIN32_MEMORY_NUMA_PERFORMANCE_ENTRY { // size: 32 bytes, align: 8
ULONG InitiatorNodeNumber; // offset: 0, size: 32 bits
ULONG TargetNodeNumber; // offset: 32, size: 32 bits
UCHAR DataType; // offset: 64, size: 8 bits
struct (unnamed struct at um/memoryapi.h) Flags; // offset: 72, size: 8 bits
ULONGLONG MinTransferSizeInBytes; // offset: 128, size: 64 bits
ULONGLONG EntryValue; // offset: 192, size: 64 bits
};
_WIN32_MEMORY_NUMA_PERFORMANCE_INFORMATION_OUTPUT
struct _WIN32_MEMORY_NUMA_PERFORMANCE_INFORMATION_OUTPUT { // size: 40 bytes, align: 8
ULONG EntryCount; // offset: 0, size: 32 bits
WIN32_MEMORY_NUMA_PERFORMANCE_ENTRY[1] PerformanceEntries; // offset: 64, size: 256 bits
};
_WINBIO_CONNECTED_SENSOR
struct _WINBIO_CONNECTED_SENSOR { // size: 8 bytes, align: 4
WINBIO_BIOMETRIC_TYPE biometricType; // offset: 0, size: 32 bits
BOOL isEnhancedSignInSecurityCapable; // offset: 32, size: 32 bits
};
Structs Modified
16NVME_CONTROLLER_REGISTERS
Before
struct NVME_CONTROLLER_REGISTERS { // size: 4096 bytes, align: 8
NVME_CONTROLLER_CAPABILITIES CAP; // offset: 0, size: 64 bits
NVME_VERSION VS; // offset: 64, size: 32 bits
ULONG INTMS; // offset: 96, size: 32 bits
ULONG INTMC; // offset: 128, size: 32 bits
NVME_CONTROLLER_CONFIGURATION CC; // offset: 160, size: 32 bits
ULONG Reserved0; // offset: 192, size: 32 bits
NVME_CONTROLLER_STATUS CSTS; // offset: 224, size: 32 bits
NVME_NVM_SUBSYSTEM_RESET NSSR; // offset: 256, size: 32 bits
NVME_ADMIN_QUEUE_ATTRIBUTES AQA; // offset: 288, size: 32 bits
NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS ASQ; // offset: 320, size: 64 bits
NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS ACQ; // offset: 384, size: 64 bits
NVME_CONTROLLER_MEMORY_BUFFER_LOCATION CMBLOC; // offset: 448, size: 32 bits
NVME_CONTROLLER_MEMORY_BUFFER_SIZE CMBSZ; // offset: 480, size: 32 bits
ULONG[9] Reserved1; // offset: 512, size: 288 bits
NVME_NVM_SUBSYSTEM_SHUTDOWN NSSD; // offset: 800, size: 32 bits
NVME_CONTROLLER_READY_TIMEOUTS CRTO; // offset: 832, size: 32 bits
ULONG[933] Reserved2; // offset: 864, size: 29856 bits
ULONG[64] Reserved3; // offset: 30720, size: 2048 bits
ULONG[0] Doorbells; // offset: 32768, size: 0 bits
};
After
struct NVME_CONTROLLER_REGISTERS { // size: 4096 bytes, align: 8
NVME_CONTROLLER_CAPABILITIES CAP; // offset: 0, size: 64 bits
NVME_VERSION VS; // offset: 64, size: 32 bits
ULONG INTMS; // offset: 96, size: 32 bits
ULONG INTMC; // offset: 128, size: 32 bits
NVME_CONTROLLER_CONFIGURATION CC; // offset: 160, size: 32 bits
ULONG Reserved0; // offset: 192, size: 32 bits
NVME_CONTROLLER_STATUS CSTS; // offset: 224, size: 32 bits
NVME_NVM_SUBSYSTEM_RESET NSSR; // offset: 256, size: 32 bits
NVME_ADMIN_QUEUE_ATTRIBUTES AQA; // offset: 288, size: 32 bits
NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS ASQ; // offset: 320, size: 64 bits
NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS ACQ; // offset: 384, size: 64 bits
NVME_CONTROLLER_MEMORY_BUFFER_LOCATION CMBLOC; // offset: 448, size: 32 bits
NVME_CONTROLLER_MEMORY_BUFFER_SIZE CMBSZ; // offset: 480, size: 32 bits
NVME_BOOT_PARTITION_INFORMATION BPINFO; // offset: 512, size: 32 bits
ULONG[8] Reserved1; // offset: 544, size: 256 bits
NVME_NVM_SUBSYSTEM_SHUTDOWN NSSD; // offset: 800, size: 32 bits
NVME_CONTROLLER_READY_TIMEOUTS CRTO; // offset: 832, size: 32 bits
ULONG[933] Reserved2; // offset: 864, size: 29856 bits
ULONG[64] Reserved3; // offset: 30720, size: 2048 bits
ULONG[0] Doorbells; // offset: 32768, size: 0 bits
};
Changes
-
Added field
NVME_BOOT_PARTITION_INFORMATION BPINFOat offset 512 bits (32 bits). -
Changed
Reserved1type fromULONG[9]toULONG[8]. -
Moved
Reserved1from offset 512 to 544 bits. -
Changed
Reserved1size from 288 to 256 bits.
WHV_REGISTER_VALUE
Before
union WHV_REGISTER_VALUE { // size: 16 bytes, align: 8
WHV_UINT128 Reg128; // offset: 0, size: 128 bits
UINT64 Reg64; // offset: 0, size: 64 bits
UINT32 Reg32; // offset: 0, size: 32 bits
UINT16 Reg16; // offset: 0, size: 16 bits
UINT8 Reg8; // offset: 0, size: 8 bits
WHV_INTERNAL_ACTIVITY_REGISTER InternalActivity; // offset: 0, size: 64 bits
WHV_DELIVERABILITY_NOTIFICATIONS_REGISTER DeliverabilityNotifications; // offset: 0, size: 64 bits
WHV_X64_FP_REGISTER Fp; // offset: 0, size: 128 bits
WHV_X64_FP_CONTROL_STATUS_REGISTER FpControlStatus; // offset: 0, size: 128 bits
WHV_X64_XMM_CONTROL_STATUS_REGISTER XmmControlStatus; // offset: 0, size: 128 bits
WHV_X64_SEGMENT_REGISTER Segment; // offset: 0, size: 128 bits
WHV_X64_TABLE_REGISTER Table; // offset: 0, size: 128 bits
WHV_X64_INTERRUPT_STATE_REGISTER InterruptState; // offset: 0, size: 64 bits
WHV_X64_PENDING_INTERRUPTION_REGISTER PendingInterruption; // offset: 0, size: 64 bits
WHV_X64_PENDING_EXCEPTION_EVENT ExceptionEvent; // offset: 0, size: 128 bits
WHV_X64_PENDING_EXT_INT_EVENT ExtIntEvent; // offset: 0, size: 128 bits
WHV_X64_PENDING_DEBUG_EXCEPTION PendingDebugException; // offset: 0, size: 64 bits
WHV_X64_NESTED_GUEST_STATE NestedState; // offset: 0, size: 128 bits
WHV_X64_NESTED_INVEPT_REGISTER InvEpt; // offset: 0, size: 128 bits
WHV_X64_NESTED_INVVPID_REGISTER InvVpid; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT0 SvmNestedExit0; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT1 SvmNestedExit1; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT2 SvmNestedExit2; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT3 SvmNestedExit3; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT0 VmxNestedExit0; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT1 VmxNestedExit1; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT2 VmxNestedExit2; // offset: 0, size: 128 bits
};
After
union WHV_REGISTER_VALUE { // size: 16 bytes, align: 8
WHV_UINT128 Reg128; // offset: 0, size: 128 bits
UINT64 Reg64; // offset: 0, size: 64 bits
UINT32 Reg32; // offset: 0, size: 32 bits
UINT16 Reg16; // offset: 0, size: 16 bits
UINT8 Reg8; // offset: 0, size: 8 bits
WHV_INTERNAL_ACTIVITY_REGISTER InternalActivity; // offset: 0, size: 64 bits
WHV_DELIVERABILITY_NOTIFICATIONS_REGISTER DeliverabilityNotifications; // offset: 0, size: 64 bits
WHV_X64_FP_REGISTER Fp; // offset: 0, size: 128 bits
WHV_X64_FP_CONTROL_STATUS_REGISTER FpControlStatus; // offset: 0, size: 128 bits
WHV_X64_XMM_CONTROL_STATUS_REGISTER XmmControlStatus; // offset: 0, size: 128 bits
WHV_X64_SEGMENT_REGISTER Segment; // offset: 0, size: 128 bits
WHV_X64_TABLE_REGISTER Table; // offset: 0, size: 128 bits
WHV_X64_INTERRUPT_STATE_REGISTER InterruptState; // offset: 0, size: 64 bits
WHV_X64_PENDING_INTERRUPTION_REGISTER PendingInterruption; // offset: 0, size: 64 bits
WHV_X64_PENDING_EXCEPTION_EVENT ExceptionEvent; // offset: 0, size: 128 bits
WHV_X64_PENDING_EXT_INT_EVENT ExtIntEvent; // offset: 0, size: 128 bits
WHV_X64_PENDING_DEBUG_EXCEPTION PendingDebugException; // offset: 0, size: 64 bits
WHV_X64_NESTED_GUEST_STATE NestedState; // offset: 0, size: 128 bits
WHV_X64_NESTED_INVEPT_REGISTER InvEpt; // offset: 0, size: 128 bits
WHV_X64_NESTED_INVVPID_REGISTER InvVpid; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT0 SvmNestedExit0; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT1 SvmNestedExit1; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT2 SvmNestedExit2; // offset: 0, size: 128 bits
WHV_X64_PENDING_SVM_NESTED_EXIT_EVENT3 SvmNestedExit3; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT0 VmxNestedExit0; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT1 VmxNestedExit1; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT2 VmxNestedExit2; // offset: 0, size: 128 bits
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT3 VmxNestedExit3; // offset: 0, size: 128 bits
};
Changes
-
Added field
WHV_X64_PENDING_VMX_NESTED_EXIT_EVENT3 VmxNestedExit3at offset 0 bits (128 bits).
WHV_SYNTHETIC_PROCESSOR_FEATURES
Before
union WHV_SYNTHETIC_PROCESSOR_FEATURES { // size: 8 bytes, align: 8
UINT64 HypervisorPresent; // offset: 0, size: 1 bits
UINT64 Hv1; // offset: 1, size: 1 bits
UINT64 AccessVpRunTimeReg; // offset: 2, size: 1 bits
UINT64 AccessPartitionReferenceCounter; // offset: 3, size: 1 bits
UINT64 AccessSynicRegs; // offset: 4, size: 1 bits
UINT64 AccessSyntheticTimerRegs; // offset: 5, size: 1 bits
UINT64 AccessIntrCtrlRegs; // offset: 6, size: 1 bits
UINT64 AccessHypercallRegs; // offset: 7, size: 1 bits
UINT64 AccessVpIndex; // offset: 8, size: 1 bits
UINT64 AccessPartitionReferenceTsc; // offset: 9, size: 1 bits
UINT64 AccessGuestIdleReg; // offset: 10, size: 1 bits
UINT64 AccessFrequencyRegs; // offset: 11, size: 1 bits
UINT64 ReservedZ12; // offset: 12, size: 1 bits
UINT64 ReservedZ13; // offset: 13, size: 1 bits
UINT64 ReservedZ14; // offset: 14, size: 1 bits
UINT64 EnableExtendedGvaRangesForFlushVirtualAddressList; // offset: 15, size: 1 bits
UINT64 ReservedZ16; // offset: 16, size: 1 bits
UINT64 ReservedZ17; // offset: 17, size: 1 bits
UINT64 FastHypercallOutput; // offset: 18, size: 1 bits
UINT64 ReservedZ19; // offset: 19, size: 1 bits
UINT64 ReservedZ20; // offset: 20, size: 1 bits
UINT64 ReservedZ21; // offset: 21, size: 1 bits
UINT64 DirectSyntheticTimers; // offset: 22, size: 1 bits
UINT64 ReservedZ23; // offset: 23, size: 1 bits
UINT64 ExtendedProcessorMasks; // offset: 24, size: 1 bits
UINT64 TbFlushHypercalls; // offset: 25, size: 1 bits
UINT64 SyntheticClusterIpi; // offset: 26, size: 1 bits
UINT64 NotifyLongSpinWait; // offset: 27, size: 1 bits
UINT64 QueryNumaDistance; // offset: 28, size: 1 bits
UINT64 SignalEvents; // offset: 29, size: 1 bits
UINT64 RetargetDeviceInterrupt; // offset: 30, size: 1 bits
UINT64 RestoreTime; // offset: 31, size: 1 bits
UINT64 EnlightenedVmcs; // offset: 32, size: 1 bits
UINT64 NestedDebugCtl; // offset: 33, size: 1 bits
UINT64 SyntheticTimeUnhaltedTimer; // offset: 34, size: 1 bits
UINT64 IdleSpecCtrl; // offset: 35, size: 1 bits
UINT64 ReservedZ36; // offset: 36, size: 1 bits
UINT64 WakeVps; // offset: 37, size: 1 bits
UINT64 AccessVpRegs; // offset: 38, size: 1 bits
UINT64 ReservedZ39; // offset: 39, size: 1 bits
UINT64 ReservedZ40; // offset: 40, size: 1 bits
UINT64 Reserved; // offset: 41, size: 23 bits
UINT64 AsUINT64; // offset: 0, size: 64 bits
};
After
union WHV_SYNTHETIC_PROCESSOR_FEATURES { // size: 8 bytes, align: 8
UINT64 HypervisorPresent; // offset: 0, size: 1 bits
UINT64 Hv1; // offset: 1, size: 1 bits
UINT64 AccessVpRunTimeReg; // offset: 2, size: 1 bits
UINT64 AccessPartitionReferenceCounter; // offset: 3, size: 1 bits
UINT64 AccessSynicRegs; // offset: 4, size: 1 bits
UINT64 AccessSyntheticTimerRegs; // offset: 5, size: 1 bits
UINT64 AccessIntrCtrlRegs; // offset: 6, size: 1 bits
UINT64 AccessHypercallRegs; // offset: 7, size: 1 bits
UINT64 AccessVpIndex; // offset: 8, size: 1 bits
UINT64 AccessPartitionReferenceTsc; // offset: 9, size: 1 bits
UINT64 AccessGuestIdleReg; // offset: 10, size: 1 bits
UINT64 AccessFrequencyRegs; // offset: 11, size: 1 bits
UINT64 ReservedZ12; // offset: 12, size: 1 bits
UINT64 ReservedZ13; // offset: 13, size: 1 bits
UINT64 ReservedZ14; // offset: 14, size: 1 bits
UINT64 EnableExtendedGvaRangesForFlushVirtualAddressList; // offset: 15, size: 1 bits
UINT64 ReservedZ16; // offset: 16, size: 1 bits
UINT64 ReservedZ17; // offset: 17, size: 1 bits
UINT64 FastHypercallOutput; // offset: 18, size: 1 bits
UINT64 ReservedZ19; // offset: 19, size: 1 bits
UINT64 ReservedZ20; // offset: 20, size: 1 bits
UINT64 ReservedZ21; // offset: 21, size: 1 bits
UINT64 DirectSyntheticTimers; // offset: 22, size: 1 bits
UINT64 ReservedZ23; // offset: 23, size: 1 bits
UINT64 ExtendedProcessorMasks; // offset: 24, size: 1 bits
UINT64 TbFlushHypercalls; // offset: 25, size: 1 bits
UINT64 SyntheticClusterIpi; // offset: 26, size: 1 bits
UINT64 NotifyLongSpinWait; // offset: 27, size: 1 bits
UINT64 QueryNumaDistance; // offset: 28, size: 1 bits
UINT64 SignalEvents; // offset: 29, size: 1 bits
UINT64 RetargetDeviceInterrupt; // offset: 30, size: 1 bits
UINT64 RestoreTime; // offset: 31, size: 1 bits
UINT64 EnlightenedVmcs; // offset: 32, size: 1 bits
UINT64 NestedDebugCtl; // offset: 33, size: 1 bits
UINT64 SyntheticTimeUnhaltedTimer; // offset: 34, size: 1 bits
UINT64 IdleSpecCtrl; // offset: 35, size: 1 bits
UINT64 ReservedZ36; // offset: 36, size: 1 bits
UINT64 WakeVps; // offset: 37, size: 1 bits
UINT64 AccessVpRegs; // offset: 38, size: 1 bits
UINT64 ReservedZ39; // offset: 39, size: 1 bits
UINT64 ReservedZ40; // offset: 40, size: 1 bits
UINT64 ReservedZ41; // offset: 41, size: 1 bits
UINT64 ReservedZ42; // offset: 42, size: 1 bits
UINT64 ReservedZ43; // offset: 43, size: 1 bits
UINT64 ReservedZ44; // offset: 44, size: 1 bits
UINT64 ReservedZ45; // offset: 45, size: 1 bits
UINT64 Reserved; // offset: 46, size: 18 bits
UINT64 AsUINT64; // offset: 0, size: 64 bits
};
Changes
-
Moved
Reservedfrom offset 41 to 46 bits. -
Changed
Reservedsize from 23 to 18 bits. -
Added field
UINT64 ReservedZ41at offset 41 bits (1 bits). -
Added field
UINT64 ReservedZ42at offset 42 bits (1 bits). -
Added field
UINT64 ReservedZ43at offset 43 bits (1 bits). -
Added field
UINT64 ReservedZ44at offset 44 bits (1 bits). -
Added field
UINT64 ReservedZ45at offset 45 bits (1 bits).
WHV_X64_PROCESSOR_FEATURES1
Before
union WHV_X64_PROCESSOR_FEATURES1 { // size: 8 bytes, align: 8
UINT64 ACountMCountSupport; // offset: 0, size: 1 bits
UINT64 TscInvariantSupport; // offset: 1, size: 1 bits
UINT64 ClZeroSupport; // offset: 2, size: 1 bits
UINT64 RdpruSupport; // offset: 3, size: 1 bits
UINT64 La57Support; // offset: 4, size: 1 bits
UINT64 MbecSupport; // offset: 5, size: 1 bits
UINT64 NestedVirtSupport; // offset: 6, size: 1 bits
UINT64 PsfdSupport; // offset: 7, size: 1 bits
UINT64 CetSsSupport; // offset: 8, size: 1 bits
UINT64 CetIbtSupport; // offset: 9, size: 1 bits
UINT64 VmxExceptionInjectSupport; // offset: 10, size: 1 bits
UINT64 Reserved2; // offset: 11, size: 1 bits
UINT64 UmwaitTpauseSupport; // offset: 12, size: 1 bits
UINT64 MovdiriSupport; // offset: 13, size: 1 bits
UINT64 Movdir64bSupport; // offset: 14, size: 1 bits
UINT64 CldemoteSupport; // offset: 15, size: 1 bits
UINT64 SerializeSupport; // offset: 16, size: 1 bits
UINT64 TscDeadlineTmrSupport; // offset: 17, size: 1 bits
UINT64 TscAdjustSupport; // offset: 18, size: 1 bits
UINT64 FZLRepMovsb; // offset: 19, size: 1 bits
UINT64 FSRepStosb; // offset: 20, size: 1 bits
UINT64 FSRepCmpsb; // offset: 21, size: 1 bits
UINT64 TsxLdTrkSupport; // offset: 22, size: 1 bits
UINT64 VmxInsOutsExitInfoSupport; // offset: 23, size: 1 bits
UINT64 Reserved3; // offset: 24, size: 1 bits
UINT64 SbdrSsdpNoSupport; // offset: 25, size: 1 bits
UINT64 FbsdpNoSupport; // offset: 26, size: 1 bits
UINT64 PsdpNoSupport; // offset: 27, size: 1 bits
UINT64 FbClearSupport; // offset: 28, size: 1 bits
UINT64 BtcNoSupport; // offset: 29, size: 1 bits
UINT64 IbpbRsbFlushSupport; // offset: 30, size: 1 bits
UINT64 StibpAlwaysOnSupport; // offset: 31, size: 1 bits
UINT64 PerfGlobalCtrlSupport; // offset: 32, size: 1 bits
UINT64 NptExecuteOnlySupport; // offset: 33, size: 1 bits
UINT64 NptADFlagsSupport; // offset: 34, size: 1 bits
UINT64 Npt1GbPageSupport; // offset: 35, size: 1 bits
UINT64 Reserved4; // offset: 36, size: 1 bits
UINT64 Reserved5; // offset: 37, size: 1 bits
UINT64 Reserved6; // offset: 38, size: 1 bits
UINT64 Reserved7; // offset: 39, size: 1 bits
UINT64 CmpccxaddSupport; // offset: 40, size: 1 bits
UINT64 Reserved8; // offset: 41, size: 1 bits
UINT64 Reserved9; // offset: 42, size: 1 bits
UINT64 Reserved10; // offset: 43, size: 1 bits
UINT64 Reserved11; // offset: 44, size: 1 bits
UINT64 PrefetchISupport; // offset: 45, size: 1 bits
UINT64 Sha512Support; // offset: 46, size: 1 bits
UINT64 Reserved12; // offset: 47, size: 1 bits
UINT64 Reserved13; // offset: 48, size: 1 bits
UINT64 Reserved14; // offset: 49, size: 1 bits
UINT64 SM3Support; // offset: 50, size: 1 bits
UINT64 SM4Support; // offset: 51, size: 1 bits
UINT64 ReservedBank1_52_57; // offset: 52, size: 6 bits
UINT64 Reserved17; // offset: 58, size: 1 bits
UINT64 Reserved18; // offset: 59, size: 1 bits
UINT64 Reserved19; // offset: 60, size: 1 bits
UINT64 Reserved20; // offset: 61, size: 3 bits
UINT64 AsUINT64; // offset: 0, size: 64 bits
};
After
union WHV_X64_PROCESSOR_FEATURES1 { // size: 8 bytes, align: 8
UINT64 ACountMCountSupport; // offset: 0, size: 1 bits
UINT64 TscInvariantSupport; // offset: 1, size: 1 bits
UINT64 ClZeroSupport; // offset: 2, size: 1 bits
UINT64 RdpruSupport; // offset: 3, size: 1 bits
UINT64 La57Support; // offset: 4, size: 1 bits
UINT64 MbecSupport; // offset: 5, size: 1 bits
UINT64 NestedVirtSupport; // offset: 6, size: 1 bits
UINT64 PsfdSupport; // offset: 7, size: 1 bits
UINT64 CetSsSupport; // offset: 8, size: 1 bits
UINT64 CetIbtSupport; // offset: 9, size: 1 bits
UINT64 VmxExceptionInjectSupport; // offset: 10, size: 1 bits
UINT64 Reserved2; // offset: 11, size: 1 bits
UINT64 UmwaitTpauseSupport; // offset: 12, size: 1 bits
UINT64 MovdiriSupport; // offset: 13, size: 1 bits
UINT64 Movdir64bSupport; // offset: 14, size: 1 bits
UINT64 CldemoteSupport; // offset: 15, size: 1 bits
UINT64 SerializeSupport; // offset: 16, size: 1 bits
UINT64 TscDeadlineTmrSupport; // offset: 17, size: 1 bits
UINT64 TscAdjustSupport; // offset: 18, size: 1 bits
UINT64 FZLRepMovsb; // offset: 19, size: 1 bits
UINT64 FSRepStosb; // offset: 20, size: 1 bits
UINT64 FSRepCmpsb; // offset: 21, size: 1 bits
UINT64 TsxLdTrkSupport; // offset: 22, size: 1 bits
UINT64 VmxInsOutsExitInfoSupport; // offset: 23, size: 1 bits
UINT64 Reserved3; // offset: 24, size: 1 bits
UINT64 SbdrSsdpNoSupport; // offset: 25, size: 1 bits
UINT64 FbsdpNoSupport; // offset: 26, size: 1 bits
UINT64 PsdpNoSupport; // offset: 27, size: 1 bits
UINT64 FbClearSupport; // offset: 28, size: 1 bits
UINT64 BtcNoSupport; // offset: 29, size: 1 bits
UINT64 IbpbRsbFlushSupport; // offset: 30, size: 1 bits
UINT64 StibpAlwaysOnSupport; // offset: 31, size: 1 bits
UINT64 PerfGlobalCtrlSupport; // offset: 32, size: 1 bits
UINT64 NptExecuteOnlySupport; // offset: 33, size: 1 bits
UINT64 NptADFlagsSupport; // offset: 34, size: 1 bits
UINT64 Npt1GbPageSupport; // offset: 35, size: 1 bits
UINT64 Reserved4; // offset: 36, size: 1 bits
UINT64 Reserved5; // offset: 37, size: 1 bits
UINT64 Reserved6; // offset: 38, size: 1 bits
UINT64 Reserved7; // offset: 39, size: 1 bits
UINT64 CmpccxaddSupport; // offset: 40, size: 1 bits
UINT64 Reserved8; // offset: 41, size: 1 bits
UINT64 Reserved9; // offset: 42, size: 1 bits
UINT64 Reserved10; // offset: 43, size: 1 bits
UINT64 Reserved11; // offset: 44, size: 1 bits
UINT64 PrefetchISupport; // offset: 45, size: 1 bits
UINT64 Sha512Support; // offset: 46, size: 1 bits
UINT64 Reserved12; // offset: 47, size: 1 bits
UINT64 Reserved13; // offset: 48, size: 1 bits
UINT64 Reserved14; // offset: 49, size: 1 bits
UINT64 SM3Support; // offset: 50, size: 1 bits
UINT64 SM4Support; // offset: 51, size: 1 bits
UINT64 Reserved15; // offset: 52, size: 1 bits
UINT64 Reserved16; // offset: 53, size: 1 bits
UINT64 SbpbSupported; // offset: 54, size: 1 bits
UINT64 IbpbBrTypeSupported; // offset: 55, size: 1 bits
UINT64 SrsoNoSupported; // offset: 56, size: 1 bits
UINT64 SrsoUserKernelNoSupported; // offset: 57, size: 1 bits
UINT64 Reserved17; // offset: 58, size: 1 bits
UINT64 Reserved18; // offset: 59, size: 1 bits
UINT64 Reserved19; // offset: 60, size: 1 bits
UINT64 LassSupport; // offset: 61, size: 1 bits
UINT64 IdleHltInterceptSupport; // offset: 62, size: 1 bits
UINT64 MsrListSupport; // offset: 63, size: 1 bits
UINT64 AsUINT64; // offset: 0, size: 64 bits
};
Changes
-
Added field
UINT64 IbpbBrTypeSupportedat offset 55 bits (1 bits). -
Added field
UINT64 IdleHltInterceptSupportat offset 62 bits (1 bits). -
Added field
UINT64 LassSupportat offset 61 bits (1 bits). -
Added field
UINT64 MsrListSupportat offset 63 bits (1 bits). -
Added field
UINT64 Reserved15at offset 52 bits (1 bits). -
Added field
UINT64 Reserved16at offset 53 bits (1 bits). -
Removed field
UINT64 Reserved20from offset 61 bits (3 bits). -
Removed field
UINT64 ReservedBank1_52_57from offset 52 bits (6 bits). -
Added field
UINT64 SbpbSupportedat offset 54 bits (1 bits). -
Added field
UINT64 SrsoNoSupportedat offset 56 bits (1 bits). -
Added field
UINT64 SrsoUserKernelNoSupportedat offset 57 bits (1 bits).
_D3DKMT_ADAPTERTYPE
Before
struct _D3DKMT_ADAPTERTYPE { // size: 4 bytes, align: 4
UINT RenderSupported; // offset: 0, size: 1 bits
UINT DisplaySupported; // offset: 1, size: 1 bits
UINT SoftwareDevice; // offset: 2, size: 1 bits
UINT PostDevice; // offset: 3, size: 1 bits
UINT HybridDiscrete; // offset: 4, size: 1 bits
UINT HybridIntegrated; // offset: 5, size: 1 bits
UINT IndirectDisplayDevice; // offset: 6, size: 1 bits
UINT Paravirtualized; // offset: 7, size: 1 bits
UINT ACGSupported; // offset: 8, size: 1 bits
UINT SupportSetTimingsFromVidPn; // offset: 9, size: 1 bits
UINT Detachable; // offset: 10, size: 1 bits
UINT ComputeOnly; // offset: 11, size: 1 bits
UINT Prototype; // offset: 12, size: 1 bits
UINT RuntimePowerManagement; // offset: 13, size: 1 bits
UINT Reserved; // offset: 14, size: 18 bits
UINT Value; // offset: 0, size: 32 bits
};
After
struct _D3DKMT_ADAPTERTYPE { // size: 4 bytes, align: 4
UINT RenderSupported; // offset: 0, size: 1 bits
UINT DisplaySupported; // offset: 1, size: 1 bits
UINT SoftwareDevice; // offset: 2, size: 1 bits
UINT PostDevice; // offset: 3, size: 1 bits
UINT HybridDiscrete; // offset: 4, size: 1 bits
UINT HybridIntegrated; // offset: 5, size: 1 bits
UINT IndirectDisplayDevice; // offset: 6, size: 1 bits
UINT Paravirtualized; // offset: 7, size: 1 bits
UINT ACGSupported; // offset: 8, size: 1 bits
UINT SupportSetTimingsFromVidPn; // offset: 9, size: 1 bits
UINT Detachable; // offset: 10, size: 1 bits
UINT ComputeOnly; // offset: 11, size: 1 bits
UINT Prototype; // offset: 12, size: 1 bits
UINT RuntimePowerManagement; // offset: 13, size: 1 bits
UINT TestOnly; // offset: 14, size: 1 bits
UINT SingleAdapterHybridMode; // offset: 15, size: 1 bits
UINT Reserved; // offset: 16, size: 16 bits
UINT Value; // offset: 0, size: 32 bits
};
Changes
-
Moved
Reservedfrom offset 14 to 16 bits. -
Changed
Reservedsize from 18 to 16 bits. -
Added field
UINT SingleAdapterHybridModeat offset 15 bits (1 bits). -
Added field
UINT TestOnlyat offset 14 bits (1 bits).
_D3DKMT_CONNECT_DOORBELL
Before
struct _D3DKMT_CONNECT_DOORBELL { // size: 8 bytes, align: 4
D3DKMT_HANDLE hDoorbell; // offset: 0, size: 32 bits
D3DKMT_CONNECT_DOORBELL_FLAGS Flags; // offset: 32, size: 32 bits
};
After
struct _D3DKMT_CONNECT_DOORBELL { // size: 88 bytes, align: 8
D3DKMT_HANDLE hHwQueue; // offset: 0, size: 32 bits
D3DKMT_CONNECT_DOORBELL_FLAGS Flags; // offset: 32, size: 32 bits
D3DDDI_DOORBELLMAPPING DoorbellMapping; // offset: 64, size: 128 bits
BYTE[64] Reserved; // offset: 192, size: 512 bits
};
Changes
- Size changed from 8 to 88 bytes.
- Alignment changed from 4 to 8 bytes.
-
Added field
D3DDDI_DOORBELLMAPPING DoorbellMappingat offset 64 bits (128 bits). -
Added field
BYTE[64] Reservedat offset 192 bits (512 bits). -
Removed field
D3DKMT_HANDLE hDoorbellfrom offset 0 bits (32 bits). -
Added field
D3DKMT_HANDLE hHwQueueat offset 0 bits (32 bits).
_D3DKMT_ENUMADAPTERS_FILTER
Before
union _D3DKMT_ENUMADAPTERS_FILTER { // size: 8 bytes, align: 8
ULONGLONG IncludeComputeOnly; // offset: 0, size: 1 bits
ULONGLONG IncludeDisplayOnly; // offset: 1, size: 1 bits
ULONGLONG IncludeVirtualGpuOnly; // offset: 2, size: 1 bits
ULONGLONG Reserved; // offset: 3, size: 61 bits
ULONGLONG Value; // offset: 0, size: 64 bits
};
After
union _D3DKMT_ENUMADAPTERS_FILTER { // size: 8 bytes, align: 8
ULONGLONG IncludeComputeOnly; // offset: 0, size: 1 bits
ULONGLONG IncludeDisplayOnly; // offset: 1, size: 1 bits
ULONGLONG IncludeVirtualGpuOnly; // offset: 2, size: 1 bits
ULONGLONG IncludeTestOnly; // offset: 3, size: 1 bits
ULONGLONG Reserved; // offset: 4, size: 60 bits
ULONGLONG Value; // offset: 0, size: 64 bits
};
Changes
-
Added field
ULONGLONG IncludeTestOnlyat offset 3 bits (1 bits). -
Moved
Reservedfrom offset 3 to 4 bits. -
Changed
Reservedsize from 61 to 60 bits.
_D3DKMT_NOTIFY_WORK_SUBMISSION
Before
struct _D3DKMT_NOTIFY_WORK_SUBMISSION { // size: 8 bytes, align: 4
D3DKMT_HANDLE hDoorbell; // offset: 0, size: 32 bits
D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS Flags; // offset: 32, size: 32 bits
};
After
struct _D3DKMT_NOTIFY_WORK_SUBMISSION { // size: 72 bytes, align: 4
D3DKMT_HANDLE hHwQueue; // offset: 0, size: 32 bits
D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS Flags; // offset: 32, size: 32 bits
BYTE[64] PrivateDriverData; // offset: 64, size: 512 bits
};
Changes
- Size changed from 8 to 72 bytes.
-
Added field
BYTE[64] PrivateDriverDataat offset 64 bits (512 bits). -
Removed field
D3DKMT_HANDLE hDoorbellfrom offset 0 bits (32 bits). -
Added field
D3DKMT_HANDLE hHwQueueat offset 0 bits (32 bits).
_DEBUG_STACK_FRAME_EX
Before
struct _DEBUG_STACK_FRAME_EX { // size: 136 bytes, align: 8
ULONG64 InstructionOffset; // offset: 0, size: 64 bits
ULONG64 ReturnOffset; // offset: 64, size: 64 bits
ULONG64 FrameOffset; // offset: 128, size: 64 bits
ULONG64 StackOffset; // offset: 192, size: 64 bits
ULONG64 FuncTableEntry; // offset: 256, size: 64 bits
ULONG64[4] Params; // offset: 320, size: 256 bits
ULONG64[6] Reserved; // offset: 576, size: 384 bits
BOOL Virtual; // offset: 960, size: 32 bits
ULONG FrameNumber; // offset: 992, size: 32 bits
ULONG InlineFrameContext; // offset: 1024, size: 32 bits
ULONG Reserved1; // offset: 1056, size: 32 bits
};
After
struct _DEBUG_STACK_FRAME_EX { // size: 136 bytes, align: 8
ULONG64 InstructionOffset; // offset: 0, size: 64 bits
ULONG64 ReturnOffset; // offset: 64, size: 64 bits
ULONG64 FrameOffset; // offset: 128, size: 64 bits
ULONG64 StackOffset; // offset: 192, size: 64 bits
ULONG64 FuncTableEntry; // offset: 256, size: 64 bits
ULONG64[4] Params; // offset: 320, size: 256 bits
ULONG64[6] Reserved; // offset: 576, size: 384 bits
BOOL Virtual; // offset: 960, size: 32 bits
ULONG FrameNumber; // offset: 992, size: 32 bits
ULONG InlineFrameContext; // offset: 1024, size: 32 bits
ULONG FrameMachine; // offset: 1056, size: 32 bits
};
Changes
-
Added field
ULONG FrameMachineat offset 1056 bits (32 bits). -
Removed field
ULONG Reserved1from offset 1056 bits (32 bits).
_DXGK_PTE
Before
struct _DXGK_PTE { // size: 16 bytes, align: 8
ULONGLONG Valid; // offset: 0, size: 1 bits
ULONGLONG Zero; // offset: 1, size: 1 bits
ULONGLONG CacheCoherent; // offset: 2, size: 1 bits
ULONGLONG ReadOnly; // offset: 3, size: 1 bits
ULONGLONG NoExecute; // offset: 4, size: 1 bits
ULONGLONG Segment; // offset: 5, size: 5 bits
ULONGLONG LargePage; // offset: 10, size: 1 bits
ULONGLONG PhysicalAdapterIndex; // offset: 11, size: 6 bits
ULONGLONG PageTablePageSize; // offset: 17, size: 2 bits
ULONGLONG SystemReserved0; // offset: 19, size: 1 bits
ULONGLONG Reserved; // offset: 20, size: 44 bits
ULONGLONG Flags; // offset: 0, size: 64 bits
ULONGLONG PageAddress; // offset: 64, size: 64 bits
ULONGLONG PageTableAddress; // offset: 64, size: 64 bits
};
After
struct _DXGK_PTE { // size: 16 bytes, align: 8
ULONGLONG Valid; // offset: 0, size: 1 bits
ULONGLONG Zero; // offset: 1, size: 1 bits
ULONGLONG CacheCoherent; // offset: 2, size: 1 bits
ULONGLONG ReadOnly; // offset: 3, size: 1 bits
ULONGLONG NoExecute; // offset: 4, size: 1 bits
ULONGLONG Segment; // offset: 5, size: 5 bits
ULONGLONG LargePage; // offset: 10, size: 1 bits
ULONGLONG PhysicalAdapterIndex; // offset: 11, size: 6 bits
ULONGLONG PageTablePageSize; // offset: 17, size: 2 bits
ULONGLONG SystemReserved0; // offset: 19, size: 1 bits
ULONGLONG BlockAccessMode; // offset: 20, size: 2 bits
ULONGLONG Reserved; // offset: 22, size: 42 bits
ULONGLONG Flags; // offset: 0, size: 64 bits
ULONGLONG PageAddress; // offset: 64, size: 64 bits
ULONGLONG PageTableAddress; // offset: 64, size: 64 bits
};
Changes
-
Added field
ULONGLONG BlockAccessModeat offset 20 bits (2 bits). -
Moved
Reservedfrom offset 20 to 22 bits. -
Changed
Reservedsize from 44 to 42 bits.
_MIDL_STUB_MESSAGE
Before
struct _MIDL_STUB_MESSAGE { // size: 400 bytes, align: 8
PRPC_MESSAGE RpcMsg; // offset: 0, size: 64 bits
unsigned char * Buffer; // offset: 64, size: 64 bits
unsigned char * BufferStart; // offset: 128, size: 64 bits
unsigned char * BufferEnd; // offset: 192, size: 64 bits
unsigned char * BufferMark; // offset: 256, size: 64 bits
unsigned long BufferLength; // offset: 320, size: 32 bits
unsigned long MemorySize; // offset: 352, size: 32 bits
unsigned char * Memory; // offset: 384, size: 64 bits
unsigned char IsClient; // offset: 448, size: 8 bits
unsigned char Pad; // offset: 456, size: 8 bits
unsigned short uFlags2; // offset: 464, size: 16 bits
int ReuseBuffer; // offset: 480, size: 32 bits
struct NDR_ALLOC_ALL_NODES_CONTEXT * pAllocAllNodesContext; // offset: 512, size: 64 bits
struct NDR_POINTER_QUEUE_STATE * pPointerQueueState; // offset: 576, size: 64 bits
int IgnoreEmbeddedPointers; // offset: 640, size: 32 bits
unsigned char * PointerBufferMark; // offset: 704, size: 64 bits
unsigned char CorrDespIncrement; // offset: 768, size: 8 bits
unsigned char uFlags; // offset: 776, size: 8 bits
unsigned short UniquePtrCount; // offset: 784, size: 16 bits
ULONG_PTR MaxCount; // offset: 832, size: 64 bits
unsigned long Offset; // offset: 896, size: 32 bits
unsigned long ActualCount; // offset: 928, size: 32 bits
void *(*)(size_t) pfnAllocate; // offset: 960, size: 64 bits
void (*)(void *) pfnFree; // offset: 1024, size: 64 bits
unsigned char * StackTop; // offset: 1088, size: 64 bits
unsigned char * pPresentedType; // offset: 1152, size: 64 bits
unsigned char * pTransmitType; // offset: 1216, size: 64 bits
handle_t SavedHandle; // offset: 1280, size: 64 bits
const struct _MIDL_STUB_DESC * StubDesc; // offset: 1344, size: 64 bits
struct _FULL_PTR_XLAT_TABLES * FullPtrXlatTables; // offset: 1408, size: 64 bits
unsigned long FullPtrRefId; // offset: 1472, size: 32 bits
unsigned long PointerLength; // offset: 1504, size: 32 bits
int fInDontFree; // offset: 1536, size: 1 bits
int fDontCallFreeInst; // offset: 1537, size: 1 bits
int fUnused1; // offset: 1538, size: 1 bits
int fHasReturn; // offset: 1539, size: 1 bits
int fHasExtensions; // offset: 1540, size: 1 bits
int fHasNewCorrDesc; // offset: 1541, size: 1 bits
int fIsIn; // offset: 1542, size: 1 bits
int fIsOut; // offset: 1543, size: 1 bits
int fIsOicf; // offset: 1544, size: 1 bits
int fBufferValid; // offset: 1545, size: 1 bits
int fHasMemoryValidateCallback; // offset: 1546, size: 1 bits
int fInFree; // offset: 1547, size: 1 bits
int fNeedMCCP; // offset: 1548, size: 1 bits
int fUnused2; // offset: 1549, size: 3 bits
int fUnused3; // offset: 1552, size: 16 bits
unsigned long dwDestContext; // offset: 1568, size: 32 bits
void * pvDestContext; // offset: 1600, size: 64 bits
NDR_SCONTEXT * SavedContextHandles; // offset: 1664, size: 64 bits
long ParamNumber; // offset: 1728, size: 32 bits
struct IRpcChannelBuffer * pRpcChannelBuffer; // offset: 1792, size: 64 bits
PARRAY_INFO pArrayInfo; // offset: 1856, size: 64 bits
unsigned long * SizePtrCountArray; // offset: 1920, size: 64 bits
unsigned long * SizePtrOffsetArray; // offset: 1984, size: 64 bits
unsigned long * SizePtrLengthArray; // offset: 2048, size: 64 bits
void * pArgQueue; // offset: 2112, size: 64 bits
unsigned long dwStubPhase; // offset: 2176, size: 32 bits
void * LowStackMark; // offset: 2240, size: 64 bits
PNDR_ASYNC_MESSAGE pAsyncMsg; // offset: 2304, size: 64 bits
PNDR_CORRELATION_INFO pCorrInfo; // offset: 2368, size: 64 bits
unsigned char * pCorrMemory; // offset: 2432, size: 64 bits
void * pMemoryList; // offset: 2496, size: 64 bits
INT_PTR pCSInfo; // offset: 2560, size: 64 bits
unsigned char * ConformanceMark; // offset: 2624, size: 64 bits
unsigned char * VarianceMark; // offset: 2688, size: 64 bits
INT_PTR Unused; // offset: 2752, size: 64 bits
struct _NDR_PROC_CONTEXT * pContext; // offset: 2816, size: 64 bits
void * ContextHandleHash; // offset: 2880, size: 64 bits
void * pUserMarshalList; // offset: 2944, size: 64 bits
unsigned char * pFullPtrFormat; // offset: 3008, size: 64 bits
INT_PTR Reserved51_4; // offset: 3072, size: 64 bits
INT_PTR Reserved51_5; // offset: 3136, size: 64 bits
};
After
struct _MIDL_STUB_MESSAGE { // size: 400 bytes, align: 8
PRPC_MESSAGE RpcMsg; // offset: 0, size: 64 bits
unsigned char * Buffer; // offset: 64, size: 64 bits
unsigned char * BufferStart; // offset: 128, size: 64 bits
unsigned char * BufferEnd; // offset: 192, size: 64 bits
unsigned char * BufferMark; // offset: 256, size: 64 bits
unsigned long BufferLength; // offset: 320, size: 32 bits
unsigned long MemorySize; // offset: 352, size: 32 bits
unsigned char * Memory; // offset: 384, size: 64 bits
unsigned char IsClient; // offset: 448, size: 8 bits
unsigned char Pad; // offset: 456, size: 8 bits
unsigned short uFlags2; // offset: 464, size: 16 bits
int ReuseBuffer; // offset: 480, size: 32 bits
struct NDR_ALLOC_ALL_NODES_CONTEXT * pAllocAllNodesContext; // offset: 512, size: 64 bits
struct NDR_POINTER_QUEUE_STATE * pPointerQueueState; // offset: 576, size: 64 bits
int IgnoreEmbeddedPointers; // offset: 640, size: 32 bits
unsigned char * PointerBufferMark; // offset: 704, size: 64 bits
unsigned char CorrDespIncrement; // offset: 768, size: 8 bits
unsigned char uFlags; // offset: 776, size: 8 bits
unsigned short UniquePtrCount; // offset: 784, size: 16 bits
ULONG_PTR MaxCount; // offset: 832, size: 64 bits
unsigned long Offset; // offset: 896, size: 32 bits
unsigned long ActualCount; // offset: 928, size: 32 bits
void *(*)(size_t) pfnAllocate; // offset: 960, size: 64 bits
void (*)(void *) pfnFree; // offset: 1024, size: 64 bits
unsigned char * StackTop; // offset: 1088, size: 64 bits
unsigned char * pPresentedType; // offset: 1152, size: 64 bits
unsigned char * pTransmitType; // offset: 1216, size: 64 bits
handle_t SavedHandle; // offset: 1280, size: 64 bits
const struct _MIDL_STUB_DESC * StubDesc; // offset: 1344, size: 64 bits
struct _FULL_PTR_XLAT_TABLES * FullPtrXlatTables; // offset: 1408, size: 64 bits
unsigned long FullPtrRefId; // offset: 1472, size: 32 bits
unsigned long PointerLength; // offset: 1504, size: 32 bits
unsigned int fInDontFree; // offset: 1536, size: 1 bits
unsigned int fDontCallFreeInst; // offset: 1537, size: 1 bits
unsigned int fUnused1; // offset: 1538, size: 1 bits
unsigned int fHasReturn; // offset: 1539, size: 1 bits
unsigned int fHasExtensions; // offset: 1540, size: 1 bits
unsigned int fHasNewCorrDesc; // offset: 1541, size: 1 bits
unsigned int fIsIn; // offset: 1542, size: 1 bits
unsigned int fIsOut; // offset: 1543, size: 1 bits
unsigned int fIsOicf; // offset: 1544, size: 1 bits
unsigned int fBufferValid; // offset: 1545, size: 1 bits
unsigned int fHasMemoryValidateCallback; // offset: 1546, size: 1 bits
unsigned int fInFree; // offset: 1547, size: 1 bits
unsigned int fNeedMCCP; // offset: 1548, size: 1 bits
unsigned int fUnused2; // offset: 1549, size: 3 bits
unsigned int fUnused3; // offset: 1552, size: 16 bits
unsigned long dwDestContext; // offset: 1568, size: 32 bits
void * pvDestContext; // offset: 1600, size: 64 bits
NDR_SCONTEXT * SavedContextHandles; // offset: 1664, size: 64 bits
long ParamNumber; // offset: 1728, size: 32 bits
struct IRpcChannelBuffer * pRpcChannelBuffer; // offset: 1792, size: 64 bits
PARRAY_INFO pArrayInfo; // offset: 1856, size: 64 bits
unsigned long * SizePtrCountArray; // offset: 1920, size: 64 bits
unsigned long * SizePtrOffsetArray; // offset: 1984, size: 64 bits
unsigned long * SizePtrLengthArray; // offset: 2048, size: 64 bits
void * pArgQueue; // offset: 2112, size: 64 bits
unsigned long dwStubPhase; // offset: 2176, size: 32 bits
void * LowStackMark; // offset: 2240, size: 64 bits
PNDR_ASYNC_MESSAGE pAsyncMsg; // offset: 2304, size: 64 bits
PNDR_CORRELATION_INFO pCorrInfo; // offset: 2368, size: 64 bits
unsigned char * pCorrMemory; // offset: 2432, size: 64 bits
void * pMemoryList; // offset: 2496, size: 64 bits
INT_PTR pCSInfo; // offset: 2560, size: 64 bits
unsigned char * ConformanceMark; // offset: 2624, size: 64 bits
unsigned char * VarianceMark; // offset: 2688, size: 64 bits
INT_PTR Unused; // offset: 2752, size: 64 bits
struct _NDR_PROC_CONTEXT * pContext; // offset: 2816, size: 64 bits
void * ContextHandleHash; // offset: 2880, size: 64 bits
void * pUserMarshalList; // offset: 2944, size: 64 bits
unsigned char * pFullPtrFormat; // offset: 3008, size: 64 bits
INT_PTR Reserved51_4; // offset: 3072, size: 64 bits
INT_PTR Reserved51_5; // offset: 3136, size: 64 bits
};
Changes
-
Changed
fBufferValidtype frominttounsigned int. -
Changed
fDontCallFreeInsttype frominttounsigned int. -
Changed
fHasExtensionstype frominttounsigned int. -
Changed
fHasMemoryValidateCallbacktype frominttounsigned int. -
Changed
fHasNewCorrDesctype frominttounsigned int. -
Changed
fHasReturntype frominttounsigned int. -
Changed
fInDontFreetype frominttounsigned int. -
Changed
fInFreetype frominttounsigned int. -
Changed
fIsIntype frominttounsigned int. -
Changed
fIsOicftype frominttounsigned int. -
Changed
fIsOuttype frominttounsigned int. -
Changed
fNeedMCCPtype frominttounsigned int. -
Changed
fUnused1type frominttounsigned int. -
Changed
fUnused2type frominttounsigned int. -
Changed
fUnused3type frominttounsigned int.
_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Before
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { // size: 80 bytes, align: 8
LOGICAL_PROCESSOR_RELATIONSHIP Relationship; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
PROCESSOR_RELATIONSHIP Processor; // offset: 64, size: 320 bits
NUMA_NODE_RELATIONSHIP NumaNode; // offset: 64, size: 320 bits
CACHE_RELATIONSHIP Cache; // offset: 64, size: 384 bits
GROUP_RELATIONSHIP Group; // offset: 64, size: 576 bits
};
After
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { // size: 80 bytes, align: 8
LOGICAL_PROCESSOR_RELATIONSHIP Relationship; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
PROCESSOR_RELATIONSHIP Processor; // offset: 64, size: 320 bits
NUMA_NODE_RELATIONSHIP NumaNode; // offset: 64, size: 320 bits
CACHE_RELATIONSHIP Cache; // offset: 64, size: 384 bits
GROUP_RELATIONSHIP Group; // offset: 64, size: 576 bits
SHARED_COMPUTE_UNIT_RELATIONSHIP SharedComputeUnit; // offset: 64, size: 320 bits
};
Changes
-
Added field
SHARED_COMPUTE_UNIT_RELATIONSHIP SharedComputeUnitat offset 64 bits (320 bits).
_SYSTEM_PROCESS_INFORMATION
Before
struct _SYSTEM_PROCESS_INFORMATION { // size: 256 bytes, align: 8
ULONG NextEntryOffset; // offset: 0, size: 32 bits
ULONG NumberOfThreads; // offset: 32, size: 32 bits
BYTE[48] Reserved1; // offset: 64, size: 384 bits
UNICODE_STRING ImageName; // offset: 448, size: 128 bits
KPRIORITY BasePriority; // offset: 576, size: 32 bits
HANDLE UniqueProcessId; // offset: 640, size: 64 bits
PVOID Reserved2; // offset: 704, size: 64 bits
ULONG HandleCount; // offset: 768, size: 32 bits
ULONG SessionId; // offset: 800, size: 32 bits
PVOID Reserved3; // offset: 832, size: 64 bits
SIZE_T PeakVirtualSize; // offset: 896, size: 64 bits
SIZE_T VirtualSize; // offset: 960, size: 64 bits
ULONG Reserved4; // offset: 1024, size: 32 bits
SIZE_T PeakWorkingSetSize; // offset: 1088, size: 64 bits
SIZE_T WorkingSetSize; // offset: 1152, size: 64 bits
PVOID Reserved5; // offset: 1216, size: 64 bits
SIZE_T QuotaPagedPoolUsage; // offset: 1280, size: 64 bits
PVOID Reserved6; // offset: 1344, size: 64 bits
SIZE_T QuotaNonPagedPoolUsage; // offset: 1408, size: 64 bits
SIZE_T PagefileUsage; // offset: 1472, size: 64 bits
SIZE_T PeakPagefileUsage; // offset: 1536, size: 64 bits
SIZE_T PrivatePageCount; // offset: 1600, size: 64 bits
LARGE_INTEGER[6] Reserved7; // offset: 1664, size: 384 bits
};
After
struct _SYSTEM_PROCESS_INFORMATION { // size: 256 bytes, align: 8
ULONG NextEntryOffset; // offset: 0, size: 32 bits
ULONG NumberOfThreads; // offset: 32, size: 32 bits
BYTE[48] Reserved1; // offset: 64, size: 384 bits
UNICODE_STRING ImageName; // offset: 448, size: 128 bits
KPRIORITY BasePriority; // offset: 576, size: 32 bits
HANDLE UniqueProcessId; // offset: 640, size: 64 bits
HANDLE InheritedFromUniqueProcessId; // offset: 704, size: 64 bits
ULONG HandleCount; // offset: 768, size: 32 bits
ULONG SessionId; // offset: 800, size: 32 bits
PVOID Reserved3; // offset: 832, size: 64 bits
SIZE_T PeakVirtualSize; // offset: 896, size: 64 bits
SIZE_T VirtualSize; // offset: 960, size: 64 bits
ULONG Reserved4; // offset: 1024, size: 32 bits
SIZE_T PeakWorkingSetSize; // offset: 1088, size: 64 bits
SIZE_T WorkingSetSize; // offset: 1152, size: 64 bits
PVOID Reserved5; // offset: 1216, size: 64 bits
SIZE_T QuotaPagedPoolUsage; // offset: 1280, size: 64 bits
PVOID Reserved6; // offset: 1344, size: 64 bits
SIZE_T QuotaNonPagedPoolUsage; // offset: 1408, size: 64 bits
SIZE_T PagefileUsage; // offset: 1472, size: 64 bits
SIZE_T PeakPagefileUsage; // offset: 1536, size: 64 bits
SIZE_T PrivatePageCount; // offset: 1600, size: 64 bits
LARGE_INTEGER[6] Reserved7; // offset: 1664, size: 384 bits
};
Changes
-
Added field
HANDLE InheritedFromUniqueProcessIdat offset 704 bits (64 bits). -
Removed field
PVOID Reserved2from offset 704 bits (64 bits).
_XSAVE_ARM64_SVE_HEADER
Before
struct _XSAVE_ARM64_SVE_HEADER { // size: 32 bytes, align: 4
DWORD VectorLength; // offset: 0, size: 32 bits
DWORD VectorRegisterOffset; // offset: 32, size: 32 bits
DWORD PredicateRegisterOffset; // offset: 64, size: 32 bits
DWORD[5] Reserved; // offset: 96, size: 160 bits
};
After
struct _XSAVE_ARM64_SVE_HEADER { // size: 32 bytes, align: 4
DWORD VectorLength; // offset: 0, size: 32 bits
DWORD VectorRegisterOffset; // offset: 32, size: 32 bits
DWORD PredicateRegisterOffset; // offset: 64, size: 32 bits
DWORD Flags; // offset: 96, size: 32 bits
DWORD Sm; // offset: 96, size: 1 bits
DWORD ReservedFlags; // offset: 97, size: 31 bits
DWORD[4] Reserved; // offset: 128, size: 128 bits
};
Changes
-
Added field
DWORD Flagsat offset 96 bits (32 bits). -
Changed
Reservedtype fromDWORD[5]toDWORD[4]. -
Moved
Reservedfrom offset 96 to 128 bits. -
Changed
Reservedsize from 160 to 128 bits. -
Added field
DWORD ReservedFlagsat offset 97 bits (31 bits). -
Added field
DWORD Smat offset 96 bits (1 bits).
_XSTATE_CONFIGURATION
Before
struct _XSTATE_CONFIGURATION { // size: 840 bytes, align: 8
DWORD64 EnabledFeatures; // offset: 0, size: 64 bits
DWORD64 EnabledVolatileFeatures; // offset: 64, size: 64 bits
DWORD Size; // offset: 128, size: 32 bits
DWORD ControlFlags; // offset: 160, size: 32 bits
DWORD OptimizedSave; // offset: 160, size: 1 bits
DWORD CompactionEnabled; // offset: 161, size: 1 bits
DWORD ExtendedFeatureDisable; // offset: 162, size: 1 bits
XSTATE_FEATURE[64] Features; // offset: 192, size: 4096 bits
DWORD64 EnabledSupervisorFeatures; // offset: 4288, size: 64 bits
DWORD64 AlignedFeatures; // offset: 4352, size: 64 bits
DWORD AllFeatureSize; // offset: 4416, size: 32 bits
DWORD[64] AllFeatures; // offset: 4448, size: 2048 bits
DWORD64 EnabledUserVisibleSupervisorFeatures; // offset: 6528, size: 64 bits
DWORD64 ExtendedFeatureDisableFeatures; // offset: 6592, size: 64 bits
DWORD AllNonLargeFeatureSize; // offset: 6656, size: 32 bits
WORD MaxSveVectorLength; // offset: 6688, size: 16 bits
WORD Spare1; // offset: 6704, size: 16 bits
};
After
struct _XSTATE_CONFIGURATION { // size: 856 bytes, align: 8
DWORD64 EnabledFeatures; // offset: 0, size: 64 bits
DWORD64 EnabledVolatileFeatures; // offset: 64, size: 64 bits
DWORD Size; // offset: 128, size: 32 bits
DWORD ControlFlags; // offset: 160, size: 32 bits
DWORD OptimizedSave; // offset: 160, size: 1 bits
DWORD CompactionEnabled; // offset: 161, size: 1 bits
DWORD ExtendedFeatureDisable; // offset: 162, size: 1 bits
XSTATE_FEATURE[64] Features; // offset: 192, size: 4096 bits
DWORD64 EnabledSupervisorFeatures; // offset: 4288, size: 64 bits
DWORD64 AlignedFeatures; // offset: 4352, size: 64 bits
DWORD AllFeatureSize; // offset: 4416, size: 32 bits
DWORD[64] AllFeatures; // offset: 4448, size: 2048 bits
DWORD64 EnabledUserVisibleSupervisorFeatures; // offset: 6528, size: 64 bits
DWORD64 ExtendedFeatureDisableFeatures; // offset: 6592, size: 64 bits
DWORD AllNonLargeFeatureSize; // offset: 6656, size: 32 bits
DWORD[3] Amd64Spare1; // offset: 6688, size: 96 bits
WORD MaxSveVectorLength; // offset: 6688, size: 16 bits
WORD MaxSmeVectorLength; // offset: 6704, size: 16 bits
WORD SmeZTRegisterCount; // offset: 6720, size: 16 bits
WORD Arm64Flags; // offset: 6736, size: 16 bits
WORD SmeFa64; // offset: 6736, size: 1 bits
BYTE SupportedSmeVectorLengths; // offset: 6752, size: 8 bits
BYTE[3] Arm64Spare; // offset: 6760, size: 24 bits
DWORD64 Spare; // offset: 6784, size: 64 bits
};
Changes
- Size changed from 840 to 856 bytes.
-
Added field
DWORD[3] Amd64Spare1at offset 6688 bits (96 bits). -
Added field
WORD Arm64Flagsat offset 6736 bits (16 bits). -
Added field
BYTE[3] Arm64Spareat offset 6760 bits (24 bits). -
Added field
WORD MaxSmeVectorLengthat offset 6704 bits (16 bits). -
Added field
WORD SmeFa64at offset 6736 bits (1 bits). -
Added field
WORD SmeZTRegisterCountat offset 6720 bits (16 bits). -
Added field
DWORD64 Spareat offset 6784 bits (64 bits). -
Removed field
WORD Spare1from offset 6704 bits (16 bits). -
Added field
BYTE SupportedSmeVectorLengthsat offset 6752 bits (8 bits).
_inputQPSettings
Before
struct _inputQPSettings { // size: 24 bytes, align: 4
UINT32 minBlockSize; // offset: 0, size: 32 bits
UINT32 maxBlockSize; // offset: 32, size: 32 bits
UINT32 stepsBlockSize; // offset: 64, size: 32 bits
eAVEncVideoQPMapElementDataType dataType; // offset: 96, size: 32 bits
INT16 minValue; // offset: 128, size: 16 bits
INT16 maxValue; // offset: 144, size: 16 bits
UINT16 step; // offset: 160, size: 16 bits
};
After
struct _inputQPSettings { // size: 24 bytes, align: 4
UINT32 minBlockSize; // offset: 0, size: 32 bits
UINT32 maxBlockSize; // offset: 32, size: 32 bits
UINT32 stepsBlockSize; // offset: 64, size: 32 bits
eAVEncVideoQPMapElementDataType dataType; // offset: 96, size: 32 bits
INT16 minValue; // offset: 128, size: 16 bits
INT16 maxValue; // offset: 144, size: 16 bits
UINT16 steps; // offset: 160, size: 16 bits
};
Changes
-
Removed field
UINT16 stepfrom offset 160 bits (16 bits). -
Added field
UINT16 stepsat offset 160 bits (16 bits).
Functions Added
27LONG AddNoFence(volatile LONG * Destination, LONG Value);
int AddNoFence16(volatile int * Destination, int Value);
LONG64 AddNoFence64(volatile LONG64 * Destination, LONG64 Value);
DWORD64 AddULong64NoFence(volatile DWORD64 * Destination, DWORD64 Value);
DWORD AddULongNoFence(volatile DWORD * Destination, DWORD Value);
WORD AddUShortNoFence(volatile WORD * Destination, WORD Value);
NTSTATUS D3DKMTCreateHwQueueForUserModeSubmission(D3DKMT_CREATEHWQUEUEFORUSERMODESUBMISSION * /* unnamed */);
NTSTATUS D3DKMTResizeRingBuffer(D3DKMT_RESIZERINGBUFFER * /* unnamed */);
HRESULT EXPERIMENTAL_WinBioAreEnhancedSignInSecurityRequirementsMet(BOOL * AreRequirementsMet);
HRESULT EXPERIMENTAL_WinBioGetConnectedSensors(SIZE_T * SensorCount, EXPERIMENTAL_WINBIO_CONNECTED_SENSOR ** ConnectedSensors);
HRESULT EXPERIMENTAL_WinBioGetEnhancedSignInSecurityEnrolledFactors(WINBIO_IDENTITY * Identity, WINBIO_BIOMETRIC_TYPE * EnhancedSignInSecurityEnrolledFactors);
HRESULT EXPERIMENTAL_WinBioGetEnhancedSignInSecurityStateSource(WINBIO_POLICY_SOURCE * Source);
HRESULT EXPERIMENTAL_WinBioGetEssState(EXPERIMENTAL_PWINBIO_ESS_STATE EssState);
HRESULT EXPERIMENTAL_WinBioIsDeviceEnhancedSignInSecurityCapable(BOOL * IsCapable);
HRESULT EXPERIMENTAL_WinBioIsDeviceEnhancedSignInSecurityEnabled(BOOL * IsEnabled);
BOOL EngFntCacheFlush(PVOID OffsetBuffer, BOOL DiscardContent);
BOOL GetNumaNodeMemoryClosestInitiatorNode(USHORT TargetNodeNumber, USHORT * InitiatorNodeNumber);
BOOL GetNumaNodeMemoryReadBandwidth(USHORT TargetNodeNumber, USHORT InitiatorNodeNumber, NUMA_NODE_MEMORY_PERFORMANCE_BANDWIDTH * Bandwidth);
BOOL GetNumaNodeMemoryReadLatency(USHORT TargetNodeNumber, USHORT InitiatorNodeNumber, NUMA_NODE_MEMORY_PERFORMANCE_LATENCY * Latency);
BOOL GetNumaNodeMemoryWriteBandwidth(USHORT TargetNodeNumber, USHORT InitiatorNodeNumber, NUMA_NODE_MEMORY_PERFORMANCE_BANDWIDTH * Bandwidth);
BOOL GetNumaNodeMemoryWriteLatency(USHORT TargetNodeNumber, USHORT InitiatorNodeNumber, NUMA_NODE_MEMORY_PERFORMANCE_LATENCY * Latency);
DWORD64 IncrementULong64NoFence(volatile DWORD64 * Destination);
DWORD IncrementULongNoFence(volatile DWORD * Destination);
DWORD RtlGetImageFileMachines(PCWSTR DosFileName, IMAGE_FILE_MACHINES * MachineTypeFlags);
NTSTATUS RtlVirtualUnwind3(ULONG HandlerType, ULONG64 ImageBase, ULONG64 ControlPc, int FunctionEntry, int ContextRecord, int MachineFrameUnwound, PVOID * HandlerData, int EstablisherFrame, int ContextPointers, int LowLimit, int HighLimit, int * HandlerRoutine, ULONG UnwindFlags, PULONG ResultFlags);
BOOL WTSIsIsolationSession(int pbIsolationSession);
int _InterlockedCompareExchange8(volatile int * Destination, int ExChange, int Comperand);
Functions Removed
34HRESULT CimConvertBlockImage(PCWSTR imageContainingPath, PCWSTR existingImageName, PCWSTR newImageContainingPath);
HRESULT CloseUserBoundKeyAuthContext(int handle);
HRESULT CloseUserBoundKeySession(int sessionHandle);
BOOL ConvertPrimaryPointerToMouseDrag(void);
HRESULT CreateUserBoundKeyRequestForDeriveSharedSecret(int sessionHandle, PCWSTR keyName, const void * publicKeyBytes, int publicKeyBytesSize, int * nonce, void ** encryptedRequest, int * encryptedRequestSize);
HRESULT CreateUserBoundKeyRequestForRetrieveAuthorizationContext(int sessionHandle, PCWSTR keyName, int * nonce, void ** encryptedRequest, int * encryptedRequestSize);
HRESULT EXPERIMENTAL_WebAuthNPluginAddAuthenticator2(EXPERIMENTAL_PCWEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_OPTIONS_2 pPluginAddAuthenticatorOptions, PWEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_RESPONSE * ppPluginAddAuthenticatorResponse);
HRESULT EXPERIMENTAL_WebAuthNPluginPerformUserVerification2(EXPERIMENTAL_PCWEBAUTHN_PLUGIN_USER_VERIFICATION_REQUEST_2 pPluginUserVerification, DWORD * pcbResponse, int (int *) _Outptr_result_buffer_maybenull_);
HRESULT EXPERIMENTAL_WebAuthNPluginUpdateAuthenticatorDetails2(EXPERIMENTAL_PCWEBAUTHN_PLUGIN_UPDATE_AUTHENTICATOR_DETAILS_2 pPluginUpdateAuthenticatorDetails);
BOOL GetMemoryNumaClosestInitiatorNode(ULONG TargetNodeNumber, ULONG * InitiatorNodeNumber);
BOOL GetMemoryNumaPerformanceInformation(ULONG NodeNumber, UCHAR DataType, WIN32_MEMORY_NUMA_PERFORMANCE_INFORMATION_OUTPUT ** PerfInfo);
HRESULT GetUserBoundKeyAuthContext(int sessionHandle, const void * authContextBlob, int authContextBlobSize, int nonce, int * authContextHandle);
HRESULT InitializeUserBoundKeySession(const void * challenge, int challengeSize, void ** report, int * reportSize, int * sessionHandle);
BOOLEAN IsWHvEmulatorCreateEmulatorPresent(void);
BOOLEAN IsWHvEmulatorDestroyEmulatorPresent(void);
BOOLEAN IsWHvEmulatorTryIoEmulationPresent(void);
BOOLEAN IsWHvEmulatorTryMmioEmulationPresent(void);
HRESULT OPMXboxEnableHDCP(OPM_HDCP_TYPE HDCPType);
HRESULT OPMXboxGetHDCPStatus(OPM_HDCP_STATUS * pHDCPStatus);
HRESULT OPMXboxGetHDCPStatusAndType(OPM_HDCP_STATUS * pHDCPStatus, OPM_HDCP_TYPE * pHDCPType);
HRESULT ProtectUserBoundKey(int authContext, const void * userKey, int userKeySize, void ** boundKey, int * boundKeySize);
HRESULT UnprotectUserBoundKey(int sessionHandle, int authContext, const void * sessionEncryptedDerivedSecret, int sessionEncryptedDerivedSecretSize, const void * encryptedUserBoundKey, int encryptedUserBoundKeySize, int nonce, void ** userKey, int * userKeySize);
HRESULT ValidateUserBoundKeyAuthContext(PCWSTR keyName, int authContextHandle, int count, const USER_BOUND_KEY_AUTH_CONTEXT_PROPERTY * values);
HRESULT WHvEmulatorCreateEmulator(const WHV_EMULATOR_CALLBACKS * Callbacks, WHV_EMULATOR_HANDLE * Emulator);
HRESULT WHvEmulatorDestroyEmulator(WHV_EMULATOR_HANDLE Emulator);
HRESULT WHvEmulatorTryIoEmulation(WHV_EMULATOR_HANDLE Emulator, void * Context, const WHV_VP_EXIT_CONTEXT * VpContext, const WHV_X64_IO_PORT_ACCESS_CONTEXT * IoInstructionContext, WHV_EMULATOR_STATUS * EmulatorReturnStatus);
HRESULT WHvEmulatorTryMmioEmulation(WHV_EMULATOR_HANDLE Emulator, void * Context, const WHV_VP_EXIT_CONTEXT * VpContext, const WHV_MEMORY_ACCESS_CONTEXT * MmioInstructionContext, WHV_EMULATOR_STATUS * EmulatorReturnStatus);
HRESULT WinBioAreEnhancedSignInSecurityRequirementsMet(BOOL * AreRequirementsMet);
HRESULT WinBioGetConnectedSensors(SIZE_T * SensorCount, WINBIO_CONNECTED_SENSOR ** ConnectedSensors);
HRESULT WinBioGetEnhancedSignInSecurityEnrolledFactors(WINBIO_IDENTITY * Identity, WINBIO_BIOMETRIC_TYPE * EnhancedSignInSecurityEnrolledFactors);
HRESULT WinBioGetEnhancedSignInSecurityStateSource(WINBIO_POLICY_SOURCE * Source);
HRESULT WinBioGetEssState(PWINBIO_ESS_STATE EssState);
HRESULT WinBioIsDeviceEnhancedSignInSecurityCapable(BOOL * IsCapable);
HRESULT WinBioIsDeviceEnhancedSignInSecurityEnabled(BOOL * IsEnabled);
Functions Changed
3GetBestInterfaceEx
Before
DWORD GetBestInterfaceEx(struct sockaddr * pDestAddr, int pdwBestIfIndex);
After
NTSTATUS GetBestInterfaceEx(struct sockaddr * DestinationAddress, PULONG BestIfIndex);
GetStagedPackageOrigin
Before
LONG GetStagedPackageOrigin(PCWSTR packageFullName, PackageOrigin * origin);
After
LONG GetStagedPackageOrigin(PCWSTR packageFullName, PackageOrigin * origin);
RtlVirtualUnwind2
Before
NTSTATUS RtlVirtualUnwind2(ULONG HandlerType, ULONG64 ImageBase, ULONG64 ControlPc, int FunctionEntry, int ContextRecord, int MachineFrameUnwound, PVOID * HandlerData, int EstablisherFrame, int ContextPointers, int LowLimit, int HighLimit, int * HandlerRoutine, ULONG UnwindFlags);
After
DWORD RtlVirtualUnwind2(DWORD HandlerType, DWORD64 ImageBase, DWORD64 ControlPc, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PBOOLEAN MachineFrameUnwound, PVOID * HandlerData, PDWORD64 EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers, PDWORD64 LowLimit, PDWORD64 HighLimit, PEXCEPTION_ROUTINE * HandlerRoutine, DWORD UnwindFlags);