10.0.17763.4 → 10.0.18362.2
200
Structs added
4
Structs removed
15
Structs modified
72
Functions added
16
Functions removed
1
Functions changed
Structs Added
200D3D12_DEVICE_REMOVED_EXTENDED_DATA1
struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 { // size: 40 bytes, align: 8
HRESULT DeviceRemovedReason; // offset: 0, size: 32 bits
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; // offset: 64, size: 64 bits
D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; // offset: 128, size: 192 bits
};
D3D12_DRED_ALLOCATION_NODE
struct D3D12_DRED_ALLOCATION_NODE { // size: 32 bytes, align: 8
const char * ObjectNameA; // offset: 0, size: 64 bits
const wchar_t * ObjectNameW; // offset: 64, size: 64 bits
D3D12_DRED_ALLOCATION_TYPE AllocationType; // offset: 128, size: 32 bits
const struct D3D12_DRED_ALLOCATION_NODE * pNext; // offset: 192, size: 64 bits
};
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT { // size: 8 bytes, align: 8
const D3D12_AUTO_BREADCRUMB_NODE * pHeadAutoBreadcrumbNode; // offset: 0, size: 64 bits
};
D3D12_DRED_PAGE_FAULT_OUTPUT
struct D3D12_DRED_PAGE_FAULT_OUTPUT { // size: 24 bytes, align: 8
D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; // offset: 0, size: 64 bits
const D3D12_DRED_ALLOCATION_NODE * pHeadExistingAllocationNode; // offset: 64, size: 64 bits
const D3D12_DRED_ALLOCATION_NODE * pHeadRecentFreedAllocationNode; // offset: 128, size: 64 bits
};
D3D12_FEATURE_DATA_D3D12_OPTIONS6
struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 { // size: 20 bytes, align: 4
BOOL AdditionalShadingRatesSupported; // offset: 0, size: 32 bits
BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; // offset: 32, size: 32 bits
D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; // offset: 64, size: 32 bits
UINT ShadingRateImageTileSize; // offset: 96, size: 32 bits
BOOL BackgroundProcessingSupported; // offset: 128, size: 32 bits
};
D3D12_FEATURE_DATA_QUERY_META_COMMAND
struct D3D12_FEATURE_DATA_QUERY_META_COMMAND { // size: 56 bytes, align: 8
GUID CommandId; // offset: 0, size: 128 bits
UINT NodeMask; // offset: 128, size: 32 bits
const void * pQueryInputData; // offset: 192, size: 64 bits
SIZE_T QueryInputDataSizeInBytes; // offset: 256, size: 64 bits
void * pQueryOutputData; // offset: 320, size: 64 bits
SIZE_T QueryOutputDataSizeInBytes; // offset: 384, size: 64 bits
};
D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT
struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT { // size: 16 bytes, align: 4
UINT NodeIndex; // offset: 0, size: 32 bits
BOOL VideoDecodeSupport; // offset: 32, size: 32 bits
BOOL VideoProcessSupport; // offset: 64, size: 32 bits
BOOL VideoEncodeSupport; // offset: 96, size: 32 bits
};
D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR
struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR { // size: 32 bytes, align: 4
UINT NodeIndex; // offset: 0, size: 32 bits
DXGI_FORMAT InputFormat; // offset: 32, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; // offset: 64, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; // offset: 96, size: 32 bits
D3D12_VIDEO_SIZE_RANGE SizeRange; // offset: 128, size: 128 bits
};
D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE
struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE { // size: 72 bytes, align: 8
UINT NodeIndex; // offset: 0, size: 32 bits
DXGI_FORMAT InputFormat; // offset: 32, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // offset: 64, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // offset: 96, size: 32 bits
D3D12_VIDEO_SIZE_RANGE SizeRange; // offset: 128, size: 128 bits
BOOL Protected; // offset: 256, size: 32 bits
UINT64 MotionVectorHeapMemoryPoolL0Size; // offset: 320, size: 64 bits
UINT64 MotionVectorHeapMemoryPoolL1Size; // offset: 384, size: 64 bits
UINT64 MotionEstimatorMemoryPoolL0Size; // offset: 448, size: 64 bits
UINT64 MotionEstimatorMemoryPoolL1Size; // offset: 512, size: 64 bits
};
D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT
struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT { // size: 16 bytes, align: 8
ID3D12VideoMotionVectorHeap * pMotionVectorHeap; // offset: 0, size: 64 bits
UINT PixelWidth; // offset: 64, size: 32 bits
UINT PixelHeight; // offset: 96, size: 32 bits
};
D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT
struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT { // size: 32 bytes, align: 8
ID3D12Resource * pMotionVectorTexture2D; // offset: 0, size: 64 bits
D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; // offset: 64, size: 192 bits
};
D3D12_RESOURCE_COORDINATE
struct D3D12_RESOURCE_COORDINATE { // size: 24 bytes, align: 8
UINT64 X; // offset: 0, size: 64 bits
UINT Y; // offset: 64, size: 32 bits
UINT Z; // offset: 96, size: 32 bits
UINT SubresourceIndex; // offset: 128, size: 32 bits
};
D3D12_VIDEO_MOTION_ESTIMATOR_DESC
struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC { // size: 32 bytes, align: 4
UINT NodeMask; // offset: 0, size: 32 bits
DXGI_FORMAT InputFormat; // offset: 32, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // offset: 64, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // offset: 96, size: 32 bits
D3D12_VIDEO_SIZE_RANGE SizeRange; // offset: 128, size: 128 bits
};
D3D12_VIDEO_MOTION_ESTIMATOR_INPUT
struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT { // size: 40 bytes, align: 8
ID3D12Resource * pInputTexture2D; // offset: 0, size: 64 bits
UINT InputSubresourceIndex; // offset: 64, size: 32 bits
ID3D12Resource * pReferenceTexture2D; // offset: 128, size: 64 bits
UINT ReferenceSubresourceIndex; // offset: 192, size: 32 bits
ID3D12VideoMotionVectorHeap * pHintMotionVectorHeap; // offset: 256, size: 64 bits
};
D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT
struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT { // size: 8 bytes, align: 8
ID3D12VideoMotionVectorHeap * pMotionVectorHeap; // offset: 0, size: 64 bits
};
D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC
struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC { // size: 32 bytes, align: 4
UINT NodeMask; // offset: 0, size: 32 bits
DXGI_FORMAT InputFormat; // offset: 32, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // offset: 64, size: 32 bits
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // offset: 96, size: 32 bits
D3D12_VIDEO_SIZE_RANGE SizeRange; // offset: 128, size: 128 bits
};
DML_ACTIVATION_HARDMAX_OPERATOR_DESC
struct DML_ACTIVATION_HARDMAX_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_IDENTITY_OPERATOR_DESC
struct DML_ACTIVATION_IDENTITY_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC
struct DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC
struct DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * SlopeTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ACTIVATION_RELU_OPERATOR_DESC
struct DML_ACTIVATION_RELU_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_SIGMOID_OPERATOR_DESC
struct DML_ACTIVATION_SIGMOID_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_SOFTMAX_OPERATOR_DESC
struct DML_ACTIVATION_SOFTMAX_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC
struct DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ACTIVATION_TANH_OPERATOR_DESC
struct DML_ACTIVATION_TANH_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_AVERAGE_POOLING_OPERATOR_DESC
struct DML_AVERAGE_POOLING_OPERATOR_DESC { // size: 64 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT DimensionCount; // offset: 128, size: 32 bits
const UINT * Strides; // offset: 192, size: 64 bits
const UINT * WindowSize; // offset: 256, size: 64 bits
const UINT * StartPadding; // offset: 320, size: 64 bits
const UINT * EndPadding; // offset: 384, size: 64 bits
BOOL IncludePadding; // offset: 448, size: 32 bits
};
DML_BINDING_DESC
struct DML_BINDING_DESC { // size: 16 bytes, align: 8
enum DML_BINDING_TYPE Type; // offset: 0, size: 32 bits
const void * Desc; // offset: 64, size: 64 bits
};
DML_BINDING_PROPERTIES
struct DML_BINDING_PROPERTIES { // size: 24 bytes, align: 8
UINT RequiredDescriptorCount; // offset: 0, size: 32 bits
UINT64 TemporaryResourceSize; // offset: 64, size: 64 bits
UINT64 PersistentResourceSize; // offset: 128, size: 64 bits
};
DML_BUFFER_ARRAY_BINDING
struct DML_BUFFER_ARRAY_BINDING { // size: 16 bytes, align: 8
UINT BindingCount; // offset: 0, size: 32 bits
const struct DML_BUFFER_BINDING * Bindings; // offset: 64, size: 64 bits
};
DML_BUFFER_BINDING
struct DML_BUFFER_BINDING { // size: 24 bytes, align: 8
ID3D12Resource * Buffer; // offset: 0, size: 64 bits
UINT64 Offset; // offset: 64, size: 64 bits
UINT64 SizeInBytes; // offset: 128, size: 64 bits
};
DML_BUFFER_TENSOR_DESC
struct DML_BUFFER_TENSOR_DESC { // size: 48 bytes, align: 8
enum DML_TENSOR_DATA_TYPE DataType; // offset: 0, size: 32 bits
enum DML_TENSOR_FLAGS Flags; // offset: 32, size: 32 bits
UINT DimensionCount; // offset: 64, size: 32 bits
const UINT * Sizes; // offset: 128, size: 64 bits
const UINT * Strides; // offset: 192, size: 64 bits
UINT64 TotalTensorSizeInBytes; // offset: 256, size: 64 bits
UINT GuaranteedBaseOffsetAlignment; // offset: 320, size: 32 bits
};
DML_CAST_OPERATOR_DESC
struct DML_CAST_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_CONVOLUTION_OPERATOR_DESC
struct DML_CONVOLUTION_OPERATOR_DESC { // size: 104 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * FilterTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * BiasTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 192, size: 64 bits
enum DML_CONVOLUTION_MODE Mode; // offset: 256, size: 32 bits
enum DML_CONVOLUTION_DIRECTION Direction; // offset: 288, size: 32 bits
UINT DimensionCount; // offset: 320, size: 32 bits
const UINT * Strides; // offset: 384, size: 64 bits
const UINT * Dilations; // offset: 448, size: 64 bits
const UINT * StartPadding; // offset: 512, size: 64 bits
const UINT * EndPadding; // offset: 576, size: 64 bits
const UINT * OutputPadding; // offset: 640, size: 64 bits
UINT GroupCount; // offset: 704, size: 32 bits
const struct DML_OPERATOR_DESC * FusedActivation; // offset: 768, size: 64 bits
};
DML_DEPTH_TO_SPACE_OPERATOR_DESC
struct DML_DEPTH_TO_SPACE_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT BlockSize; // offset: 128, size: 32 bits
};
DML_ELEMENT_WISE_ABS_OPERATOR_DESC
struct DML_ELEMENT_WISE_ABS_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_ACOS_OPERATOR_DESC
struct DML_ELEMENT_WISE_ACOS_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_ADD_OPERATOR_DESC
struct DML_ELEMENT_WISE_ADD_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_ASIN_OPERATOR_DESC
struct DML_ELEMENT_WISE_ASIN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_ATAN_OPERATOR_DESC
struct DML_ELEMENT_WISE_ATAN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_CEIL_OPERATOR_DESC
struct DML_ELEMENT_WISE_CEIL_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_COS_OPERATOR_DESC
struct DML_ELEMENT_WISE_COS_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC
struct DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * ScaleTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * ZeroPointTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 192, size: 64 bits
};
DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC
struct DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_EXP_OPERATOR_DESC
struct DML_ELEMENT_WISE_EXP_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC
struct DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC
struct DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC { // size: 16 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_LOG_OPERATOR_DESC
struct DML_ELEMENT_WISE_LOG_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_MAX_OPERATOR_DESC
struct DML_ELEMENT_WISE_MAX_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_MEAN_OPERATOR_DESC
struct DML_ELEMENT_WISE_MEAN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_MIN_OPERATOR_DESC
struct DML_ELEMENT_WISE_MIN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC
struct DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_POW_OPERATOR_DESC
struct DML_ELEMENT_WISE_POW_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * ExponentTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 192, size: 64 bits
};
DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC
struct DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * ScaleTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * ZeroPointTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 192, size: 64 bits
};
DML_ELEMENT_WISE_RECIP_OPERATOR_DESC
struct DML_ELEMENT_WISE_RECIP_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_SIN_OPERATOR_DESC
struct DML_ELEMENT_WISE_SIN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_SQRT_OPERATOR_DESC
struct DML_ELEMENT_WISE_SQRT_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC
struct DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * ATensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * BTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
};
DML_ELEMENT_WISE_TAN_OPERATOR_DESC
struct DML_ELEMENT_WISE_TAN_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
const struct DML_SCALE_BIAS * ScaleBias; // offset: 128, size: 64 bits
};
DML_FEATURE_DATA_TENSOR_DATA_TYPE_SUPPORT
struct DML_FEATURE_DATA_TENSOR_DATA_TYPE_SUPPORT { // size: 4 bytes, align: 4
BOOL IsSupported; // offset: 0, size: 32 bits
};
DML_FEATURE_QUERY_TENSOR_DATA_TYPE_SUPPORT
struct DML_FEATURE_QUERY_TENSOR_DATA_TYPE_SUPPORT { // size: 4 bytes, align: 4
enum DML_TENSOR_DATA_TYPE DataType; // offset: 0, size: 32 bits
};
DML_GATHER_OPERATOR_DESC
struct DML_GATHER_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * IndicesTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
UINT Axis; // offset: 192, size: 32 bits
UINT IndexDimensions; // offset: 224, size: 32 bits
};
DML_GRU_OPERATOR_DESC
struct DML_GRU_OPERATOR_DESC { // size: 88 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * WeightTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * RecurrenceTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * BiasTensor; // offset: 192, size: 64 bits
const struct DML_TENSOR_DESC * HiddenInitTensor; // offset: 256, size: 64 bits
const struct DML_TENSOR_DESC * SequenceLengthsTensor; // offset: 320, size: 64 bits
const struct DML_TENSOR_DESC * OutputSequenceTensor; // offset: 384, size: 64 bits
const struct DML_TENSOR_DESC * OutputSingleTensor; // offset: 448, size: 64 bits
UINT ActivationDescCount; // offset: 512, size: 32 bits
const struct DML_OPERATOR_DESC * ActivationDescs; // offset: 576, size: 64 bits
enum DML_RECURRENT_NETWORK_DIRECTION Direction; // offset: 640, size: 32 bits
BOOL LinearBeforeReset; // offset: 672, size: 32 bits
};
DML_JOIN_OPERATOR_DESC
struct DML_JOIN_OPERATOR_DESC { // size: 32 bytes, align: 8
UINT InputCount; // offset: 0, size: 32 bits
const struct DML_TENSOR_DESC * InputTensors; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
UINT Axis; // offset: 192, size: 32 bits
};
DML_LP_POOLING_OPERATOR_DESC
struct DML_LP_POOLING_OPERATOR_DESC { // size: 64 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT DimensionCount; // offset: 128, size: 32 bits
const UINT * Strides; // offset: 192, size: 64 bits
const UINT * WindowSize; // offset: 256, size: 64 bits
const UINT * StartPadding; // offset: 320, size: 64 bits
const UINT * EndPadding; // offset: 384, size: 64 bits
UINT P; // offset: 448, size: 32 bits
};
DML_LSTM_OPERATOR_DESC
struct DML_LSTM_OPERATOR_DESC { // size: 120 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * WeightTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * RecurrenceTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * BiasTensor; // offset: 192, size: 64 bits
const struct DML_TENSOR_DESC * HiddenInitTensor; // offset: 256, size: 64 bits
const struct DML_TENSOR_DESC * CellMemInitTensor; // offset: 320, size: 64 bits
const struct DML_TENSOR_DESC * SequenceLengthsTensor; // offset: 384, size: 64 bits
const struct DML_TENSOR_DESC * PeepholeTensor; // offset: 448, size: 64 bits
const struct DML_TENSOR_DESC * OutputSequenceTensor; // offset: 512, size: 64 bits
const struct DML_TENSOR_DESC * OutputSingleTensor; // offset: 576, size: 64 bits
const struct DML_TENSOR_DESC * OutputCellSingleTensor; // offset: 640, size: 64 bits
UINT ActivationDescCount; // offset: 704, size: 32 bits
const struct DML_OPERATOR_DESC * ActivationDescs; // offset: 768, size: 64 bits
enum DML_RECURRENT_NETWORK_DIRECTION Direction; // offset: 832, size: 32 bits
float ClipThreshold; // offset: 864, size: 32 bits
BOOL UseClipThreshold; // offset: 896, size: 32 bits
BOOL CoupleInputForget; // offset: 928, size: 32 bits
};
DML_MAX_POOLING_OPERATOR_DESC
struct DML_MAX_POOLING_OPERATOR_DESC { // size: 56 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT DimensionCount; // offset: 128, size: 32 bits
const UINT * Strides; // offset: 192, size: 64 bits
const UINT * WindowSize; // offset: 256, size: 64 bits
const UINT * StartPadding; // offset: 320, size: 64 bits
const UINT * EndPadding; // offset: 384, size: 64 bits
};
DML_OPERATOR_DESC
struct DML_OPERATOR_DESC { // size: 16 bytes, align: 8
enum DML_OPERATOR_TYPE Type; // offset: 0, size: 32 bits
const void * Desc; // offset: 64, size: 64 bits
};
DML_REDUCE_OPERATOR_DESC
struct DML_REDUCE_OPERATOR_DESC { // size: 40 bytes, align: 8
enum DML_REDUCE_FUNCTION Function; // offset: 0, size: 32 bits
const struct DML_TENSOR_DESC * InputTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 128, size: 64 bits
UINT AxisCount; // offset: 192, size: 32 bits
const UINT * Axes; // offset: 256, size: 64 bits
};
DML_RNN_OPERATOR_DESC
struct DML_RNN_OPERATOR_DESC { // size: 88 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * WeightTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * RecurrenceTensor; // offset: 128, size: 64 bits
const struct DML_TENSOR_DESC * BiasTensor; // offset: 192, size: 64 bits
const struct DML_TENSOR_DESC * HiddenInitTensor; // offset: 256, size: 64 bits
const struct DML_TENSOR_DESC * SequenceLengthsTensor; // offset: 320, size: 64 bits
const struct DML_TENSOR_DESC * OutputSequenceTensor; // offset: 384, size: 64 bits
const struct DML_TENSOR_DESC * OutputSingleTensor; // offset: 448, size: 64 bits
UINT ActivationDescCount; // offset: 512, size: 32 bits
const struct DML_OPERATOR_DESC * ActivationDescs; // offset: 576, size: 64 bits
enum DML_RECURRENT_NETWORK_DIRECTION Direction; // offset: 640, size: 32 bits
};
DML_SIZE_2D
struct DML_SIZE_2D { // size: 8 bytes, align: 4
UINT Width; // offset: 0, size: 32 bits
UINT Height; // offset: 32, size: 32 bits
};
DML_SLICE_OPERATOR_DESC
struct DML_SLICE_OPERATOR_DESC { // size: 48 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT DimensionCount; // offset: 128, size: 32 bits
const UINT * Offsets; // offset: 192, size: 64 bits
const UINT * Sizes; // offset: 256, size: 64 bits
const UINT * Strides; // offset: 320, size: 64 bits
};
DML_SPACE_TO_DEPTH_OPERATOR_DESC
struct DML_SPACE_TO_DEPTH_OPERATOR_DESC { // size: 24 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT BlockSize; // offset: 128, size: 32 bits
};
DML_SPLIT_OPERATOR_DESC
struct DML_SPLIT_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
UINT OutputCount; // offset: 64, size: 32 bits
const struct DML_TENSOR_DESC * OutputTensors; // offset: 128, size: 64 bits
UINT Axis; // offset: 192, size: 32 bits
};
DML_TENSOR_DESC
struct DML_TENSOR_DESC { // size: 16 bytes, align: 8
enum DML_TENSOR_TYPE Type; // offset: 0, size: 32 bits
const void * Desc; // offset: 64, size: 64 bits
};
DML_TILE_OPERATOR_DESC
struct DML_TILE_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
UINT RepeatsCount; // offset: 128, size: 32 bits
const UINT * Repeats; // offset: 192, size: 64 bits
};
DML_TOP_K_OPERATOR_DESC
struct DML_TOP_K_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputValueTensor; // offset: 64, size: 64 bits
const struct DML_TENSOR_DESC * OutputIndexTensor; // offset: 128, size: 64 bits
UINT Axis; // offset: 192, size: 32 bits
UINT K; // offset: 224, size: 32 bits
};
DML_UPSAMPLE_2D_OPERATOR_DESC
struct DML_UPSAMPLE_2D_OPERATOR_DESC { // size: 32 bytes, align: 8
const struct DML_TENSOR_DESC * InputTensor; // offset: 0, size: 64 bits
const struct DML_TENSOR_DESC * OutputTensor; // offset: 64, size: 64 bits
struct DML_SIZE_2D ScaleSize; // offset: 128, size: 64 bits
enum DML_INTERPOLATION_MODE InterpolationMode; // offset: 192, size: 32 bits
};
IDTFilter
struct IDTFilter { // size: 8 bytes, align: 8
struct IDTFilterVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (11)
HRESULT (*)(IDTFilter *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilter *) AddRef;
ULONG (*)(IDTFilter *) Release;
HRESULT (*)(IDTFilter *, HRESULT *) get_EvalRatObjOK;
HRESULT (*)(IDTFilter *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating;
HRESULT (*)(IDTFilter *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes;
HRESULT (*)(IDTFilter *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes;
HRESULT (*)(IDTFilter *, BOOL *) get_BlockUnRated;
HRESULT (*)(IDTFilter *, BOOL) put_BlockUnRated;
HRESULT (*)(IDTFilter *, LONG *) get_BlockUnRatedDelay;
HRESULT (*)(IDTFilter *, LONG) put_BlockUnRatedDelay;
IDTFilter2
struct IDTFilter2 { // size: 8 bytes, align: 8
struct IDTFilter2Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (14)
HRESULT (*)(IDTFilter2 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilter2 *) AddRef;
ULONG (*)(IDTFilter2 *) Release;
HRESULT (*)(IDTFilter2 *, HRESULT *) get_EvalRatObjOK;
HRESULT (*)(IDTFilter2 *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating;
HRESULT (*)(IDTFilter2 *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes;
HRESULT (*)(IDTFilter2 *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes;
HRESULT (*)(IDTFilter2 *, BOOL *) get_BlockUnRated;
HRESULT (*)(IDTFilter2 *, BOOL) put_BlockUnRated;
HRESULT (*)(IDTFilter2 *, LONG *) get_BlockUnRatedDelay;
HRESULT (*)(IDTFilter2 *, LONG) put_BlockUnRatedDelay;
HRESULT (*)(IDTFilter2 *, int *) get_ChallengeUrl;
HRESULT (*)(IDTFilter2 *, ProtType *, long *) GetCurrLicenseExpDate;
HRESULT (*)(IDTFilter2 *) GetLastErrorCode;
IDTFilter2Vtbl
struct IDTFilter2Vtbl { // size: 112 bytes, align: 8
HRESULT (*)(IDTFilter2 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilter2 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilter2 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilter2 *, HRESULT *) get_EvalRatObjOK; // offset: 192, size: 64 bits
HRESULT (*)(IDTFilter2 *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating; // offset: 256, size: 64 bits
HRESULT (*)(IDTFilter2 *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes; // offset: 320, size: 64 bits
HRESULT (*)(IDTFilter2 *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes; // offset: 384, size: 64 bits
HRESULT (*)(IDTFilter2 *, BOOL *) get_BlockUnRated; // offset: 448, size: 64 bits
HRESULT (*)(IDTFilter2 *, BOOL) put_BlockUnRated; // offset: 512, size: 64 bits
HRESULT (*)(IDTFilter2 *, LONG *) get_BlockUnRatedDelay; // offset: 576, size: 64 bits
HRESULT (*)(IDTFilter2 *, LONG) put_BlockUnRatedDelay; // offset: 640, size: 64 bits
HRESULT (*)(IDTFilter2 *, int *) get_ChallengeUrl; // offset: 704, size: 64 bits
HRESULT (*)(IDTFilter2 *, ProtType *, long *) GetCurrLicenseExpDate; // offset: 768, size: 64 bits
HRESULT (*)(IDTFilter2 *) GetLastErrorCode; // offset: 832, size: 64 bits
};
IDTFilter3
struct IDTFilter3 { // size: 8 bytes, align: 8
struct IDTFilter3Vtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (17)
HRESULT (*)(IDTFilter3 *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilter3 *) AddRef;
ULONG (*)(IDTFilter3 *) Release;
HRESULT (*)(IDTFilter3 *, HRESULT *) get_EvalRatObjOK;
HRESULT (*)(IDTFilter3 *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating;
HRESULT (*)(IDTFilter3 *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes;
HRESULT (*)(IDTFilter3 *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes;
HRESULT (*)(IDTFilter3 *, BOOL *) get_BlockUnRated;
HRESULT (*)(IDTFilter3 *, BOOL) put_BlockUnRated;
HRESULT (*)(IDTFilter3 *, LONG *) get_BlockUnRatedDelay;
HRESULT (*)(IDTFilter3 *, LONG) put_BlockUnRatedDelay;
HRESULT (*)(IDTFilter3 *, int *) get_ChallengeUrl;
HRESULT (*)(IDTFilter3 *, ProtType *, long *) GetCurrLicenseExpDate;
HRESULT (*)(IDTFilter3 *) GetLastErrorCode;
HRESULT (*)(IDTFilter3 *, ProtType *) GetProtectionType;
HRESULT (*)(IDTFilter3 *, BOOL *) LicenseHasExpirationDate;
HRESULT (*)(IDTFilter3 *, int) SetRights;
IDTFilter3Vtbl
struct IDTFilter3Vtbl { // size: 136 bytes, align: 8
HRESULT (*)(IDTFilter3 *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilter3 *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilter3 *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilter3 *, HRESULT *) get_EvalRatObjOK; // offset: 192, size: 64 bits
HRESULT (*)(IDTFilter3 *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating; // offset: 256, size: 64 bits
HRESULT (*)(IDTFilter3 *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes; // offset: 320, size: 64 bits
HRESULT (*)(IDTFilter3 *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes; // offset: 384, size: 64 bits
HRESULT (*)(IDTFilter3 *, BOOL *) get_BlockUnRated; // offset: 448, size: 64 bits
HRESULT (*)(IDTFilter3 *, BOOL) put_BlockUnRated; // offset: 512, size: 64 bits
HRESULT (*)(IDTFilter3 *, LONG *) get_BlockUnRatedDelay; // offset: 576, size: 64 bits
HRESULT (*)(IDTFilter3 *, LONG) put_BlockUnRatedDelay; // offset: 640, size: 64 bits
HRESULT (*)(IDTFilter3 *, int *) get_ChallengeUrl; // offset: 704, size: 64 bits
HRESULT (*)(IDTFilter3 *, ProtType *, long *) GetCurrLicenseExpDate; // offset: 768, size: 64 bits
HRESULT (*)(IDTFilter3 *) GetLastErrorCode; // offset: 832, size: 64 bits
HRESULT (*)(IDTFilter3 *, ProtType *) GetProtectionType; // offset: 896, size: 64 bits
HRESULT (*)(IDTFilter3 *, BOOL *) LicenseHasExpirationDate; // offset: 960, size: 64 bits
HRESULT (*)(IDTFilter3 *, int) SetRights; // offset: 1024, size: 64 bits
};
IDTFilterConfig
struct IDTFilterConfig { // size: 8 bytes, align: 8
struct IDTFilterConfigVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IDTFilterConfig *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilterConfig *) AddRef;
ULONG (*)(IDTFilterConfig *) Release;
HRESULT (*)(IDTFilterConfig *, int **) GetSecureChannelObject;
IDTFilterConfigVtbl
struct IDTFilterConfigVtbl { // size: 32 bytes, align: 8
HRESULT (*)(IDTFilterConfig *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilterConfig *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilterConfig *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilterConfig *, int **) GetSecureChannelObject; // offset: 192, size: 64 bits
};
IDTFilterEvents
struct IDTFilterEvents { // size: 8 bytes, align: 8
struct IDTFilterEventsVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (7)
HRESULT (*)(IDTFilterEvents *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilterEvents *) AddRef;
ULONG (*)(IDTFilterEvents *) Release;
HRESULT (*)(IDTFilterEvents *, UINT *) GetTypeInfoCount;
HRESULT (*)(IDTFilterEvents *, UINT, int, int **) GetTypeInfo;
HRESULT (*)(IDTFilterEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames;
HRESULT (*)(IDTFilterEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke;
IDTFilterEventsVtbl
struct IDTFilterEventsVtbl { // size: 56 bytes, align: 8
HRESULT (*)(IDTFilterEvents *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilterEvents *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilterEvents *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilterEvents *, UINT *) GetTypeInfoCount; // offset: 192, size: 64 bits
HRESULT (*)(IDTFilterEvents *, UINT, int, int **) GetTypeInfo; // offset: 256, size: 64 bits
HRESULT (*)(IDTFilterEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames; // offset: 320, size: 64 bits
HRESULT (*)(IDTFilterEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke; // offset: 384, size: 64 bits
};
IDTFilterLicenseRenewal
struct IDTFilterLicenseRenewal { // size: 8 bytes, align: 8
struct IDTFilterLicenseRenewalVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IDTFilterLicenseRenewal *, const IID *const, void **) QueryInterface;
ULONG (*)(IDTFilterLicenseRenewal *) AddRef;
ULONG (*)(IDTFilterLicenseRenewal *) Release;
HRESULT (*)(IDTFilterLicenseRenewal *, LPWSTR *, LPWSTR *, LPWSTR *) GetLicenseRenewalData;
IDTFilterLicenseRenewalVtbl
struct IDTFilterLicenseRenewalVtbl { // size: 32 bytes, align: 8
HRESULT (*)(IDTFilterLicenseRenewal *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilterLicenseRenewal *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilterLicenseRenewal *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilterLicenseRenewal *, LPWSTR *, LPWSTR *, LPWSTR *) GetLicenseRenewalData; // offset: 192, size: 64 bits
};
IDTFilterVtbl
struct IDTFilterVtbl { // size: 88 bytes, align: 8
HRESULT (*)(IDTFilter *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IDTFilter *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IDTFilter *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IDTFilter *, HRESULT *) get_EvalRatObjOK; // offset: 192, size: 64 bits
HRESULT (*)(IDTFilter *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating; // offset: 256, size: 64 bits
HRESULT (*)(IDTFilter *, EnTvRat_System, EnTvRat_GenericLevel, LONG *) get_BlockedRatingAttributes; // offset: 320, size: 64 bits
HRESULT (*)(IDTFilter *, EnTvRat_System, EnTvRat_GenericLevel, LONG) put_BlockedRatingAttributes; // offset: 384, size: 64 bits
HRESULT (*)(IDTFilter *, BOOL *) get_BlockUnRated; // offset: 448, size: 64 bits
HRESULT (*)(IDTFilter *, BOOL) put_BlockUnRated; // offset: 512, size: 64 bits
HRESULT (*)(IDTFilter *, LONG *) get_BlockUnRatedDelay; // offset: 576, size: 64 bits
HRESULT (*)(IDTFilter *, LONG) put_BlockUnRatedDelay; // offset: 640, size: 64 bits
};
IETFilter
struct IETFilter { // size: 8 bytes, align: 8
struct IETFilterVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (8)
HRESULT (*)(IETFilter *, const IID *const, void **) QueryInterface;
ULONG (*)(IETFilter *) AddRef;
ULONG (*)(IETFilter *) Release;
HRESULT (*)(IETFilter *, HRESULT *) get_EvalRatObjOK;
HRESULT (*)(IETFilter *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating;
HRESULT (*)(IETFilter *, ProtType *, long *) GetCurrLicenseExpDate;
HRESULT (*)(IETFilter *) GetLastErrorCode;
HRESULT (*)(IETFilter *, BOOL) SetRecordingOn;
IETFilterConfig
struct IETFilterConfig { // size: 8 bytes, align: 8
struct IETFilterConfigVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IETFilterConfig *, const IID *const, void **) QueryInterface;
ULONG (*)(IETFilterConfig *) AddRef;
ULONG (*)(IETFilterConfig *) Release;
HRESULT (*)(IETFilterConfig *, int) InitLicense;
HRESULT (*)(IETFilterConfig *, int **) GetSecureChannelObject;
IETFilterConfigVtbl
struct IETFilterConfigVtbl { // size: 40 bytes, align: 8
HRESULT (*)(IETFilterConfig *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IETFilterConfig *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IETFilterConfig *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IETFilterConfig *, int) InitLicense; // offset: 192, size: 64 bits
HRESULT (*)(IETFilterConfig *, int **) GetSecureChannelObject; // offset: 256, size: 64 bits
};
IETFilterEvents
struct IETFilterEvents { // size: 8 bytes, align: 8
struct IETFilterEventsVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (7)
HRESULT (*)(IETFilterEvents *, const IID *const, void **) QueryInterface;
ULONG (*)(IETFilterEvents *) AddRef;
ULONG (*)(IETFilterEvents *) Release;
HRESULT (*)(IETFilterEvents *, UINT *) GetTypeInfoCount;
HRESULT (*)(IETFilterEvents *, UINT, int, int **) GetTypeInfo;
HRESULT (*)(IETFilterEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames;
HRESULT (*)(IETFilterEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke;
IETFilterEventsVtbl
struct IETFilterEventsVtbl { // size: 56 bytes, align: 8
HRESULT (*)(IETFilterEvents *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IETFilterEvents *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IETFilterEvents *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IETFilterEvents *, UINT *) GetTypeInfoCount; // offset: 192, size: 64 bits
HRESULT (*)(IETFilterEvents *, UINT, int, int **) GetTypeInfo; // offset: 256, size: 64 bits
HRESULT (*)(IETFilterEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames; // offset: 320, size: 64 bits
HRESULT (*)(IETFilterEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke; // offset: 384, size: 64 bits
};
IETFilterVtbl
struct IETFilterVtbl { // size: 64 bytes, align: 8
HRESULT (*)(IETFilter *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IETFilter *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IETFilter *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IETFilter *, HRESULT *) get_EvalRatObjOK; // offset: 192, size: 64 bits
HRESULT (*)(IETFilter *, EnTvRat_System *, EnTvRat_GenericLevel *, LONG *) GetCurrRating; // offset: 256, size: 64 bits
HRESULT (*)(IETFilter *, ProtType *, long *) GetCurrLicenseExpDate; // offset: 320, size: 64 bits
HRESULT (*)(IETFilter *) GetLastErrorCode; // offset: 384, size: 64 bits
HRESULT (*)(IETFilter *, BOOL) SetRecordingOn; // offset: 448, size: 64 bits
};
IMceBurnerControl
struct IMceBurnerControl { // size: 8 bytes, align: 8
struct IMceBurnerControlVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (4)
HRESULT (*)(IMceBurnerControl *, const IID *const, void **) QueryInterface;
ULONG (*)(IMceBurnerControl *) AddRef;
ULONG (*)(IMceBurnerControl *) Release;
HRESULT (*)(IMceBurnerControl *) GetBurnerNoDecryption;
IMceBurnerControlVtbl
struct IMceBurnerControlVtbl { // size: 32 bytes, align: 8
HRESULT (*)(IMceBurnerControl *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IMceBurnerControl *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IMceBurnerControl *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IMceBurnerControl *) GetBurnerNoDecryption; // offset: 192, size: 64 bits
};
INTERLEAVED_AUDIO_FORMAT_INFORMATION
struct INTERLEAVED_AUDIO_FORMAT_INFORMATION { // size: 28 bytes, align: 4
ULONG Size; // offset: 0, size: 32 bits
DWORD PrimaryChannelCount; // offset: 32, size: 32 bits
DWORD PrimaryChannelStartPosition; // offset: 64, size: 32 bits
DWORD PrimaryChannelMask; // offset: 96, size: 32 bits
DWORD InterleavedChannelCount; // offset: 128, size: 32 bits
DWORD InterleavedChannelStartPosition; // offset: 160, size: 32 bits
DWORD InterleavedChannelMask; // offset: 192, size: 32 bits
};
IPTFilterLicenseRenewal
struct IPTFilterLicenseRenewal { // size: 8 bytes, align: 8
struct IPTFilterLicenseRenewalVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IPTFilterLicenseRenewal *, const IID *const, void **) QueryInterface;
ULONG (*)(IPTFilterLicenseRenewal *) AddRef;
ULONG (*)(IPTFilterLicenseRenewal *) Release;
HRESULT (*)(IPTFilterLicenseRenewal *, WCHAR *, WCHAR *, DWORD, BOOL) RenewLicenses;
HRESULT (*)(IPTFilterLicenseRenewal *) CancelLicenseRenewal;
IPTFilterLicenseRenewalVtbl
struct IPTFilterLicenseRenewalVtbl { // size: 40 bytes, align: 8
HRESULT (*)(IPTFilterLicenseRenewal *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IPTFilterLicenseRenewal *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IPTFilterLicenseRenewal *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IPTFilterLicenseRenewal *, WCHAR *, WCHAR *, DWORD, BOOL) RenewLicenses; // offset: 192, size: 64 bits
HRESULT (*)(IPTFilterLicenseRenewal *) CancelLicenseRenewal; // offset: 256, size: 64 bits
};
IXAudio2Extension
struct IXAudio2Extension { // size: 8 bytes, align: 1
struct IXAudio2ExtensionVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IXAudio2Extension *, const IID *const, void **) QueryInterface;
ULONG (*)(IXAudio2Extension *) AddRef;
ULONG (*)(IXAudio2Extension *) Release;
void (*)(IXAudio2Extension *, UINT32 *, UINT32 *) GetProcessingQuantum;
void (*)(IXAudio2Extension *, XAUDIO2_PROCESSOR *) GetProcessor;
IXAudio2ExtensionVtbl
struct IXAudio2ExtensionVtbl { // size: 40 bytes, align: 1
HRESULT (*)(IXAudio2Extension *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IXAudio2Extension *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IXAudio2Extension *) Release; // offset: 128, size: 64 bits
void (*)(IXAudio2Extension *, UINT32 *, UINT32 *) GetProcessingQuantum; // offset: 192, size: 64 bits
void (*)(IXAudio2Extension *, XAUDIO2_PROCESSOR *) GetProcessor; // offset: 256, size: 64 bits
};
IXDSCodec
struct IXDSCodec { // size: 8 bytes, align: 8
struct IXDSCodecVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (10)
HRESULT (*)(IXDSCodec *, const IID *const, void **) QueryInterface;
ULONG (*)(IXDSCodec *) AddRef;
ULONG (*)(IXDSCodec *) Release;
HRESULT (*)(IXDSCodec *, HRESULT *) get_XDSToRatObjOK;
HRESULT (*)(IXDSCodec *, long) put_CCSubstreamService;
HRESULT (*)(IXDSCodec *, long *) get_CCSubstreamService;
HRESULT (*)(IXDSCodec *, PackedTvRating *, long *, long *, REFERENCE_TIME *, REFERENCE_TIME *) GetContentAdvisoryRating;
HRESULT (*)(IXDSCodec *, long *, long *, int *, long *, long *, REFERENCE_TIME *, REFERENCE_TIME *) GetXDSPacket;
HRESULT (*)(IXDSCodec *, ProtType *, long *) GetCurrLicenseExpDate;
HRESULT (*)(IXDSCodec *) GetLastErrorCode;
IXDSCodecConfig
struct IXDSCodecConfig { // size: 8 bytes, align: 8
struct IXDSCodecConfigVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (5)
HRESULT (*)(IXDSCodecConfig *, const IID *const, void **) QueryInterface;
ULONG (*)(IXDSCodecConfig *) AddRef;
ULONG (*)(IXDSCodecConfig *) Release;
HRESULT (*)(IXDSCodecConfig *, int **) GetSecureChannelObject;
HRESULT (*)(IXDSCodecConfig *, DWORD) SetPauseBufferTime;
IXDSCodecConfigVtbl
struct IXDSCodecConfigVtbl { // size: 40 bytes, align: 8
HRESULT (*)(IXDSCodecConfig *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IXDSCodecConfig *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IXDSCodecConfig *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IXDSCodecConfig *, int **) GetSecureChannelObject; // offset: 192, size: 64 bits
HRESULT (*)(IXDSCodecConfig *, DWORD) SetPauseBufferTime; // offset: 256, size: 64 bits
};
IXDSCodecEvents
struct IXDSCodecEvents { // size: 8 bytes, align: 8
struct IXDSCodecEventsVtbl * lpVtbl; // offset: 0, size: 64 bits
};
Vtable methods (7)
HRESULT (*)(IXDSCodecEvents *, const IID *const, void **) QueryInterface;
ULONG (*)(IXDSCodecEvents *) AddRef;
ULONG (*)(IXDSCodecEvents *) Release;
HRESULT (*)(IXDSCodecEvents *, UINT *) GetTypeInfoCount;
HRESULT (*)(IXDSCodecEvents *, UINT, int, int **) GetTypeInfo;
HRESULT (*)(IXDSCodecEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames;
HRESULT (*)(IXDSCodecEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke;
IXDSCodecEventsVtbl
struct IXDSCodecEventsVtbl { // size: 56 bytes, align: 8
HRESULT (*)(IXDSCodecEvents *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IXDSCodecEvents *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IXDSCodecEvents *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IXDSCodecEvents *, UINT *) GetTypeInfoCount; // offset: 192, size: 64 bits
HRESULT (*)(IXDSCodecEvents *, UINT, int, int **) GetTypeInfo; // offset: 256, size: 64 bits
HRESULT (*)(IXDSCodecEvents *, const IID *const, int *, UINT, int, int *) GetIDsOfNames; // offset: 320, size: 64 bits
HRESULT (*)(IXDSCodecEvents *, int, const IID *const, int, WORD, int *, int *, int *, UINT *) Invoke; // offset: 384, size: 64 bits
};
IXDSCodecVtbl
struct IXDSCodecVtbl { // size: 80 bytes, align: 8
HRESULT (*)(IXDSCodec *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IXDSCodec *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IXDSCodec *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IXDSCodec *, HRESULT *) get_XDSToRatObjOK; // offset: 192, size: 64 bits
HRESULT (*)(IXDSCodec *, long) put_CCSubstreamService; // offset: 256, size: 64 bits
HRESULT (*)(IXDSCodec *, long *) get_CCSubstreamService; // offset: 320, size: 64 bits
HRESULT (*)(IXDSCodec *, PackedTvRating *, long *, long *, REFERENCE_TIME *, REFERENCE_TIME *) GetContentAdvisoryRating; // offset: 384, size: 64 bits
HRESULT (*)(IXDSCodec *, long *, long *, int *, long *, long *, REFERENCE_TIME *, REFERENCE_TIME *) GetXDSPacket; // offset: 448, size: 64 bits
HRESULT (*)(IXDSCodec *, ProtType *, long *) GetCurrLicenseExpDate; // offset: 512, size: 64 bits
HRESULT (*)(IXDSCodec *) GetLastErrorCode; // offset: 576, size: 64 bits
};
KSSOUNDDETECTORPROPERTY
struct KSSOUNDDETECTORPROPERTY { // size: 40 bytes, align: 8
KSPROPERTY Property; // offset: 0, size: 192 bits
GUID EventId; // offset: 192, size: 128 bits
};
NVME_CDW11_IDENTIFY
union NVME_CDW11_IDENTIFY { // 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
};
NVME_ENDURANCE_GROUP_LOG
struct NVME_ENDURANCE_GROUP_LOG { // size: 512 bytes, align: 1
ULONG Reserved0; // offset: 0, size: 32 bits
UCHAR AvailableSpareThreshold; // offset: 32, size: 8 bits
UCHAR PercentageUsed; // offset: 40, size: 8 bits
UCHAR[26] Reserved1; // offset: 48, size: 208 bits
UCHAR[16] EnduranceEstimate; // offset: 256, size: 128 bits
UCHAR[16] DataUnitsRead; // offset: 384, size: 128 bits
UCHAR[16] DataUnitsWritten; // offset: 512, size: 128 bits
UCHAR[16] MediaUnitsWritten; // offset: 640, size: 128 bits
UCHAR[416] Reserved2; // offset: 768, size: 3328 bits
};
NVME_SET_ATTRIBUTES_ENTRY
struct NVME_SET_ATTRIBUTES_ENTRY { // size: 128 bytes, align: 4
USHORT Identifier; // offset: 0, size: 16 bits
USHORT ENDGID; // offset: 16, size: 16 bits
ULONG Reserved1; // offset: 32, size: 32 bits
ULONG Random4KBReadTypical; // offset: 64, size: 32 bits
ULONG OptimalWriteSize; // offset: 96, size: 32 bits
UCHAR[16] TotalCapacity; // offset: 128, size: 128 bits
UCHAR[16] UnallocatedCapacity; // offset: 256, size: 128 bits
UCHAR[80] Reserved2; // offset: 384, size: 640 bits
};
_CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME
struct _CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME { // size: 4 bytes, align: 4
CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE InputType; // offset: 0, size: 32 bits
};
_COLORSPACE_TRANSFORM
struct _COLORSPACE_TRANSFORM { // size: 98356 bytes, align: 4
COLORSPACE_TRANSFORM_TYPE Type; // offset: 0, size: 32 bits
union (unnamed union at shared/ntddvdeo.h) Data; // offset: 32, size: 786816 bits
};
_COLORSPACE_TRANSFORM_1DLUT_CAP
struct _COLORSPACE_TRANSFORM_1DLUT_CAP { // size: 20 bytes, align: 4
ULONG NumberOfLUTEntries; // offset: 0, size: 32 bits
COLORSPACE_TRANSFORM_DATA_CAP DataCap; // offset: 32, size: 128 bits
};
_COLORSPACE_TRANSFORM_3x4
struct _COLORSPACE_TRANSFORM_3x4 { // size: 49204 bytes, align: 4
float[3][4] ColorMatrix3x4; // offset: 0, size: 384 bits
float ScalarMultiplier; // offset: 384, size: 32 bits
GAMMA_RAMP_RGB[4096] LookupTable1D; // offset: 416, size: 393216 bits
};
_COLORSPACE_TRANSFORM_DATA_CAP
struct _COLORSPACE_TRANSFORM_DATA_CAP { // size: 16 bytes, align: 4
COLORSPACE_TRANSFORM_DATA_TYPE DataType; // offset: 0, size: 32 bits
ULONG BitCountOfInteger; // offset: 32, size: 6 bits
ULONG BitCountOfFraction; // offset: 38, size: 6 bits
ULONG BitCountOfExponent; // offset: 32, size: 6 bits
ULONG BitCountOfMantissa; // offset: 38, size: 6 bits
ULONG Value; // offset: 32, size: 32 bits
float NumericRangeMin; // offset: 64, size: 32 bits
float NumericRangeMax; // offset: 96, size: 32 bits
};
_COLORSPACE_TRANSFORM_MATRIX_CAP
struct _COLORSPACE_TRANSFORM_MATRIX_CAP { // size: 20 bytes, align: 4
ULONG MatrixSizeX; // offset: 0, size: 10 bits
ULONG MatrixSizeY; // offset: 10, size: 10 bits
ULONG Value; // offset: 0, size: 32 bits
COLORSPACE_TRANSFORM_DATA_CAP DataCap; // offset: 32, size: 128 bits
};
_COLORSPACE_TRANSFORM_MATRIX_V2
struct _COLORSPACE_TRANSFORM_MATRIX_V2 { // size: 98352 bytes, align: 4
COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DDegamma; // offset: 0, size: 32 bits
GAMMA_RAMP_RGB[4096] LookupTable1DDegamma; // offset: 32, size: 393216 bits
COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlColorMatrix3x3; // offset: 393248, size: 32 bits
float[3][3] ColorMatrix3x3; // offset: 393280, size: 288 bits
COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DRegamma; // offset: 393568, size: 32 bits
GAMMA_RAMP_RGB[4096] LookupTable1DRegamma; // offset: 393600, size: 393216 bits
};
_COLORSPACE_TRANSFORM_TARGET_CAPS
struct _COLORSPACE_TRANSFORM_TARGET_CAPS { // size: 64 bytes, align: 4
COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION Version; // offset: 0, size: 32 bits
COLORSPACE_TRANSFORM_1DLUT_CAP LookupTable1DDegammaCap; // offset: 32, size: 160 bits
COLORSPACE_TRANSFORM_MATRIX_CAP ColorMatrix3x3Cap; // offset: 192, size: 160 bits
COLORSPACE_TRANSFORM_1DLUT_CAP LookupTable1DRegammaCap; // offset: 352, size: 160 bits
};
_D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2
struct _D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2 { // size: 98352 bytes, align: 4
D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DDegamma; // offset: 0, size: 32 bits
D3DDDI_DXGI_RGB[4096] LookupTable1DDegamma; // offset: 32, size: 393216 bits
D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlColorMatrix3x3; // offset: 393248, size: 32 bits
float[3][3] ColorMatrix3x3; // offset: 393280, size: 288 bits
D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DRegamma; // offset: 393568, size: 32 bits
D3DDDI_DXGI_RGB[4096] LookupTable1DRegamma; // offset: 393600, size: 393216 bits
};
_DEVICE_DSM_CONVERSION_OUTPUT
struct _DEVICE_DSM_CONVERSION_OUTPUT { // size: 20 bytes, align: 4
DWORD Version; // offset: 0, size: 32 bits
GUID Source; // offset: 32, size: 128 bits
};
_DNS_SERVICE_BROWSE_REQUEST
struct _DNS_SERVICE_BROWSE_REQUEST { // size: 32 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG InterfaceIndex; // offset: 32, size: 32 bits
PCWSTR QueryName; // offset: 64, size: 64 bits
PDNS_SERVICE_BROWSE_CALLBACK pBrowseCallback; // offset: 128, size: 64 bits
DNS_QUERY_COMPLETION_ROUTINE * pBrowseCallbackV2; // offset: 128, size: 64 bits
PVOID pQueryContext; // offset: 192, size: 64 bits
};
_DNS_SERVICE_CANCEL
struct _DNS_SERVICE_CANCEL { // size: 8 bytes, align: 8
PVOID reserved; // offset: 0, size: 64 bits
};
_DNS_SERVICE_REGISTER_REQUEST
struct _DNS_SERVICE_REGISTER_REQUEST { // size: 48 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG InterfaceIndex; // offset: 32, size: 32 bits
PDNS_SERVICE_INSTANCE pServiceInstance; // offset: 64, size: 64 bits
PDNS_SERVICE_REGISTER_COMPLETE pRegisterCompletionCallback; // offset: 128, size: 64 bits
PVOID pQueryContext; // offset: 192, size: 64 bits
HANDLE hCredentials; // offset: 256, size: 64 bits
BOOL unicastEnabled; // offset: 320, size: 32 bits
};
_DUMP_FILE_ATTRIBUTES
union _DUMP_FILE_ATTRIBUTES { // size: 4 bytes, align: 4
ULONG HiberCrash; // offset: 0, size: 1 bits
ULONG DumpDevicePowerOff; // offset: 1, size: 1 bits
ULONG InsufficientDumpfileSize; // offset: 2, size: 1 bits
ULONG KernelGeneratedTriageDump; // offset: 3, size: 1 bits
ULONG LiveDumpGeneratedDump; // offset: 4, size: 1 bits
ULONG DumpIsGeneratedOffline; // offset: 5, size: 1 bits
ULONG FilterDumpFile; // offset: 6, size: 1 bits
ULONG EarlyBootCrash; // offset: 7, size: 1 bits
ULONG EncryptedDumpData; // offset: 8, size: 1 bits
ULONG DecryptedDump; // offset: 9, size: 1 bits
ULONG ReservedFlags; // offset: 10, size: 22 bits
ULONG Attributes; // offset: 0, size: 32 bits
};
_ENCLAVE_CREATE_INFO_VBS_BASIC
struct _ENCLAVE_CREATE_INFO_VBS_BASIC { // size: 36 bytes, align: 4
DWORD Flags; // offset: 0, size: 32 bits
BYTE[32] OwnerID; // offset: 32, size: 256 bits
};
_ENCLAVE_INIT_INFO_VBS_BASIC
struct _ENCLAVE_INIT_INFO_VBS_BASIC { // size: 56 bytes, align: 8
BYTE[16] FamilyId; // offset: 0, size: 128 bits
BYTE[16] ImageId; // offset: 128, size: 128 bits
ULONGLONG EnclaveSize; // offset: 256, size: 64 bits
DWORD EnclaveSvn; // offset: 320, size: 32 bits
DWORD Reserved; // offset: 352, size: 32 bits
HANDLE SignatureInfoHandle; // offset: 384, size: 64 bits
ULONGLONG Unused; // offset: 384, size: 64 bits
};
_ENCLAVE_LOAD_DATA_VBS_BASIC
struct _ENCLAVE_LOAD_DATA_VBS_BASIC { // size: 4 bytes, align: 4
DWORD PageType; // offset: 0, size: 32 bits
};
_ENCLAVE_VBS_BASIC_KEY_REQUEST
struct _ENCLAVE_VBS_BASIC_KEY_REQUEST { // size: 20 bytes, align: 4
ULONG RequestSize; // offset: 0, size: 32 bits
ULONG Flags; // offset: 32, size: 32 bits
ULONG EnclaveSVN; // offset: 64, size: 32 bits
ULONG SystemKeyID; // offset: 96, size: 32 bits
ULONG CurrentSystemKeyID; // offset: 128, size: 32 bits
};
_FILE_CASE_SENSITIVE_INFO
struct _FILE_CASE_SENSITIVE_INFO { // size: 4 bytes, align: 4
ULONG Flags; // offset: 0, size: 32 bits
};
_GAMMA_RAMP_DXGI_1
struct _GAMMA_RAMP_DXGI_1 { // size: 12324 bytes, align: 4
GAMMA_RAMP_RGB Scale; // offset: 0, size: 96 bits
GAMMA_RAMP_RGB Offset; // offset: 96, size: 96 bits
GAMMA_RAMP_RGB[1025] GammaCurve; // offset: 192, size: 98400 bits
};
_GAMMA_RAMP_RGB
struct _GAMMA_RAMP_RGB { // size: 12 bytes, align: 4
float Red; // offset: 0, size: 32 bits
float Green; // offset: 32, size: 32 bits
float Blue; // offset: 64, size: 32 bits
};
_GAMMA_RAMP_RGB256x3x16
struct _GAMMA_RAMP_RGB256x3x16 { // size: 1536 bytes, align: 2
USHORT[256] Red; // offset: 0, size: 4096 bits
USHORT[256] Green; // offset: 4096, size: 4096 bits
USHORT[256] Blue; // offset: 8192, size: 4096 bits
};
_HTTP2_SETTINGS_LIMITS_PARAM
struct _HTTP2_SETTINGS_LIMITS_PARAM { // size: 8 bytes, align: 4
DWORD Http2MaxSettingsPerFrame; // offset: 0, size: 32 bits
DWORD Http2MaxSettingsPerMinute; // offset: 32, size: 32 bits
};
_HTTP2_WINDOW_SIZE_PARAM
struct _HTTP2_WINDOW_SIZE_PARAM { // size: 4 bytes, align: 4
DWORD Http2ReceiveWindowSize; // offset: 0, size: 32 bits
};
_HTTP_DELEGATE_REQUEST_PROPERTY_INFO
struct _HTTP_DELEGATE_REQUEST_PROPERTY_INFO { // size: 16 bytes, align: 8
HTTP_DELEGATE_REQUEST_PROPERTY_ID ProperyId; // offset: 0, size: 32 bits
ULONG PropertyInfoLength; // offset: 32, size: 32 bits
PVOID PropertyInfo; // offset: 64, size: 64 bits
};
_HTTP_REQUEST_SIZING_INFO
struct _HTTP_REQUEST_SIZING_INFO { // size: 56 bytes, align: 8
ULONGLONG Flags; // offset: 0, size: 64 bits
ULONG RequestIndex; // offset: 64, size: 32 bits
ULONG RequestSizingCount; // offset: 96, size: 32 bits
ULONGLONG[5] RequestSizing; // offset: 128, size: 320 bits
};
_HTTP_REQUEST_TIMING_INFO
struct _HTTP_REQUEST_TIMING_INFO { // size: 224 bytes, align: 8
ULONG RequestTimingCount; // offset: 0, size: 32 bits
ULONGLONG[27] RequestTiming; // offset: 64, size: 1728 bits
};
_HTTP_SERVICE_CONFIG_SSL_PARAM_EX
struct _HTTP_SERVICE_CONFIG_SSL_PARAM_EX { // size: 24 bytes, align: 8
HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE ParamType; // offset: 0, size: 32 bits
ULONGLONG Flags; // offset: 64, size: 64 bits
HTTP2_WINDOW_SIZE_PARAM Http2WindowSizeParam; // offset: 128, size: 32 bits
HTTP2_SETTINGS_LIMITS_PARAM Http2SettingsLimitsParam; // offset: 128, size: 64 bits
};
_KERB_RETRIEVE_KEY_TAB_REQUEST
struct _KERB_RETRIEVE_KEY_TAB_REQUEST { // size: 20 bytes, align: 4
KERB_PROTOCOL_MESSAGE_TYPE MessageType; // offset: 0, size: 32 bits
ULONG Flags; // offset: 32, size: 32 bits
UNICODE_STRING UserName; // offset: 64, size: 32 bits
UNICODE_STRING DomainName; // offset: 96, size: 32 bits
UNICODE_STRING Password; // offset: 128, size: 32 bits
};
_KERB_RETRIEVE_KEY_TAB_RESPONSE
struct _KERB_RETRIEVE_KEY_TAB_RESPONSE { // size: 16 bytes, align: 8
KERB_PROTOCOL_MESSAGE_TYPE MessageType; // offset: 0, size: 32 bits
ULONG KeyTabLength; // offset: 32, size: 32 bits
PUCHAR KeyTab; // offset: 64, size: 64 bits
};
_MAXVERSIONTESTED_INFO
struct _MAXVERSIONTESTED_INFO { // size: 8 bytes, align: 8
ULONGLONG MaxVersionTested; // offset: 0, size: 64 bits
};
_MCG_CAP
union _MCG_CAP { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONG64 QuadPart; // offset: 0, size: 64 bits
};
_MCI_STATUS_AMD_BITS
struct _MCI_STATUS_AMD_BITS { // size: 8 bytes, align: 1
ULONG64 McaErrorCode; // offset: 0, size: 16 bits
ULONG64 ModelErrorCode; // offset: 16, size: 16 bits
ULONG64 ImplementationSpecific2; // offset: 32, size: 11 bits
ULONG64 Poison; // offset: 43, size: 1 bits
ULONG64 Deferred; // offset: 44, size: 1 bits
ULONG64 ImplementationSpecific1; // offset: 45, size: 12 bits
ULONG64 ContextCorrupt; // offset: 57, size: 1 bits
ULONG64 AddressValid; // offset: 58, size: 1 bits
ULONG64 MiscValid; // offset: 59, size: 1 bits
ULONG64 ErrorEnabled; // offset: 60, size: 1 bits
ULONG64 UncorrectedError; // offset: 61, size: 1 bits
ULONG64 StatusOverFlow; // offset: 62, size: 1 bits
ULONG64 Valid; // offset: 63, size: 1 bits
};
_MCI_STATUS_BITS_COMMON
struct _MCI_STATUS_BITS_COMMON { // size: 8 bytes, align: 1
ULONG64 McaErrorCode; // offset: 0, size: 16 bits
ULONG64 ModelErrorCode; // offset: 16, size: 16 bits
ULONG64 Reserved; // offset: 32, size: 25 bits
ULONG64 ContextCorrupt; // offset: 57, size: 1 bits
ULONG64 AddressValid; // offset: 58, size: 1 bits
ULONG64 MiscValid; // offset: 59, size: 1 bits
ULONG64 ErrorEnabled; // offset: 60, size: 1 bits
ULONG64 UncorrectedError; // offset: 61, size: 1 bits
ULONG64 StatusOverFlow; // offset: 62, size: 1 bits
ULONG64 Valid; // offset: 63, size: 1 bits
};
_MCI_STATUS_INTEL_BITS
struct _MCI_STATUS_INTEL_BITS { // size: 8 bytes, align: 1
ULONG64 McaErrorCode; // offset: 0, size: 16 bits
ULONG64 ModelErrorCode; // offset: 16, size: 16 bits
ULONG64 OtherInfo; // offset: 32, size: 5 bits
ULONG64 FirmwareUpdateError; // offset: 37, size: 1 bits
ULONG64 CorrectedErrorCount; // offset: 38, size: 15 bits
ULONG64 ThresholdErrorStatus; // offset: 53, size: 2 bits
ULONG64 ActionRequired; // offset: 55, size: 1 bits
ULONG64 Signalling; // offset: 56, size: 1 bits
ULONG64 ContextCorrupt; // offset: 57, size: 1 bits
ULONG64 AddressValid; // offset: 58, size: 1 bits
ULONG64 MiscValid; // offset: 59, size: 1 bits
ULONG64 ErrorEnabled; // offset: 60, size: 1 bits
ULONG64 UncorrectedError; // offset: 61, size: 1 bits
ULONG64 StatusOverFlow; // offset: 62, size: 1 bits
ULONG64 Valid; // offset: 63, size: 1 bits
};
_MDNS_QUERY_HANDLE
struct _MDNS_QUERY_HANDLE { // size: 1056 bytes, align: 8
WCHAR[256] nameBuf; // offset: 0, size: 8192 bits
WORD wType; // offset: 8192, size: 16 bits
PVOID pSubscription; // offset: 8256, size: 64 bits
PVOID pWnfCallbackParams; // offset: 8320, size: 64 bits
ULONG[2] stateNameData; // offset: 8384, size: 64 bits
};
_MDNS_QUERY_REQUEST
struct _MDNS_QUERY_REQUEST { // size: 64 bytes, align: 8
ULONG Version; // offset: 0, size: 32 bits
ULONG ulRefCount; // offset: 32, size: 32 bits
PCWSTR Query; // offset: 64, size: 64 bits
WORD QueryType; // offset: 128, size: 16 bits
ULONG64 QueryOptions; // offset: 192, size: 64 bits
ULONG InterfaceIndex; // offset: 256, size: 32 bits
PMDNS_QUERY_CALLBACK pQueryCallback; // offset: 320, size: 64 bits
PVOID pQueryContext; // offset: 384, size: 64 bits
BOOL fAnswerReceived; // offset: 448, size: 32 bits
ULONG ulResendCount; // offset: 480, size: 32 bits
};
_MIPI_DSI2_CAPS
struct _MIPI_DSI2_CAPS { // size: 16 bytes, align: 2
UCHAR DSI2VersionMajor; // offset: 0, size: 8 bits
UCHAR DSI2VersionMinor; // offset: 8, size: 8 bits
USHORT TargetMaximumReturnPacketSize; // offset: 16, size: 16 bits
UCHAR ResultCodeFlags; // offset: 32, size: 8 bits
UCHAR ResultCodeStatus; // offset: 40, size: 8 bits
UCHAR Revision; // offset: 48, size: 8 bits
UCHAR Level; // offset: 56, size: 8 bits
UCHAR DeviceClassHi; // offset: 64, size: 8 bits
UCHAR DeviceClassLo; // offset: 72, size: 8 bits
UCHAR ManufacturerHi; // offset: 80, size: 8 bits
UCHAR ManufacturerLo; // offset: 88, size: 8 bits
UCHAR ProductHi; // offset: 96, size: 8 bits
UCHAR ProductLo; // offset: 104, size: 8 bits
UCHAR LengthHi; // offset: 112, size: 8 bits
UCHAR LengthLo; // offset: 120, size: 8 bits
};
_MIPI_DSI2_PACKET
struct _MIPI_DSI2_PACKET { // size: 20 bytes, align: 4
ULONG DataId; // offset: 0, size: 8 bits
ULONG DataType; // offset: 0, size: 6 bits
ULONG VirtualChannel; // offset: 6, size: 2 bits
ULONG Data0; // offset: 32, size: 8 bits
ULONG Data1; // offset: 40, size: 8 bits
ULONG LongWriteWordCount; // offset: 32, size: 16 bits
ULONG EccFiller; // offset: 64, size: 8 bits
UCHAR[8] Payload; // offset: 96, size: 64 bits
};
_MIPI_DSI2_TRANSMISSION
struct _MIPI_DSI2_TRANSMISSION { // size: 36 bytes, align: 4
ULONG TotalBufferSize; // offset: 0, size: 32 bits
ULONG PacketCount; // offset: 32, size: 8 bits
ULONG FailedPacket; // offset: 40, size: 8 bits
ULONG TransmissionMode; // offset: 48, size: 2 bits
ULONG ReportMipiErrors; // offset: 50, size: 1 bits
ULONG ClearMipiErrors; // offset: 51, size: 1 bits
ULONG SecondaryPort; // offset: 52, size: 1 bits
ULONG Reserved; // offset: 53, size: 11 bits
USHORT ReadWordCount; // offset: 64, size: 16 bits
USHORT FinalCommandExtraPayload; // offset: 80, size: 16 bits
USHORT MipiErrors; // offset: 96, size: 16 bits
USHORT HostErrors; // offset: 112, size: 16 bits
MIPI_DSI2_PACKET[1] Packets; // offset: 128, size: 160 bits
};
_PHYSICAL_MEMORY_DESCRIPTOR32
struct _PHYSICAL_MEMORY_DESCRIPTOR32 { // size: 16 bytes, align: 4
ULONG NumberOfRuns; // offset: 0, size: 32 bits
ULONG NumberOfPages; // offset: 32, size: 32 bits
PHYSICAL_MEMORY_RUN32[1] Run; // offset: 64, size: 64 bits
};
_PHYSICAL_MEMORY_DESCRIPTOR64
struct _PHYSICAL_MEMORY_DESCRIPTOR64 { // size: 32 bytes, align: 8
ULONG NumberOfRuns; // offset: 0, size: 32 bits
ULONG64 NumberOfPages; // offset: 64, size: 64 bits
PHYSICAL_MEMORY_RUN64[1] Run; // offset: 128, size: 128 bits
};
_PHYSICAL_MEMORY_RUN32
struct _PHYSICAL_MEMORY_RUN32 { // size: 8 bytes, align: 4
ULONG BasePage; // offset: 0, size: 32 bits
ULONG PageCount; // offset: 32, size: 32 bits
};
_PHYSICAL_MEMORY_RUN64
struct _PHYSICAL_MEMORY_RUN64 { // size: 16 bytes, align: 8
ULONG64 BasePage; // offset: 0, size: 64 bits
ULONG64 PageCount; // offset: 64, size: 64 bits
};
_SCH_EXTENSION_DATA
struct _SCH_EXTENSION_DATA { // size: 24 bytes, align: 8
WORD ExtensionType; // offset: 0, size: 16 bits
const BYTE * pExtData; // offset: 64, size: 64 bits
DWORD cbExtData; // offset: 128, size: 32 bits
};
_SEC_FLAGS
struct _SEC_FLAGS { // size: 8 bytes, align: 8
unsigned long long Flags; // offset: 0, size: 64 bits
};
_SET_ACTIVE_COLOR_PROFILE_NAME
struct _SET_ACTIVE_COLOR_PROFILE_NAME { // size: 4 bytes, align: 4
WCHAR[1] ColorProfileName; // offset: 0, size: 32 bits
};
_STORAGE_ENDURANCE_DATA_DESCRIPTOR
struct _STORAGE_ENDURANCE_DATA_DESCRIPTOR { // size: 56 bytes, align: 4
ULONG Version; // offset: 0, size: 32 bits
ULONG Size; // offset: 32, size: 32 bits
STORAGE_ENDURANCE_INFO EnduranceInfo; // offset: 64, size: 384 bits
};
_STORAGE_ENDURANCE_INFO
struct _STORAGE_ENDURANCE_INFO { // size: 48 bytes, align: 4
ULONG ValidFields; // offset: 0, size: 32 bits
ULONG GroupId; // offset: 32, size: 32 bits
struct (unnamed struct at shared/ntddscsi.h) Flags; // offset: 64, size: 32 bits
ULONG LifePercentage; // offset: 96, size: 32 bits
UCHAR[16] BytesReadCount; // offset: 128, size: 128 bits
UCHAR[16] ByteWriteCount; // offset: 256, size: 128 bits
};
_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR
struct _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR { // size: 56 bytes, align: 4
DWORD Version; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
STORAGE_HW_ENDURANCE_INFO EnduranceInfo; // offset: 64, size: 384 bits
};
_STORAGE_HW_ENDURANCE_INFO
struct _STORAGE_HW_ENDURANCE_INFO { // size: 48 bytes, align: 4
DWORD ValidFields; // offset: 0, size: 32 bits
DWORD GroupId; // offset: 32, size: 32 bits
struct (unnamed struct at um/winioctl.h) Flags; // offset: 64, size: 32 bits
DWORD LifePercentage; // offset: 96, size: 32 bits
BYTE[16] BytesReadCount; // offset: 128, size: 128 bits
BYTE[16] ByteWriteCount; // offset: 256, size: 128 bits
};
_STORAGE_PROPERTY_SET
struct _STORAGE_PROPERTY_SET { // size: 12 bytes, align: 4
STORAGE_PROPERTY_ID PropertyId; // offset: 0, size: 32 bits
STORAGE_SET_TYPE SetType; // offset: 32, size: 32 bits
BYTE[1] AdditionalParameters; // offset: 64, size: 8 bits
};
_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT
struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT { // size: 72 bytes, align: 4
DWORD Version; // offset: 0, size: 32 bits
DWORD Size; // offset: 32, size: 32 bits
STORAGE_PROTOCOL_SPECIFIC_DATA_EXT ProtocolSpecificData; // offset: 64, size: 512 bits
};
_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT
struct _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT { // size: 64 bytes, align: 4
STORAGE_PROTOCOL_TYPE ProtocolType; // offset: 0, size: 32 bits
DWORD DataType; // offset: 32, size: 32 bits
DWORD ProtocolDataValue; // offset: 64, size: 32 bits
DWORD ProtocolDataSubValue; // offset: 96, size: 32 bits
DWORD ProtocolDataOffset; // offset: 128, size: 32 bits
DWORD ProtocolDataLength; // offset: 160, size: 32 bits
DWORD FixedProtocolReturnData; // offset: 192, size: 32 bits
DWORD ProtocolDataSubValue2; // offset: 224, size: 32 bits
DWORD ProtocolDataSubValue3; // offset: 256, size: 32 bits
DWORD ProtocolDataSubValue4; // offset: 288, size: 32 bits
DWORD ProtocolDataSubValue5; // offset: 320, size: 32 bits
DWORD[5] Reserved; // offset: 352, size: 160 bits
};
_SYSTEM_CODEINTEGRITY_INFORMATION
struct _SYSTEM_CODEINTEGRITY_INFORMATION { // size: 8 bytes, align: 4
ULONG Length; // offset: 0, size: 32 bits
ULONG CodeIntegrityOptions; // offset: 32, size: 32 bits
};
_TLS_EXTENSION_SUBSCRIPTION
struct _TLS_EXTENSION_SUBSCRIPTION { // size: 4 bytes, align: 2
WORD ExtensionType; // offset: 0, size: 16 bits
WORD HandshakeType; // offset: 16, size: 16 bits
};
_VBS_BASIC_ENCLAVE_EXCEPTION_AMD64
struct _VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 { // size: 72 bytes, align: 8
ULONG ExceptionCode; // offset: 0, size: 32 bits
ULONG NumberParameters; // offset: 32, size: 32 bits
ULONG_PTR[3] ExceptionInformation; // offset: 64, size: 192 bits
ULONG_PTR ExceptionRAX; // offset: 256, size: 64 bits
ULONG_PTR ExceptionRCX; // offset: 320, size: 64 bits
ULONG_PTR ExceptionRIP; // offset: 384, size: 64 bits
ULONG_PTR ExceptionRFLAGS; // offset: 448, size: 64 bits
ULONG_PTR ExceptionRSP; // offset: 512, size: 64 bits
};
_VBS_BASIC_ENCLAVE_SYSCALL_PAGE
struct _VBS_BASIC_ENCLAVE_SYSCALL_PAGE { // size: 104 bytes, align: 8
VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_ENCLAVE * ReturnFromEnclave; // offset: 0, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION * ReturnFromException; // offset: 64, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD * TerminateThread; // offset: 128, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD * InterruptThread; // offset: 192, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_COMMIT_PAGES * CommitPages; // offset: 256, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_DECOMMIT_PAGES * DecommitPages; // offset: 320, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_PROTECT_PAGES * ProtectPages; // offset: 384, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD * CreateThread; // offset: 448, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_GET_ENCLAVE_INFORMATION * GetEnclaveInformation; // offset: 512, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_KEY * GenerateKey; // offset: 576, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_REPORT * GenerateReport; // offset: 640, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_VERIFY_REPORT * VerifyReport; // offset: 704, size: 64 bits
VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_RANDOM_DATA * GenerateRandomData; // offset: 768, size: 64 bits
};
_VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32
struct _VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 { // size: 36 bytes, align: 4
ULONG[4] ThreadContext; // offset: 0, size: 128 bits
ULONG EntryPoint; // offset: 128, size: 32 bits
ULONG StackPointer; // offset: 160, size: 32 bits
ULONG ExceptionEntryPoint; // offset: 192, size: 32 bits
ULONG ExceptionStack; // offset: 224, size: 32 bits
ULONG ExceptionActive; // offset: 256, size: 32 bits
};
_VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64
struct _VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 { // size: 72 bytes, align: 8
ULONGLONG[4] ThreadContext; // offset: 0, size: 256 bits
ULONGLONG EntryPoint; // offset: 256, size: 64 bits
ULONGLONG StackPointer; // offset: 320, size: 64 bits
ULONGLONG ExceptionEntryPoint; // offset: 384, size: 64 bits
ULONGLONG ExceptionStack; // offset: 448, size: 64 bits
ULONG ExceptionActive; // offset: 512, size: 32 bits
};
_WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS
struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { // size: 88 bytes, align: 8
DWORD dwVersion; // offset: 0, size: 32 bits
DWORD dwTimeoutMilliseconds; // offset: 32, size: 32 bits
WEBAUTHN_CREDENTIALS CredentialList; // offset: 64, size: 128 bits
WEBAUTHN_EXTENSIONS Extensions; // offset: 192, size: 128 bits
DWORD dwAuthenticatorAttachment; // offset: 320, size: 32 bits
DWORD dwUserVerificationRequirement; // offset: 352, size: 32 bits
DWORD dwFlags; // offset: 384, size: 32 bits
PCWSTR pwszU2fAppId; // offset: 448, size: 64 bits
BOOL * pbU2fAppId; // offset: 512, size: 64 bits
GUID * pCancellationId; // offset: 576, size: 64 bits
PWEBAUTHN_CREDENTIAL_LIST pAllowCredentialList; // offset: 640, size: 64 bits
};
_WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS
struct _WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { // size: 80 bytes, align: 8
DWORD dwVersion; // offset: 0, size: 32 bits
DWORD dwTimeoutMilliseconds; // offset: 32, size: 32 bits
WEBAUTHN_CREDENTIALS CredentialList; // offset: 64, size: 128 bits
WEBAUTHN_EXTENSIONS Extensions; // offset: 192, size: 128 bits
DWORD dwAuthenticatorAttachment; // offset: 320, size: 32 bits
BOOL bRequireResidentKey; // offset: 352, size: 32 bits
DWORD dwUserVerificationRequirement; // offset: 384, size: 32 bits
DWORD dwAttestationConveyancePreference; // offset: 416, size: 32 bits
DWORD dwFlags; // offset: 448, size: 32 bits
GUID * pCancellationId; // offset: 512, size: 64 bits
PWEBAUTHN_CREDENTIAL_LIST pExcludeCredentialList; // offset: 576, size: 64 bits
};
_WEBAUTHN_COSE_CREDENTIAL_PARAMETER
struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETER { // size: 24 bytes, align: 8
DWORD dwVersion; // offset: 0, size: 32 bits
LPCWSTR pwszCredentialType; // offset: 64, size: 64 bits
LONG lAlg; // offset: 128, size: 32 bits
};
_WEBAUTHN_COSE_CREDENTIAL_PARAMETERS
struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETERS { // size: 16 bytes, align: 8
DWORD cCredentialParameters; // offset: 0, size: 32 bits
PWEBAUTHN_COSE_CREDENTIAL_PARAMETER pCredentialParameters; // offset: 64, size: 64 bits
};
_WEBAUTHN_CREDENTIALS
struct _WEBAUTHN_CREDENTIALS { // size: 16 bytes, align: 8
DWORD cCredentials; // offset: 0, size: 32 bits
PWEBAUTHN_CREDENTIAL pCredentials; // offset: 64, size: 64 bits
};
_WEBAUTHN_CREDENTIAL_LIST
struct _WEBAUTHN_CREDENTIAL_LIST { // size: 16 bytes, align: 8
DWORD cCredentials; // offset: 0, size: 32 bits
PWEBAUTHN_CREDENTIAL_EX * ppCredentials; // offset: 64, size: 64 bits
};
_WEBAUTHN_EXTENSION
struct _WEBAUTHN_EXTENSION { // size: 24 bytes, align: 8
LPCWSTR pwszExtensionIdentifier; // offset: 0, size: 64 bits
DWORD cbExtension; // offset: 64, size: 32 bits
PVOID pvExtension; // offset: 128, size: 64 bits
};
_WEBAUTHN_EXTENSIONS
struct _WEBAUTHN_EXTENSIONS { // size: 16 bytes, align: 8
DWORD cExtensions; // offset: 0, size: 32 bits
PWEBAUTHN_EXTENSION pExtensions; // offset: 64, size: 64 bits
};
_WEBAUTHN_RP_ENTITY_INFORMATION
struct _WEBAUTHN_RP_ENTITY_INFORMATION { // size: 32 bytes, align: 8
DWORD dwVersion; // offset: 0, size: 32 bits
PCWSTR pwszId; // offset: 64, size: 64 bits
PCWSTR pwszName; // offset: 128, size: 64 bits
PCWSTR pwszIcon; // offset: 192, size: 64 bits
};
_WHEA_AMD_EXTENDED_REGISTERS
struct _WHEA_AMD_EXTENDED_REGISTERS { // size: 192 bytes, align: 1
ULONGLONG IPID; // offset: 0, size: 64 bits
ULONGLONG SYND; // offset: 64, size: 64 bits
ULONGLONG CONFIG; // offset: 128, size: 64 bits
ULONGLONG DESTAT; // offset: 192, size: 64 bits
ULONGLONG DEADDR; // offset: 256, size: 64 bits
ULONGLONG MISC1; // offset: 320, size: 64 bits
ULONGLONG MISC2; // offset: 384, size: 64 bits
ULONGLONG MISC3; // offset: 448, size: 64 bits
ULONGLONG MISC4; // offset: 512, size: 64 bits
ULONGLONG RasCap; // offset: 576, size: 64 bits
ULONGLONG[14] Reserved; // offset: 640, size: 896 bits
};
_WHEA_ERROR_SOURCE_CONFIGURATION_DD
struct _WHEA_ERROR_SOURCE_CONFIGURATION_DD { // size: 32 bytes, align: 1
WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER Initialize; // offset: 0, size: 64 bits
WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER Uninitialize; // offset: 64, size: 64 bits
WHEA_ERROR_SOURCE_READY_DEVICE_DRIVER Ready; // offset: 128, size: 64 bits
WHEA_ERROR_SOURCE_CORRECT_DEVICE_DRIVER Correct; // offset: 192, size: 64 bits
};
_WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER
struct _WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER { // size: 24 bytes, align: 1
WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER Initialize; // offset: 0, size: 64 bits
WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER Uninitialize; // offset: 64, size: 64 bits
WHEA_ERROR_SOURCE_READY_DEVICE_DRIVER Ready; // offset: 128, size: 64 bits
};
_WHEA_PMEM_ERROR_SECTION_VALIDBITS
union _WHEA_PMEM_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_PMEM_PAGE_RANGE
struct _WHEA_PMEM_PAGE_RANGE { // size: 24 bytes, align: 1
ULONG64 StartingPfn; // offset: 0, size: 64 bits
ULONG64 PageCount; // offset: 64, size: 64 bits
ULONG64 MarkedBadBitmap; // offset: 128, size: 64 bits
};
_WINBIO_FP_BU_STATE
struct _WINBIO_FP_BU_STATE { // size: 8 bytes, align: 4
BOOL SensorAttached; // offset: 0, size: 32 bits
HRESULT CreationResult; // offset: 32, size: 32 bits
};
_WINHTTP_REQUEST_STATS
struct _WINHTTP_REQUEST_STATS { // size: 272 bytes, align: 8
ULONGLONG ullFlags; // offset: 0, size: 64 bits
ULONG ulIndex; // offset: 64, size: 32 bits
ULONG cStats; // offset: 96, size: 32 bits
ULONGLONG[32] rgullStats; // offset: 128, size: 2048 bits
};
_WINHTTP_REQUEST_TIMES
struct _WINHTTP_REQUEST_TIMES { // size: 520 bytes, align: 8
ULONG cTimes; // offset: 0, size: 32 bits
ULONGLONG[64] rgullTimes; // offset: 64, size: 4096 bits
};
__MIDL_IBackgroundCopyJob2_0001
struct __MIDL_IBackgroundCopyJob2_0001 { // size: 16 bytes, align: 8
LPWSTR UserName; // offset: 0, size: 64 bits
LPWSTR Password; // offset: 64, size: 64 bits
};
__MIDL_IBackgroundCopyJob2_0002
union __MIDL_IBackgroundCopyJob2_0002 { // size: 16 bytes, align: 8
BG_BASIC_CREDENTIALS Basic; // offset: 0, size: 128 bits
};
__MIDL___MIDL_itf_bits5_0_0000_0000_0001
union __MIDL___MIDL_itf_bits5_0_0000_0000_0001 { // size: 16 bytes, align: 8
DWORD Dword; // offset: 0, size: 32 bits
GUID ClsID; // offset: 0, size: 128 bits
BOOL Enable; // offset: 0, size: 32 bits
UINT64 Uint64; // offset: 0, size: 64 bits
BG_AUTH_TARGET Target; // offset: 0, size: 32 bits
};
__MIDL___MIDL_itf_bits5_0_0000_0000_0002
union __MIDL___MIDL_itf_bits5_0_0000_0000_0002 { // size: 8 bytes, align: 8
LPWSTR String; // offset: 0, size: 64 bits
};
Structs Removed
4__MIDL_IBackgroundCopyJob2_0004
union __MIDL_IBackgroundCopyJob2_0004 { // size: 16 bytes, align: 8
BG_BASIC_CREDENTIALS Basic; // offset: 0, size: 128 bits
};
__MIDL_IBackgroundCopyJob2_0005
struct __MIDL_IBackgroundCopyJob2_0005 { // size: 24 bytes, align: 8
BG_AUTH_TARGET Target; // offset: 0, size: 32 bits
BG_AUTH_SCHEME Scheme; // offset: 32, size: 32 bits
BG_AUTH_CREDENTIALS_UNION Credentials; // offset: 64, size: 128 bits
};
__MIDL___MIDL_itf_bits5_0_0000_0000_0003
union __MIDL___MIDL_itf_bits5_0_0000_0000_0003 { // size: 16 bytes, align: 8
DWORD Dword; // offset: 0, size: 32 bits
GUID ClsID; // offset: 0, size: 128 bits
BOOL Enable; // offset: 0, size: 32 bits
UINT64 Uint64; // offset: 0, size: 64 bits
BG_AUTH_TARGET Target; // offset: 0, size: 32 bits
};
__MIDL___MIDL_itf_bits5_0_0000_0000_0005
union __MIDL___MIDL_itf_bits5_0_0000_0000_0005 { // size: 8 bytes, align: 8
LPWSTR String; // offset: 0, size: 64 bits
};
Structs Modified
15D3D12_AUTO_BREADCRUMB_NODE
Before
struct D3D12_AUTO_BREADCRUMB_NODE { // size: 80 bytes, align: 8
const char * pCommandListDebugNameA; // offset: 0, size: 64 bits
const wchar_t * pCommandListDebugNameW; // offset: 64, size: 64 bits
const char * pCommandQueueDebugNameA; // offset: 128, size: 64 bits
const wchar_t * pCommandQueueDebugNameW; // offset: 192, size: 64 bits
ID3D12GraphicsCommandList * pCommandList; // offset: 256, size: 64 bits
ID3D12CommandQueue * pCommandQueue; // offset: 320, size: 64 bits
UINT32 BreadcrumbCount; // offset: 384, size: 32 bits
UINT32 * pLastBreadcrumbValue; // offset: 448, size: 64 bits
D3D12_AUTO_BREADCRUMB_OP * pCommandHistory; // offset: 512, size: 64 bits
struct D3D12_AUTO_BREADCRUMB_NODE * pNext; // offset: 576, size: 64 bits
};
After
struct D3D12_AUTO_BREADCRUMB_NODE { // size: 80 bytes, align: 8
const char * pCommandListDebugNameA; // offset: 0, size: 64 bits
const wchar_t * pCommandListDebugNameW; // offset: 64, size: 64 bits
const char * pCommandQueueDebugNameA; // offset: 128, size: 64 bits
const wchar_t * pCommandQueueDebugNameW; // offset: 192, size: 64 bits
ID3D12GraphicsCommandList * pCommandList; // offset: 256, size: 64 bits
ID3D12CommandQueue * pCommandQueue; // offset: 320, size: 64 bits
UINT32 BreadcrumbCount; // offset: 384, size: 32 bits
const UINT32 * pLastBreadcrumbValue; // offset: 448, size: 64 bits
const D3D12_AUTO_BREADCRUMB_OP * pCommandHistory; // offset: 512, size: 64 bits
const struct D3D12_AUTO_BREADCRUMB_NODE * pNext; // offset: 576, size: 64 bits
};
Changes
-
Changed
pCommandHistorytype fromD3D12_AUTO_BREADCRUMB_OP *toconst D3D12_AUTO_BREADCRUMB_OP *. -
Changed
pLastBreadcrumbValuetype fromUINT32 *toconst UINT32 *. -
Changed
pNexttype fromstruct D3D12_AUTO_BREADCRUMB_NODE *toconst struct D3D12_AUTO_BREADCRUMB_NODE *.
D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
Before
struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA { // size: 24 bytes, align: 8
D3D12_DRED_VERSION Version; // offset: 0, size: 32 bits
D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; // offset: 64, size: 128 bits
};
After
struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA { // size: 48 bytes, align: 8
D3D12_DRED_VERSION Version; // offset: 0, size: 32 bits
D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; // offset: 64, size: 128 bits
D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; // offset: 64, size: 320 bits
};
Changes
- Size changed from 24 to 48 bytes.
-
Added field
D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1at offset 64 bits (320 bits).
DXGI_DDI_PRESENT_FLAGS
Before
struct DXGI_DDI_PRESENT_FLAGS { // size: 4 bytes, align: 4
UINT Blt; // offset: 0, size: 1 bits
UINT Flip; // offset: 1, size: 1 bits
UINT PreferRight; // offset: 2, size: 1 bits
UINT TemporaryMono; // offset: 3, size: 1 bits
UINT AllowTearing; // offset: 4, size: 1 bits
UINT AllowFlexibleRefresh; // offset: 5, size: 1 bits
UINT Reserved; // offset: 6, size: 26 bits
UINT Value; // offset: 0, size: 32 bits
};
After
struct DXGI_DDI_PRESENT_FLAGS { // size: 4 bytes, align: 4
UINT Blt; // offset: 0, size: 1 bits
UINT Flip; // offset: 1, size: 1 bits
UINT PreferRight; // offset: 2, size: 1 bits
UINT TemporaryMono; // offset: 3, size: 1 bits
UINT AllowTearing; // offset: 4, size: 1 bits
UINT AllowFlexibleRefresh; // offset: 5, size: 1 bits
UINT NoScanoutTransform; // offset: 6, size: 1 bits
UINT Reserved; // offset: 7, size: 25 bits
UINT Value; // offset: 0, size: 32 bits
};
Changes
-
Added field
UINT NoScanoutTransformat offset 6 bits (1 bits). -
Moved
Reservedfrom offset 6 to 7 bits. -
Changed
Reservedsize from 26 to 25 bits.
IESEventVtbl
Before
struct IESEventVtbl { // size: 64 bytes, align: 8
HRESULT (*)(IESEvent *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IESEvent *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IESEvent *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IESEvent *, DWORD *) GetEventId; // offset: 192, size: 64 bits
HRESULT (*)(IESEvent *, GUID *) GetEventType; // offset: 256, size: 64 bits
HRESULT (*)(IESEvent *, DWORD) SetCompletionStatus; // offset: 320, size: 64 bits
HRESULT (*)(IESEvent *, int **) GetData; // offset: 384, size: 64 bits
HRESULT (*)(IESEvent *, int *) GetStringData; // offset: 448, size: 64 bits
};
After
struct IESEventVtbl { // size: 64 bytes, align: 8
HRESULT (*)(IESEvent *, const IID *const, void **) QueryInterface; // offset: 0, size: 64 bits
ULONG (*)(IESEvent *) AddRef; // offset: 64, size: 64 bits
ULONG (*)(IESEvent *) Release; // offset: 128, size: 64 bits
HRESULT (*)(IESEvent *, DWORD *) GetEventId; // offset: 192, size: 64 bits
HRESULT (*)(IESEvent *, GUID *) GetEventType; // offset: 256, size: 64 bits
HRESULT (*)(IESEvent *, DWORD) SetCompletionStatus; // offset: 320, size: 64 bits
HRESULT (*)(IESEvent *, int **) GetData; // offset: 384, size: 64 bits
HRESULT (*)(IESEvent *, BSTR *) GetStringData; // offset: 448, size: 64 bits
};
Changes
-
Changed
GetStringDatatype fromHRESULT (*)(IESEvent *, int *)toHRESULT (*)(IESEvent *, BSTR *).
IXAPOVtbl
Before
struct IXAPOVtbl { // size: 80 bytes, align: 1
HRESULT (*)(IXAPO *, XAPO_REGISTRATION_PROPERTIES **) GetRegistrationProperties; // offset: 0, size: 64 bits
HRESULT (*)(IXAPO *, const WAVEFORMATEX *, const WAVEFORMATEX *, WAVEFORMATEX **) IsInputFormatSupported; // offset: 64, size: 64 bits
HRESULT (*)(IXAPO *, const WAVEFORMATEX *, const WAVEFORMATEX *, WAVEFORMATEX **) IsOutputFormatSupported; // offset: 128, size: 64 bits
HRESULT (*)(IXAPO *, const void *, UINT32) Initialize; // offset: 192, size: 64 bits
void (*)(IXAPO *) Reset; // offset: 256, size: 64 bits
HRESULT (*)(IXAPO *, UINT32, const struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS *, UINT32, const struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS *) LockForProcess; // offset: 320, size: 64 bits
void (*)(IXAPO *) UnlockForProcess; // offset: 384, size: 64 bits
void (*)(IXAPO *, UINT32, const XAPO_PROCESS_BUFFER_PARAMETERS *, UINT32, XAPO_PROCESS_BUFFER_PARAMETERS *, BOOL) Process; // offset: 448, size: 64 bits
UINT32 (*)(IXAPO *, UINT32) CalcInputFrames; // offset: 512, size: 64 bits
UINT32 (*)(IXAPO *, UINT32) CalcOutputFrames; // offset: 576, size: 64 bits
};
After
struct IXAPOVtbl { // size: 80 bytes, align: 1
HRESULT (*)(IXAPO *, XAPO_REGISTRATION_PROPERTIES **) GetRegistrationProperties; // offset: 0, size: 64 bits
HRESULT (*)(IXAPO *, const WAVEFORMATEX *, const WAVEFORMATEX *, WAVEFORMATEX **) IsInputFormatSupported; // offset: 64, size: 64 bits
HRESULT (*)(IXAPO *, const WAVEFORMATEX *, const WAVEFORMATEX *, WAVEFORMATEX **) IsOutputFormatSupported; // offset: 128, size: 64 bits
HRESULT (*)(IXAPO *, const void *, UINT32) Initialize; // offset: 192, size: 64 bits
void (*)(IXAPO *) Reset; // offset: 256, size: 64 bits
HRESULT (*)(IXAPO *, UINT32, const XAPO_LOCKFORPROCESS_PARAMETERS *, UINT32, const XAPO_LOCKFORPROCESS_PARAMETERS *) LockForProcess; // offset: 320, size: 64 bits
void (*)(IXAPO *) UnlockForProcess; // offset: 384, size: 64 bits
void (*)(IXAPO *, UINT32, const XAPO_PROCESS_BUFFER_PARAMETERS *, UINT32, XAPO_PROCESS_BUFFER_PARAMETERS *, BOOL) Process; // offset: 448, size: 64 bits
UINT32 (*)(IXAPO *, UINT32) CalcInputFrames; // offset: 512, size: 64 bits
UINT32 (*)(IXAPO *, UINT32) CalcOutputFrames; // offset: 576, size: 64 bits
};
Changes
-
Changed
LockForProcesstype fromHRESULT (*)(IXAPO *, UINT32, const struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS *, UINT32, const struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS *)toHRESULT (*)(IXAPO *, UINT32, const XAPO_LOCKFORPROCESS_PARAMETERS *, UINT32, const XAPO_LOCKFORPROCESS_PARAMETERS *).
NVME_IDENTIFY_CONTROLLER_DATA
Before
struct NVME_IDENTIFY_CONTROLLER_DATA { // size: 4096 bytes, align: 4
USHORT VID; // offset: 0, size: 16 bits
USHORT SSVID; // offset: 16, size: 16 bits
UCHAR[20] SN; // offset: 32, size: 160 bits
UCHAR[40] MN; // offset: 192, size: 320 bits
UCHAR[8] FR; // offset: 512, size: 64 bits
UCHAR RAB; // offset: 576, size: 8 bits
UCHAR[3] IEEE; // offset: 584, size: 24 bits
struct (unnamed struct at shared/nvme.h) CMIC; // offset: 608, size: 8 bits
UCHAR MDTS; // offset: 616, size: 8 bits
USHORT CNTLID; // offset: 624, size: 16 bits
ULONG VER; // offset: 640, size: 32 bits
ULONG RTD3R; // offset: 672, size: 32 bits
ULONG RTD3E; // offset: 704, size: 32 bits
ULONG Reserved0; // offset: 768, size: 8 bits
ULONG Reserved1; // offset: 2656, size: 22 bits
struct (unnamed struct at shared/nvme.h) OAES; // offset: 736, size: 32 bits
UCHAR[144] Reserved0; // offset: 768, size: 1152 bits
UCHAR[16] ReservedForManagement; // offset: 1920, size: 128 bits
struct (unnamed struct at shared/nvme.h) OACS; // offset: 2048, size: 16 bits
UCHAR ACL; // offset: 2064, size: 8 bits
UCHAR AERL; // offset: 2072, size: 8 bits
struct (unnamed struct at shared/nvme.h) FRMW; // offset: 2080, size: 8 bits
struct (unnamed struct at shared/nvme.h) LPA; // offset: 2088, size: 8 bits
UCHAR ELPE; // offset: 2096, size: 8 bits
UCHAR NPSS; // offset: 2104, size: 8 bits
struct (unnamed struct at shared/nvme.h) AVSCC; // offset: 2112, size: 8 bits
struct (unnamed struct at shared/nvme.h) APSTA; // offset: 2120, size: 8 bits
USHORT WCTEMP; // offset: 2128, size: 16 bits
USHORT CCTEMP; // offset: 2144, size: 16 bits
USHORT MTFA; // offset: 2160, size: 16 bits
ULONG HMPRE; // offset: 2176, size: 32 bits
ULONG HMMIN; // offset: 2208, size: 32 bits
UCHAR[16] TNVMCAP; // offset: 2240, size: 128 bits
UCHAR[16] UNVMCAP; // offset: 2368, size: 128 bits
ULONG Reserved0; // offset: 768, size: 10 bits
struct (unnamed struct at shared/nvme.h) RPMBS; // offset: 2496, size: 32 bits
USHORT EDSTT; // offset: 2528, size: 16 bits
UCHAR DSTO; // offset: 2544, size: 8 bits
UCHAR FWUG; // offset: 2552, size: 8 bits
USHORT KAS; // offset: 2560, size: 16 bits
struct (unnamed struct at shared/nvme.h) HCTMA; // offset: 2576, size: 16 bits
USHORT MNTMT; // offset: 2592, size: 16 bits
USHORT MXTMT; // offset: 2608, size: 16 bits
struct (unnamed struct at shared/nvme.h) SANICAP; // offset: 2624, size: 32 bits
UCHAR[180] Reserved1; // offset: 2656, size: 1440 bits
struct (unnamed struct at shared/nvme.h) SQES; // offset: 4096, size: 8 bits
struct (unnamed struct at shared/nvme.h) CQES; // offset: 4104, size: 8 bits
UCHAR[2] Reserved2; // offset: 4112, size: 16 bits
ULONG NN; // offset: 4128, size: 32 bits
struct (unnamed struct at shared/nvme.h) ONCS; // offset: 4160, size: 16 bits
struct (unnamed struct at shared/nvme.h) FUSES; // offset: 4176, size: 16 bits
struct (unnamed struct at shared/nvme.h) FNA; // offset: 4192, size: 8 bits
struct (unnamed struct at shared/nvme.h) VWC; // offset: 4200, size: 8 bits
USHORT AWUN; // offset: 4208, size: 16 bits
USHORT AWUPF; // offset: 4224, size: 16 bits
struct (unnamed struct at shared/nvme.h) NVSCC; // offset: 4240, size: 8 bits
UCHAR Reserved3; // offset: 4248, size: 8 bits
USHORT ACWU; // offset: 4256, size: 16 bits
UCHAR[2] Reserved4; // offset: 4272, size: 16 bits
ULONG Reserved0; // offset: 768, size: 15 bits
ULONG Reserved1; // offset: 2656, size: 13 bits
struct (unnamed struct at shared/nvme.h) SGLS; // offset: 4288, size: 32 bits
UCHAR[164] Reserved5; // offset: 4320, size: 1312 bits
UCHAR[1344] Reserved6; // offset: 5632, size: 10752 bits
NVME_POWER_STATE_DESC[32] PDS; // offset: 16384, size: 8192 bits
UCHAR[1024] VS; // offset: 24576, size: 8192 bits
};
After
struct NVME_IDENTIFY_CONTROLLER_DATA { // size: 4096 bytes, align: 4
USHORT VID; // offset: 0, size: 16 bits
USHORT SSVID; // offset: 16, size: 16 bits
UCHAR[20] SN; // offset: 32, size: 160 bits
UCHAR[40] MN; // offset: 192, size: 320 bits
UCHAR[8] FR; // offset: 512, size: 64 bits
UCHAR RAB; // offset: 576, size: 8 bits
UCHAR[3] IEEE; // offset: 584, size: 24 bits
struct (unnamed struct at shared/nvme.h) CMIC; // offset: 608, size: 8 bits
UCHAR MDTS; // offset: 616, size: 8 bits
USHORT CNTLID; // offset: 624, size: 16 bits
ULONG VER; // offset: 640, size: 32 bits
ULONG RTD3R; // offset: 672, size: 32 bits
ULONG RTD3E; // offset: 704, size: 32 bits
ULONG Reserved0; // offset: 800, size: 8 bits
ULONG Reserved1; // offset: 2672, size: 22 bits
struct (unnamed struct at shared/nvme.h) OAES; // offset: 736, size: 32 bits
ULONG Reserved0; // offset: 800, size: 27 bits
struct (unnamed struct at shared/nvme.h) CTRATT; // offset: 768, size: 32 bits
UCHAR[140] Reserved0; // offset: 800, size: 1120 bits
UCHAR[16] ReservedForManagement; // offset: 1920, size: 128 bits
struct (unnamed struct at shared/nvme.h) OACS; // offset: 2048, size: 16 bits
UCHAR ACL; // offset: 2064, size: 8 bits
UCHAR AERL; // offset: 2072, size: 8 bits
struct (unnamed struct at shared/nvme.h) FRMW; // offset: 2080, size: 8 bits
struct (unnamed struct at shared/nvme.h) LPA; // offset: 2088, size: 8 bits
UCHAR ELPE; // offset: 2096, size: 8 bits
UCHAR NPSS; // offset: 2104, size: 8 bits
struct (unnamed struct at shared/nvme.h) AVSCC; // offset: 2112, size: 8 bits
struct (unnamed struct at shared/nvme.h) APSTA; // offset: 2120, size: 8 bits
USHORT WCTEMP; // offset: 2128, size: 16 bits
USHORT CCTEMP; // offset: 2144, size: 16 bits
USHORT MTFA; // offset: 2160, size: 16 bits
ULONG HMPRE; // offset: 2176, size: 32 bits
ULONG HMMIN; // offset: 2208, size: 32 bits
UCHAR[16] TNVMCAP; // offset: 2240, size: 128 bits
UCHAR[16] UNVMCAP; // offset: 2368, size: 128 bits
ULONG Reserved0; // offset: 800, size: 10 bits
struct (unnamed struct at shared/nvme.h) RPMBS; // offset: 2496, size: 32 bits
USHORT EDSTT; // offset: 2528, size: 16 bits
UCHAR DSTO; // offset: 2544, size: 8 bits
UCHAR FWUG; // offset: 2552, size: 8 bits
USHORT KAS; // offset: 2560, size: 16 bits
struct (unnamed struct at shared/nvme.h) HCTMA; // offset: 2576, size: 16 bits
USHORT MNTMT; // offset: 2592, size: 16 bits
USHORT MXTMT; // offset: 2608, size: 16 bits
struct (unnamed struct at shared/nvme.h) SANICAP; // offset: 2624, size: 32 bits
USHORT NSETIDMAX; // offset: 2656, size: 16 bits
UCHAR[178] Reserved1; // offset: 2672, size: 1424 bits
struct (unnamed struct at shared/nvme.h) SQES; // offset: 4096, size: 8 bits
struct (unnamed struct at shared/nvme.h) CQES; // offset: 4104, size: 8 bits
UCHAR[2] Reserved2; // offset: 4112, size: 16 bits
ULONG NN; // offset: 4128, size: 32 bits
struct (unnamed struct at shared/nvme.h) ONCS; // offset: 4160, size: 16 bits
struct (unnamed struct at shared/nvme.h) FUSES; // offset: 4176, size: 16 bits
struct (unnamed struct at shared/nvme.h) FNA; // offset: 4192, size: 8 bits
struct (unnamed struct at shared/nvme.h) VWC; // offset: 4200, size: 8 bits
USHORT AWUN; // offset: 4208, size: 16 bits
USHORT AWUPF; // offset: 4224, size: 16 bits
struct (unnamed struct at shared/nvme.h) NVSCC; // offset: 4240, size: 8 bits
UCHAR Reserved3; // offset: 4248, size: 8 bits
USHORT ACWU; // offset: 4256, size: 16 bits
UCHAR[2] Reserved4; // offset: 4272, size: 16 bits
ULONG Reserved0; // offset: 800, size: 15 bits
ULONG Reserved1; // offset: 2672, size: 13 bits
struct (unnamed struct at shared/nvme.h) SGLS; // offset: 4288, size: 32 bits
UCHAR[164] Reserved5; // offset: 4320, size: 1312 bits
UCHAR[1344] Reserved6; // offset: 5632, size: 10752 bits
NVME_POWER_STATE_DESC[32] PDS; // offset: 16384, size: 8192 bits
UCHAR[1024] VS; // offset: 24576, size: 8192 bits
};
Changes
-
Added field
struct (unnamed struct at shared/nvme.h) CTRATTat offset 768 bits (32 bits). -
Added field
USHORT NSETIDMAXat offset 2656 bits (16 bits). -
Moved
Reserved0from offset 768 to 800 bits. -
Moved
Reserved1from offset 2656 to 2672 bits.
NVME_IDENTIFY_NAMESPACE_DATA
Before
struct NVME_IDENTIFY_NAMESPACE_DATA { // size: 4096 bytes, align: 8
ULONGLONG NSZE; // offset: 0, size: 64 bits
ULONGLONG NCAP; // offset: 64, size: 64 bits
ULONGLONG NUSE; // offset: 128, size: 64 bits
struct (unnamed struct at shared/nvme.h) NSFEAT; // offset: 192, size: 8 bits
UCHAR NLBAF; // offset: 200, size: 8 bits
struct (unnamed struct at shared/nvme.h) FLBAS; // offset: 208, size: 8 bits
struct (unnamed struct at shared/nvme.h) MC; // offset: 216, size: 8 bits
struct (unnamed struct at shared/nvme.h) DPC; // offset: 224, size: 8 bits
struct (unnamed struct at shared/nvme.h) DPS; // offset: 232, size: 8 bits
struct (unnamed struct at shared/nvme.h) NMIC; // offset: 240, size: 8 bits
struct (unnamed struct at shared/nvme.h) RESCAP; // offset: 248, size: 8 bits
struct (unnamed struct at shared/nvme.h) FPI; // offset: 256, size: 8 bits
UCHAR Reserved0; // offset: 264, size: 8 bits
USHORT NAWUN; // offset: 272, size: 16 bits
USHORT NAWUPF; // offset: 288, size: 16 bits
USHORT NACWU; // offset: 304, size: 16 bits
USHORT NABSN; // offset: 320, size: 16 bits
USHORT NABO; // offset: 336, size: 16 bits
USHORT NABSPF; // offset: 352, size: 16 bits
USHORT NOIOB; // offset: 368, size: 16 bits
UCHAR[16] NVMCAP; // offset: 384, size: 128 bits
UCHAR[40] Reserved2; // offset: 512, size: 320 bits
UCHAR[16] NGUID; // offset: 832, size: 128 bits
UCHAR[8] EUI64; // offset: 960, size: 64 bits
NVME_LBA_FORMAT[16] LBAF; // offset: 1024, size: 512 bits
UCHAR[192] Reserved3; // offset: 1536, size: 1536 bits
UCHAR[3712] VS; // offset: 3072, size: 29696 bits
};
After
struct NVME_IDENTIFY_NAMESPACE_DATA { // size: 4096 bytes, align: 8
ULONGLONG NSZE; // offset: 0, size: 64 bits
ULONGLONG NCAP; // offset: 64, size: 64 bits
ULONGLONG NUSE; // offset: 128, size: 64 bits
struct (unnamed struct at shared/nvme.h) NSFEAT; // offset: 192, size: 8 bits
UCHAR NLBAF; // offset: 200, size: 8 bits
struct (unnamed struct at shared/nvme.h) FLBAS; // offset: 208, size: 8 bits
struct (unnamed struct at shared/nvme.h) MC; // offset: 216, size: 8 bits
struct (unnamed struct at shared/nvme.h) DPC; // offset: 224, size: 8 bits
struct (unnamed struct at shared/nvme.h) DPS; // offset: 232, size: 8 bits
struct (unnamed struct at shared/nvme.h) NMIC; // offset: 240, size: 8 bits
struct (unnamed struct at shared/nvme.h) RESCAP; // offset: 248, size: 8 bits
struct (unnamed struct at shared/nvme.h) FPI; // offset: 256, size: 8 bits
UCHAR Reserved0; // offset: 264, size: 8 bits
USHORT NAWUN; // offset: 272, size: 16 bits
USHORT NAWUPF; // offset: 288, size: 16 bits
USHORT NACWU; // offset: 304, size: 16 bits
USHORT NABSN; // offset: 320, size: 16 bits
USHORT NABO; // offset: 336, size: 16 bits
USHORT NABSPF; // offset: 352, size: 16 bits
USHORT NOIOB; // offset: 368, size: 16 bits
UCHAR[16] NVMCAP; // offset: 384, size: 128 bits
UCHAR[36] Reserved2; // offset: 512, size: 288 bits
USHORT NVMSETID; // offset: 800, size: 16 bits
USHORT ENDGID; // offset: 816, size: 16 bits
UCHAR[16] NGUID; // offset: 832, size: 128 bits
UCHAR[8] EUI64; // offset: 960, size: 64 bits
NVME_LBA_FORMAT[16] LBAF; // offset: 1024, size: 512 bits
UCHAR[192] Reserved3; // offset: 1536, size: 1536 bits
UCHAR[3712] VS; // offset: 3072, size: 29696 bits
};
Changes
-
Added field
USHORT ENDGIDat offset 816 bits (16 bits). -
Added field
USHORT NVMSETIDat offset 800 bits (16 bits). -
Changed
Reserved2type fromUCHAR[40]toUCHAR[36]. -
Changed
Reserved2size from 320 to 288 bits.
_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION
Before
struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { // size: 4 bytes, align: 4
DWORD ElementCount; // offset: 0, size: 32 bits
COMPATIBILITY_CONTEXT_ELEMENT[] Elements; // offset: 32, size: 0 bits
};
After
struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { // size: 8 bytes, align: 8
DWORD ElementCount; // offset: 0, size: 32 bits
COMPATIBILITY_CONTEXT_ELEMENT[] Elements; // offset: 64, size: 0 bits
};
Changes
- Size changed from 4 to 8 bytes.
- Alignment changed from 4 to 8 bytes.
-
Moved
Elementsfrom offset 32 to 64 bits.
_ATTACH_VIRTUAL_DISK_PARAMETERS
Before
struct _ATTACH_VIRTUAL_DISK_PARAMETERS { // size: 8 bytes, align: 4
ATTACH_VIRTUAL_DISK_VERSION Version; // offset: 0, size: 32 bits
struct (unnamed struct at um/virtdisk.h) Version1; // offset: 32, size: 32 bits
};
After
struct _ATTACH_VIRTUAL_DISK_PARAMETERS { // size: 24 bytes, align: 8
ATTACH_VIRTUAL_DISK_VERSION Version; // offset: 0, size: 32 bits
struct (unnamed struct at um/virtdisk.h) Version1; // offset: 64, size: 32 bits
struct (unnamed struct at um/virtdisk.h) Version2; // offset: 64, size: 128 bits
};
Changes
- Size changed from 8 to 24 bytes.
- Alignment changed from 4 to 8 bytes.
-
Moved
Version1from offset 32 to 64 bits. -
Added field
struct (unnamed struct at um/virtdisk.h) Version2at offset 64 bits (128 bits).
_COMPATIBILITY_CONTEXT_ELEMENT
Before
struct _COMPATIBILITY_CONTEXT_ELEMENT { // size: 20 bytes, align: 4
GUID Id; // offset: 0, size: 128 bits
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type; // offset: 128, size: 32 bits
};
After
struct _COMPATIBILITY_CONTEXT_ELEMENT { // size: 32 bytes, align: 8
GUID Id; // offset: 0, size: 128 bits
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type; // offset: 128, size: 32 bits
ULONGLONG MaxVersionTested; // offset: 192, size: 64 bits
};
Changes
- Size changed from 20 to 32 bytes.
- Alignment changed from 4 to 8 bytes.
-
Added field
ULONGLONG MaxVersionTestedat offset 192 bits (64 bits).
_MCI_STATUS
Before
union _MCI_STATUS { // size: 8 bytes, align: 1
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAME; // offset: 0, size: 64 bits
ULONG64 QuadPart; // offset: 0, size: 64 bits
};
After
union _MCI_STATUS { // size: 8 bytes, align: 1
MCI_STATUS_BITS_COMMON CommonBits; // offset: 0, size: 64 bits
MCI_STATUS_AMD_BITS AmdBits; // offset: 0, size: 64 bits
MCI_STATUS_INTEL_BITS IntelBits; // offset: 0, size: 64 bits
ULONG64 QuadPart; // offset: 0, size: 64 bits
};
Changes
-
Added field
MCI_STATUS_AMD_BITS AmdBitsat offset 0 bits (64 bits). -
Added field
MCI_STATUS_BITS_COMMON CommonBitsat offset 0 bits (64 bits). -
Removed field
struct (unnamed struct at um/cper.h) DUMMYSTRUCTNAMEfrom offset 0 bits (64 bits). -
Added field
MCI_STATUS_INTEL_BITS IntelBitsat offset 0 bits (64 bits).
_PRINTPROVIDOR
Before
struct _PRINTPROVIDOR { // size: 792 bytes, align: 8
BOOL (*)(int, int, int) fpOpenPrinter; // offset: 0, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, int, DWORD) fpSetJob; // offset: 64, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, int (*)()) fpGetJob; // offset: 128, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, DWORD, int (*)()) fpEnumJobs; // offset: 192, size: 64 bits
HANDLE (*)(LPWSTR, DWORD, int) fpAddPrinter; // offset: 256, size: 64 bits
BOOL (*)(HANDLE) fpDeletePrinter; // offset: 320, size: 64 bits
BOOL (*)(HANDLE, DWORD, int, DWORD) fpSetPrinter; // offset: 384, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpGetPrinter; // offset: 448, size: 64 bits
BOOL (*)(DWORD, LPWSTR, DWORD, int (*)()) fpEnumPrinters; // offset: 512, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int) fpAddPrinterDriver; // offset: 576, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrinterDrivers; // offset: 640, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetPrinterDriver; // offset: 704, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpGetPrinterDriverDirectory; // offset: 768, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeletePrinterDriver; // offset: 832, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR, LPWSTR) fpAddPrintProcessor; // offset: 896, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrintProcessors; // offset: 960, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpGetPrintProcessorDirectory; // offset: 1024, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeletePrintProcessor; // offset: 1088, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrintProcessorDatatypes; // offset: 1152, size: 64 bits
DWORD (*)(HANDLE, DWORD, int) fpStartDocPrinter; // offset: 1216, size: 64 bits
BOOL (*)(HANDLE) fpStartPagePrinter; // offset: 1280, size: 64 bits
BOOL (*)(HANDLE, LPVOID, DWORD, LPDWORD) fpWritePrinter; // offset: 1344, size: 64 bits
BOOL (*)(HANDLE) fpEndPagePrinter; // offset: 1408, size: 64 bits
BOOL (*)(HANDLE) fpAbortPrinter; // offset: 1472, size: 64 bits
BOOL (*)(HANDLE, int (*)()) fpReadPrinter; // offset: 1536, size: 64 bits
BOOL (*)(HANDLE) fpEndDocPrinter; // offset: 1600, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpAddJob; // offset: 1664, size: 64 bits
BOOL (*)(HANDLE, DWORD) fpScheduleJob; // offset: 1728, size: 64 bits
DWORD (*)(HANDLE, LPWSTR, LPDWORD, int (*)()) fpGetPrinterData; // offset: 1792, size: 64 bits
DWORD (*)(HANDLE, LPWSTR, DWORD, int, DWORD) fpSetPrinterData; // offset: 1856, size: 64 bits
DWORD (*)(HANDLE, DWORD) fpWaitForPrinterChange; // offset: 1920, size: 64 bits
BOOL (*)(HANDLE) fpClosePrinter; // offset: 1984, size: 64 bits
BOOL (*)(HANDLE, DWORD, int) fpAddForm; // offset: 2048, size: 64 bits
BOOL (*)(HANDLE, LPWSTR) fpDeleteForm; // offset: 2112, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetForm; // offset: 2176, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int) fpSetForm; // offset: 2240, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpEnumForms; // offset: 2304, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int (*)()) fpEnumMonitors; // offset: 2368, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int (*)()) fpEnumPorts; // offset: 2432, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpAddPort; // offset: 2496, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpConfigurePort; // offset: 2560, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpDeletePort; // offset: 2624, size: 64 bits
HANDLE (*)(HANDLE, int) fpCreatePrinterIC; // offset: 2688, size: 64 bits
BOOL (*)(HANDLE, int, DWORD, int, DWORD, DWORD) fpPlayGdiScriptOnPrinterIC; // offset: 2752, size: 64 bits
BOOL (*)(HANDLE) fpDeletePrinterIC; // offset: 2816, size: 64 bits
BOOL (*)(LPWSTR) fpAddPrinterConnection; // offset: 2880, size: 64 bits
BOOL (*)(LPWSTR) fpDeletePrinterConnection; // offset: 2944, size: 64 bits
DWORD (*)(HANDLE, DWORD, int, LPWSTR, LPWSTR, DWORD) fpPrinterMessageBox; // offset: 3008, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int) fpAddMonitor; // offset: 3072, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeleteMonitor; // offset: 3136, size: 64 bits
BOOL (*)(HANDLE, int) fpResetPrinter; // offset: 3200, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetPrinterDriverEx; // offset: 3264, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, HANDLE, int, PVOID, PVOID) fpFindFirstPrinterChangeNotification; // offset: 3328, size: 64 bits
BOOL (*)(HANDLE) fpFindClosePrinterChangeNotification; // offset: 3392, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int, LPWSTR) fpAddPortEx; // offset: 3456, size: 64 bits
BOOL (*)(LPVOID) fpShutDown; // offset: 3520, size: 64 bits
BOOL (*)(HANDLE, DWORD, PVOID, PVOID) fpRefreshPrinterChangeNotification; // offset: 3584, size: 64 bits
BOOL (*)(LPWSTR, int, int, int, DWORD) fpOpenPrinterEx; // offset: 3648, size: 64 bits
HANDLE (*)(LPWSTR, DWORD, int, int, DWORD) fpAddPrinterEx; // offset: 3712, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int) fpSetPort; // offset: 3776, size: 64 bits
DWORD (*)(HANDLE, DWORD, int (*)()) fpEnumPrinterData; // offset: 3840, size: 64 bits
DWORD (*)(HANDLE, LPWSTR) fpDeletePrinterData; // offset: 3904, size: 64 bits
DWORD (*)(int, int, int, int, int) fpClusterSplOpen; // offset: 3968, size: 64 bits
DWORD (*)(HANDLE) fpClusterSplClose; // offset: 4032, size: 64 bits
DWORD (*)(HANDLE) fpClusterSplIsAlive; // offset: 4096, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR, DWORD, int, DWORD) fpSetPrinterDataEx; // offset: 4160, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR, LPDWORD, int (*)()) fpGetPrinterDataEx; // offset: 4224, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int (*)()) fpEnumPrinterDataEx; // offset: 4288, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int (*)()) fpEnumPrinterKey; // offset: 4352, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR) fpDeletePrinterDataEx; // offset: 4416, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR) fpDeletePrinterKey; // offset: 4480, size: 64 bits
BOOL (*)(HANDLE, int, int, DWORD, BOOL) fpSeekPrinter; // offset: 4544, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD) fpDeletePrinterDriverEx; // offset: 4608, size: 64 bits
BOOL (*)(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR) fpAddPerMachineConnection; // offset: 4672, size: 64 bits
BOOL (*)(LPCWSTR, LPCWSTR) fpDeletePerMachineConnection; // offset: 4736, size: 64 bits
BOOL (*)(LPCWSTR, int (*)()) fpEnumPerMachineConnections; // offset: 4800, size: 64 bits
BOOL (*)(HANDLE, LPCWSTR, int, DWORD, int (*)()) fpXcvData; // offset: 4864, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int, DWORD) fpAddPrinterDriverEx; // offset: 4928, size: 64 bits
BOOL (*)(HANDLE, int *, DWORD) fpSplReadPrinter; // offset: 4992, size: 64 bits
BOOL (*)(LPWSTR) fpDriverUnloadComplete; // offset: 5056, size: 64 bits
BOOL (*)(HANDLE, LPWSTR *, int, HANDLE, HANDLE) fpGetSpoolFileInfo; // offset: 5120, size: 64 bits
BOOL (*)(HANDLE, DWORD) fpCommitSpoolData; // offset: 5184, size: 64 bits
BOOL (*)(HANDLE) fpCloseSpoolFileHandle; // offset: 5248, size: 64 bits
BOOL (*)(HANDLE, int, DWORD, LPDWORD, DWORD) fpFlushPrinter; // offset: 5312, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int, int *) fpSendRecvBidiData; // offset: 5376, size: 64 bits
BOOL (*)(LPCWSTR, DWORD, PVOID) fpAddPrinterConnection2; // offset: 5440, size: 64 bits
HRESULT (*)(PCWSTR, const int *, void **) fpGetPrintClassObject; // offset: 5504, size: 64 bits
HRESULT (*)(HANDLE, ULONG, int, int) fpReportJobProcessingProgress; // offset: 5568, size: 64 bits
void (*)(DWORD, void *) fpEnumAndLogProvidorObjects; // offset: 5632, size: 64 bits
HRESULT (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpInternalGetPrinterDriver; // offset: 5696, size: 64 bits
HRESULT (*)(LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPDWORD, LPWSTR, DWORD, LPDWORD, LPDWORD) fpFindCompatibleDriver; // offset: 5760, size: 64 bits
DWORD (*)(HANDLE, DWORD, PCWSTR, int *) fpGetJobNamedPropertyValue; // offset: 5824, size: 64 bits
DWORD (*)(HANDLE, DWORD, const int *) fpSetJobNamedProperty; // offset: 5888, size: 64 bits
DWORD (*)(HANDLE, DWORD, PCWSTR) fpDeleteJobNamedProperty; // offset: 5952, size: 64 bits
DWORD (*)(HANDLE, DWORD, DWORD *, int **) fpEnumJobNamedProperties; // offset: 6016, size: 64 bits
DWORD (*)(DWORD, int *) fpPowerEvent; // offset: 6080, size: 64 bits
DWORD (*)(HANDLE, int *) fpGetUserPropertyBag; // offset: 6144, size: 64 bits
BOOL (*)() fpCanShutdown; // offset: 6208, size: 64 bits
DWORD (*)(HANDLE, PBranchOfficeJobDataContainer) fpLogJobInfoForBranchOffice; // offset: 6272, size: 64 bits
};
After
struct _PRINTPROVIDOR { // size: 800 bytes, align: 8
BOOL (*)(int, int, int) fpOpenPrinter; // offset: 0, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, int, DWORD) fpSetJob; // offset: 64, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, int (*)()) fpGetJob; // offset: 128, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, DWORD, int (*)()) fpEnumJobs; // offset: 192, size: 64 bits
HANDLE (*)(LPWSTR, DWORD, int) fpAddPrinter; // offset: 256, size: 64 bits
BOOL (*)(HANDLE) fpDeletePrinter; // offset: 320, size: 64 bits
BOOL (*)(HANDLE, DWORD, int, DWORD) fpSetPrinter; // offset: 384, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpGetPrinter; // offset: 448, size: 64 bits
BOOL (*)(DWORD, LPWSTR, DWORD, int (*)()) fpEnumPrinters; // offset: 512, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int) fpAddPrinterDriver; // offset: 576, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrinterDrivers; // offset: 640, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetPrinterDriver; // offset: 704, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpGetPrinterDriverDirectory; // offset: 768, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeletePrinterDriver; // offset: 832, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR, LPWSTR) fpAddPrintProcessor; // offset: 896, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrintProcessors; // offset: 960, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpGetPrintProcessorDirectory; // offset: 1024, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeletePrintProcessor; // offset: 1088, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int (*)()) fpEnumPrintProcessorDatatypes; // offset: 1152, size: 64 bits
DWORD (*)(HANDLE, DWORD, int) fpStartDocPrinter; // offset: 1216, size: 64 bits
BOOL (*)(HANDLE) fpStartPagePrinter; // offset: 1280, size: 64 bits
BOOL (*)(HANDLE, LPVOID, DWORD, LPDWORD) fpWritePrinter; // offset: 1344, size: 64 bits
BOOL (*)(HANDLE) fpEndPagePrinter; // offset: 1408, size: 64 bits
BOOL (*)(HANDLE) fpAbortPrinter; // offset: 1472, size: 64 bits
BOOL (*)(HANDLE, int (*)()) fpReadPrinter; // offset: 1536, size: 64 bits
BOOL (*)(HANDLE) fpEndDocPrinter; // offset: 1600, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpAddJob; // offset: 1664, size: 64 bits
BOOL (*)(HANDLE, DWORD) fpScheduleJob; // offset: 1728, size: 64 bits
DWORD (*)(HANDLE, LPWSTR, LPDWORD, int (*)()) fpGetPrinterData; // offset: 1792, size: 64 bits
DWORD (*)(HANDLE, LPWSTR, DWORD, int, DWORD) fpSetPrinterData; // offset: 1856, size: 64 bits
DWORD (*)(HANDLE, DWORD) fpWaitForPrinterChange; // offset: 1920, size: 64 bits
BOOL (*)(HANDLE) fpClosePrinter; // offset: 1984, size: 64 bits
BOOL (*)(HANDLE, DWORD, int) fpAddForm; // offset: 2048, size: 64 bits
BOOL (*)(HANDLE, LPWSTR) fpDeleteForm; // offset: 2112, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetForm; // offset: 2176, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int) fpSetForm; // offset: 2240, size: 64 bits
BOOL (*)(HANDLE, DWORD, int (*)()) fpEnumForms; // offset: 2304, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int (*)()) fpEnumMonitors; // offset: 2368, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int (*)()) fpEnumPorts; // offset: 2432, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpAddPort; // offset: 2496, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpConfigurePort; // offset: 2560, size: 64 bits
BOOL (*)(LPWSTR, int, LPWSTR) fpDeletePort; // offset: 2624, size: 64 bits
HANDLE (*)(HANDLE, int) fpCreatePrinterIC; // offset: 2688, size: 64 bits
BOOL (*)(HANDLE, int, DWORD, int, DWORD, DWORD) fpPlayGdiScriptOnPrinterIC; // offset: 2752, size: 64 bits
BOOL (*)(HANDLE) fpDeletePrinterIC; // offset: 2816, size: 64 bits
BOOL (*)(LPWSTR) fpAddPrinterConnection; // offset: 2880, size: 64 bits
BOOL (*)(LPWSTR) fpDeletePrinterConnection; // offset: 2944, size: 64 bits
DWORD (*)(HANDLE, DWORD, int, LPWSTR, LPWSTR, DWORD) fpPrinterMessageBox; // offset: 3008, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int) fpAddMonitor; // offset: 3072, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR) fpDeleteMonitor; // offset: 3136, size: 64 bits
BOOL (*)(HANDLE, int) fpResetPrinter; // offset: 3200, size: 64 bits
BOOL (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpGetPrinterDriverEx; // offset: 3264, size: 64 bits
BOOL (*)(HANDLE, DWORD, DWORD, HANDLE, int, PVOID, PVOID) fpFindFirstPrinterChangeNotification; // offset: 3328, size: 64 bits
BOOL (*)(HANDLE) fpFindClosePrinterChangeNotification; // offset: 3392, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int, LPWSTR) fpAddPortEx; // offset: 3456, size: 64 bits
BOOL (*)(LPVOID) fpShutDown; // offset: 3520, size: 64 bits
BOOL (*)(HANDLE, DWORD, PVOID, PVOID) fpRefreshPrinterChangeNotification; // offset: 3584, size: 64 bits
BOOL (*)(LPWSTR, int, int, int, DWORD) fpOpenPrinterEx; // offset: 3648, size: 64 bits
HANDLE (*)(LPWSTR, DWORD, int, int, DWORD) fpAddPrinterEx; // offset: 3712, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, DWORD, int) fpSetPort; // offset: 3776, size: 64 bits
DWORD (*)(HANDLE, DWORD, int (*)()) fpEnumPrinterData; // offset: 3840, size: 64 bits
DWORD (*)(HANDLE, LPWSTR) fpDeletePrinterData; // offset: 3904, size: 64 bits
DWORD (*)(int, int, int, int, int) fpClusterSplOpen; // offset: 3968, size: 64 bits
DWORD (*)(HANDLE) fpClusterSplClose; // offset: 4032, size: 64 bits
DWORD (*)(HANDLE) fpClusterSplIsAlive; // offset: 4096, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR, DWORD, int, DWORD) fpSetPrinterDataEx; // offset: 4160, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR, LPDWORD, int (*)()) fpGetPrinterDataEx; // offset: 4224, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int (*)()) fpEnumPrinterDataEx; // offset: 4288, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int (*)()) fpEnumPrinterKey; // offset: 4352, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, LPCWSTR) fpDeletePrinterDataEx; // offset: 4416, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR) fpDeletePrinterKey; // offset: 4480, size: 64 bits
BOOL (*)(HANDLE, int, int, DWORD, BOOL) fpSeekPrinter; // offset: 4544, size: 64 bits
BOOL (*)(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD) fpDeletePrinterDriverEx; // offset: 4608, size: 64 bits
BOOL (*)(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR) fpAddPerMachineConnection; // offset: 4672, size: 64 bits
BOOL (*)(LPCWSTR, LPCWSTR) fpDeletePerMachineConnection; // offset: 4736, size: 64 bits
BOOL (*)(LPCWSTR, int (*)()) fpEnumPerMachineConnections; // offset: 4800, size: 64 bits
BOOL (*)(HANDLE, LPCWSTR, int, DWORD, int (*)()) fpXcvData; // offset: 4864, size: 64 bits
BOOL (*)(LPWSTR, DWORD, int, DWORD) fpAddPrinterDriverEx; // offset: 4928, size: 64 bits
BOOL (*)(HANDLE, int *, DWORD) fpSplReadPrinter; // offset: 4992, size: 64 bits
BOOL (*)(LPWSTR) fpDriverUnloadComplete; // offset: 5056, size: 64 bits
BOOL (*)(HANDLE, LPWSTR *, int, HANDLE, HANDLE) fpGetSpoolFileInfo; // offset: 5120, size: 64 bits
BOOL (*)(HANDLE, DWORD) fpCommitSpoolData; // offset: 5184, size: 64 bits
BOOL (*)(HANDLE) fpCloseSpoolFileHandle; // offset: 5248, size: 64 bits
BOOL (*)(HANDLE, int, DWORD, LPDWORD, DWORD) fpFlushPrinter; // offset: 5312, size: 64 bits
DWORD (*)(HANDLE, LPCWSTR, int, int *) fpSendRecvBidiData; // offset: 5376, size: 64 bits
BOOL (*)(LPCWSTR, DWORD, PVOID) fpAddPrinterConnection2; // offset: 5440, size: 64 bits
HRESULT (*)(PCWSTR, const int *, void **) fpGetPrintClassObject; // offset: 5504, size: 64 bits
HRESULT (*)(HANDLE, ULONG, int, int) fpReportJobProcessingProgress; // offset: 5568, size: 64 bits
void (*)(DWORD, void *) fpEnumAndLogProvidorObjects; // offset: 5632, size: 64 bits
HRESULT (*)(HANDLE, LPWSTR, DWORD, int (*)()) fpInternalGetPrinterDriver; // offset: 5696, size: 64 bits
HRESULT (*)(LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPDWORD, LPWSTR, DWORD, LPDWORD, LPDWORD) fpFindCompatibleDriver; // offset: 5760, size: 64 bits
DWORD (*)(HANDLE, DWORD, PCWSTR, int *) fpGetJobNamedPropertyValue; // offset: 5824, size: 64 bits
DWORD (*)(HANDLE, DWORD, const int *) fpSetJobNamedProperty; // offset: 5888, size: 64 bits
DWORD (*)(HANDLE, DWORD, PCWSTR) fpDeleteJobNamedProperty; // offset: 5952, size: 64 bits
DWORD (*)(HANDLE, DWORD, DWORD *, int **) fpEnumJobNamedProperties; // offset: 6016, size: 64 bits
DWORD (*)(DWORD, int *) fpPowerEvent; // offset: 6080, size: 64 bits
DWORD (*)(HANDLE, int *) fpGetUserPropertyBag; // offset: 6144, size: 64 bits
BOOL (*)() fpCanShutdown; // offset: 6208, size: 64 bits
DWORD (*)(HANDLE, PBranchOfficeJobDataContainer) fpLogJobInfoForBranchOffice; // offset: 6272, size: 64 bits
DWORD (*)(HANDLE) fpRegeneratePrintDeviceCapabilities; // offset: 6336, size: 64 bits
};
Changes
- Size changed from 792 to 800 bytes.
-
Added field
DWORD (*)(HANDLE) fpRegeneratePrintDeviceCapabilitiesat offset 6336 bits (64 bits).
_SECPKG_FUNCTION_TABLE
Before
struct _SECPKG_FUNCTION_TABLE { // size: 304 bytes, align: 8
PLSA_AP_INITIALIZE_PACKAGE InitializePackage; // offset: 0, size: 64 bits
PLSA_AP_LOGON_USER LogonUser; // offset: 64, size: 64 bits
PLSA_AP_CALL_PACKAGE CallPackage; // offset: 128, size: 64 bits
PLSA_AP_LOGON_TERMINATED LogonTerminated; // offset: 192, size: 64 bits
PLSA_AP_CALL_PACKAGE_UNTRUSTED CallPackageUntrusted; // offset: 256, size: 64 bits
PLSA_AP_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough; // offset: 320, size: 64 bits
PLSA_AP_LOGON_USER_EX LogonUserEx; // offset: 384, size: 64 bits
PLSA_AP_LOGON_USER_EX2 LogonUserEx2; // offset: 448, size: 64 bits
SpInitializeFn * Initialize; // offset: 512, size: 64 bits
SpShutdownFn * Shutdown; // offset: 576, size: 64 bits
SpGetInfoFn * GetInfo; // offset: 640, size: 64 bits
SpAcceptCredentialsFn * AcceptCredentials; // offset: 704, size: 64 bits
SpAcquireCredentialsHandleFn * AcquireCredentialsHandle; // offset: 768, size: 64 bits
SpQueryCredentialsAttributesFn * QueryCredentialsAttributes; // offset: 832, size: 64 bits
SpFreeCredentialsHandleFn * FreeCredentialsHandle; // offset: 896, size: 64 bits
SpSaveCredentialsFn * SaveCredentials; // offset: 960, size: 64 bits
SpGetCredentialsFn * GetCredentials; // offset: 1024, size: 64 bits
SpDeleteCredentialsFn * DeleteCredentials; // offset: 1088, size: 64 bits
SpInitLsaModeContextFn * InitLsaModeContext; // offset: 1152, size: 64 bits
SpAcceptLsaModeContextFn * AcceptLsaModeContext; // offset: 1216, size: 64 bits
SpDeleteContextFn * DeleteContext; // offset: 1280, size: 64 bits
SpApplyControlTokenFn * ApplyControlToken; // offset: 1344, size: 64 bits
SpGetUserInfoFn * GetUserInfo; // offset: 1408, size: 64 bits
SpGetExtendedInformationFn * GetExtendedInformation; // offset: 1472, size: 64 bits
SpQueryContextAttributesFn * QueryContextAttributes; // offset: 1536, size: 64 bits
SpAddCredentialsFn * AddCredentials; // offset: 1600, size: 64 bits
SpSetExtendedInformationFn * SetExtendedInformation; // offset: 1664, size: 64 bits
SpSetContextAttributesFn * SetContextAttributes; // offset: 1728, size: 64 bits
SpSetCredentialsAttributesFn * SetCredentialsAttributes; // offset: 1792, size: 64 bits
SpChangeAccountPasswordFn * ChangeAccountPassword; // offset: 1856, size: 64 bits
SpQueryMetaDataFn * QueryMetaData; // offset: 1920, size: 64 bits
SpExchangeMetaDataFn * ExchangeMetaData; // offset: 1984, size: 64 bits
SpGetCredUIContextFn * GetCredUIContext; // offset: 2048, size: 64 bits
SpUpdateCredentialsFn * UpdateCredentials; // offset: 2112, size: 64 bits
SpValidateTargetInfoFn * ValidateTargetInfo; // offset: 2176, size: 64 bits
LSA_AP_POST_LOGON_USER * PostLogonUser; // offset: 2240, size: 64 bits
SpGetRemoteCredGuardLogonBufferFn * GetRemoteCredGuardLogonBuffer; // offset: 2304, size: 64 bits
SpGetRemoteCredGuardSupplementalCredsFn * GetRemoteCredGuardSupplementalCreds; // offset: 2368, size: 64 bits
};
After
struct _SECPKG_FUNCTION_TABLE { // size: 312 bytes, align: 8
PLSA_AP_INITIALIZE_PACKAGE InitializePackage; // offset: 0, size: 64 bits
PLSA_AP_LOGON_USER LogonUser; // offset: 64, size: 64 bits
PLSA_AP_CALL_PACKAGE CallPackage; // offset: 128, size: 64 bits
PLSA_AP_LOGON_TERMINATED LogonTerminated; // offset: 192, size: 64 bits
PLSA_AP_CALL_PACKAGE_UNTRUSTED CallPackageUntrusted; // offset: 256, size: 64 bits
PLSA_AP_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough; // offset: 320, size: 64 bits
PLSA_AP_LOGON_USER_EX LogonUserEx; // offset: 384, size: 64 bits
PLSA_AP_LOGON_USER_EX2 LogonUserEx2; // offset: 448, size: 64 bits
SpInitializeFn * Initialize; // offset: 512, size: 64 bits
SpShutdownFn * Shutdown; // offset: 576, size: 64 bits
SpGetInfoFn * GetInfo; // offset: 640, size: 64 bits
SpAcceptCredentialsFn * AcceptCredentials; // offset: 704, size: 64 bits
SpAcquireCredentialsHandleFn * AcquireCredentialsHandle; // offset: 768, size: 64 bits
SpQueryCredentialsAttributesFn * QueryCredentialsAttributes; // offset: 832, size: 64 bits
SpFreeCredentialsHandleFn * FreeCredentialsHandle; // offset: 896, size: 64 bits
SpSaveCredentialsFn * SaveCredentials; // offset: 960, size: 64 bits
SpGetCredentialsFn * GetCredentials; // offset: 1024, size: 64 bits
SpDeleteCredentialsFn * DeleteCredentials; // offset: 1088, size: 64 bits
SpInitLsaModeContextFn * InitLsaModeContext; // offset: 1152, size: 64 bits
SpAcceptLsaModeContextFn * AcceptLsaModeContext; // offset: 1216, size: 64 bits
SpDeleteContextFn * DeleteContext; // offset: 1280, size: 64 bits
SpApplyControlTokenFn * ApplyControlToken; // offset: 1344, size: 64 bits
SpGetUserInfoFn * GetUserInfo; // offset: 1408, size: 64 bits
SpGetExtendedInformationFn * GetExtendedInformation; // offset: 1472, size: 64 bits
SpQueryContextAttributesFn * QueryContextAttributes; // offset: 1536, size: 64 bits
SpAddCredentialsFn * AddCredentials; // offset: 1600, size: 64 bits
SpSetExtendedInformationFn * SetExtendedInformation; // offset: 1664, size: 64 bits
SpSetContextAttributesFn * SetContextAttributes; // offset: 1728, size: 64 bits
SpSetCredentialsAttributesFn * SetCredentialsAttributes; // offset: 1792, size: 64 bits
SpChangeAccountPasswordFn * ChangeAccountPassword; // offset: 1856, size: 64 bits
SpQueryMetaDataFn * QueryMetaData; // offset: 1920, size: 64 bits
SpExchangeMetaDataFn * ExchangeMetaData; // offset: 1984, size: 64 bits
SpGetCredUIContextFn * GetCredUIContext; // offset: 2048, size: 64 bits
SpUpdateCredentialsFn * UpdateCredentials; // offset: 2112, size: 64 bits
SpValidateTargetInfoFn * ValidateTargetInfo; // offset: 2176, size: 64 bits
LSA_AP_POST_LOGON_USER * PostLogonUser; // offset: 2240, size: 64 bits
SpGetRemoteCredGuardLogonBufferFn * GetRemoteCredGuardLogonBuffer; // offset: 2304, size: 64 bits
SpGetRemoteCredGuardSupplementalCredsFn * GetRemoteCredGuardSupplementalCreds; // offset: 2368, size: 64 bits
SpGetTbalSupplementalCredsFn * GetTbalSupplementalCreds; // offset: 2432, size: 64 bits
};
Changes
- Size changed from 304 to 312 bytes.
-
Added field
SpGetTbalSupplementalCredsFn * GetTbalSupplementalCredsat offset 2432 bits (64 bits).
_STORAGE_PROTOCOL_SPECIFIC_DATA
Before
struct _STORAGE_PROTOCOL_SPECIFIC_DATA { // size: 40 bytes, align: 4
STORAGE_PROTOCOL_TYPE ProtocolType; // offset: 0, size: 32 bits
DWORD DataType; // offset: 32, size: 32 bits
DWORD ProtocolDataRequestValue; // offset: 64, size: 32 bits
DWORD ProtocolDataRequestSubValue; // offset: 96, size: 32 bits
DWORD ProtocolDataOffset; // offset: 128, size: 32 bits
DWORD ProtocolDataLength; // offset: 160, size: 32 bits
DWORD FixedProtocolReturnData; // offset: 192, size: 32 bits
DWORD ProtocolDataRequestSubValue2; // offset: 224, size: 32 bits
DWORD[2] Reserved; // offset: 256, size: 64 bits
};
After
struct _STORAGE_PROTOCOL_SPECIFIC_DATA { // size: 40 bytes, align: 4
STORAGE_PROTOCOL_TYPE ProtocolType; // offset: 0, size: 32 bits
DWORD DataType; // offset: 32, size: 32 bits
DWORD ProtocolDataRequestValue; // offset: 64, size: 32 bits
DWORD ProtocolDataRequestSubValue; // offset: 96, size: 32 bits
DWORD ProtocolDataOffset; // offset: 128, size: 32 bits
DWORD ProtocolDataLength; // offset: 160, size: 32 bits
DWORD FixedProtocolReturnData; // offset: 192, size: 32 bits
DWORD ProtocolDataRequestSubValue2; // offset: 224, size: 32 bits
DWORD ProtocolDataRequestSubValue3; // offset: 256, size: 32 bits
DWORD Reserved; // offset: 288, size: 32 bits
};
Changes
-
Added field
DWORD ProtocolDataRequestSubValue3at offset 256 bits (32 bits). -
Changed
Reservedtype fromDWORD[2]toDWORD. -
Moved
Reservedfrom offset 256 to 288 bits. -
Changed
Reservedsize from 64 to 32 bits.
__MIDL_IBackgroundCopyJob2_0003
Before
struct __MIDL_IBackgroundCopyJob2_0003 { // size: 16 bytes, align: 8
LPWSTR UserName; // offset: 0, size: 64 bits
LPWSTR Password; // offset: 64, size: 64 bits
};
After
struct __MIDL_IBackgroundCopyJob2_0003 { // size: 24 bytes, align: 8
BG_AUTH_TARGET Target; // offset: 0, size: 32 bits
BG_AUTH_SCHEME Scheme; // offset: 32, size: 32 bits
BG_AUTH_CREDENTIALS_UNION Credentials; // offset: 64, size: 128 bits
};
Changes
- Size changed from 16 to 24 bytes.
-
Added field
BG_AUTH_CREDENTIALS_UNION Credentialsat offset 64 bits (128 bits). -
Removed field
LPWSTR Passwordfrom offset 64 bits (64 bits). -
Added field
BG_AUTH_SCHEME Schemeat offset 32 bits (32 bits). -
Added field
BG_AUTH_TARGET Targetat offset 0 bits (32 bits). -
Removed field
LPWSTR UserNamefrom offset 0 bits (64 bits).
Functions Added
72HRESULT CreateAudioReverb(int ** ppApo);
HRESULT DMLCreateDevice(ID3D12Device * d3d12Device, enum DML_CREATE_DEVICE_FLAGS flags, const IID *const riid, void ** device);
int DeviceDsmValidateOutputLength(PDEVICE_DSM_DEFINITION Definition, DWORD OutputLength);
HRESULT DllRegisterServer(void);
HRESULT DllUnregisterServer(void);
DNS_STATUS DnsServiceBrowse(PDNS_SERVICE_BROWSE_REQUEST pRequest, PDNS_SERVICE_CANCEL pCancel);
DNS_STATUS DnsServiceBrowseCancel(PDNS_SERVICE_CANCEL pCancelHandle);
PDNS_SERVICE_INSTANCE DnsServiceConstructInstance(PCWSTR pServiceName, PCWSTR pHostName, PIP4_ADDRESS pIp4, PIP6_ADDRESS pIp6, WORD wPort, WORD wPriority, WORD wWeight, DWORD dwPropertiesCount, PCWSTR * keys, PCWSTR * values);
PDNS_SERVICE_INSTANCE DnsServiceCopyInstance(PDNS_SERVICE_INSTANCE pOrig);
DWORD DnsServiceDeRegister(PDNS_SERVICE_REGISTER_REQUEST pRequest, PDNS_SERVICE_CANCEL pCancel);
void DnsServiceFreeInstance(PDNS_SERVICE_INSTANCE pInstance);
DWORD DnsServiceRegister(PDNS_SERVICE_REGISTER_REQUEST pRequest, PDNS_SERVICE_CANCEL pCancel);
DWORD DnsServiceRegisterCancel(PDNS_SERVICE_CANCEL pCancelHandle);
DNS_STATUS DnsServiceResolve(PDNS_SERVICE_RESOLVE_REQUEST pRequest, PDNS_SERVICE_CANCEL pCancel);
DNS_STATUS DnsServiceResolveCancel(PDNS_SERVICE_CANCEL pCancelHandle);
DNS_STATUS DnsStartMulticastQuery(PMDNS_QUERY_REQUEST pQueryRequest, PMDNS_QUERY_HANDLE pHandle);
DNS_STATUS DnsStopMulticastQuery(PMDNS_QUERY_HANDLE pHandle);
HRESULT ForceArchitecture(int VmSavedStateDumpHandle, int VpId, int Architecture);
HRESULT ForcePagingMode(int VmSavedStateDumpHandle, int VpId, int PagingMode);
LONG GetCurrentPackageInfo2(const int flags, PackagePathType packagePathType, int * bufferLength, BYTE * buffer, int * count);
LONG GetCurrentPackagePath2(PackagePathType packagePathType, int * pathLength, int path);
int GetDpiAwarenessContextForProcess(HANDLE hProcess);
LONG GetPackageInfo2(PACKAGE_INFO_REFERENCE packageInfoReference, const int flags, PackagePathType packagePathType, int * bufferLength, BYTE * buffer, int * count);
LONG GetPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, int * pathLength, int path);
LONG GetStagedPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, int * pathLength, int path);
BOOL GetSystemLeapSecondInformation(PBOOL Enabled, PDWORD Flags);
HRESULT HdvRegisterDoorbellPage(HDV_DEVICE requestor, HDV_PCI_BAR_SELECTOR BarIndex, UINT64 PageIndex, PVOID DoorbellEvent);
HRESULT HdvUnregisterDoorbellPage(HDV_DEVICE requestor, HDV_PCI_BAR_SELECTOR BarIndex, UINT64 PageIndex);
HRESULT IMSVidWebDVD2_put_Bookmark_Proxy(IMSVidWebDVD2 * This, BYTE * pData, DWORD dwDataLength);
void IMSVidWebDVD2_put_Bookmark_Stub(IRpcStubBuffer * This, IRpcChannelBuffer * _pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD * _pdwStubPhase);
RPC_STATUS I_RpcServerSubscribeForDisconnectNotification2(RPC_BINDING_HANDLE Binding, void * hEvent, int * SubscriptionId);
RPC_STATUS I_RpcServerUnsubscribeForDisconnectNotification(RPC_BINDING_HANDLE Binding, int SubscriptionId);
HRESULT InKernelSpace(int VmSavedStateDumpHandle, int VpId, BOOL * InKernelSpace);
BOOL IsActiveSessionCountLimited(void);
BOOLEAN IsHdvRegisterDoorbellPagePresent(void);
BOOLEAN IsHdvUnregisterDoorbellPagePresent(void);
HRESULT IsMdmUxWithoutAadAllowed(BOOL * isEnrollmentAllowed);
HRESULT IsProcessInWDAGContainer(PVOID Reserved, BOOL * isProcessInWDAGContainer);
BOOLEAN IsWHvResumePartitionTimePresent(void);
BOOLEAN IsWHvSuspendPartitionTimePresent(void);
void KdHelp32To64(PKDHELP64 p32, PKDHELP64 p64);
HRESULT PerceptionDeviceCreateFactory(int riid, LPVOID * ppFactory);
ULONG RegisterAppConstrainedChangeNotification(PAPPCONSTRAIN_CHANGE_ROUTINE Routine, PVOID Context, PAPPCONSTRAIN_REGISTRATION * Registration);
HRESULT RegisterDeviceWithManagementUsingAADDeviceCredentials(void);
DWORD RtlFillNonVolatileMemory(PVOID NvToken, __unaligned void * NvDestination, SIZE_T Size, const BYTE Value, DWORD Flags);
void SetDebugVerboseHandler(int DebugHandler);
void SetErrorVerboseHandler(int ErrorHandler);
void SetInfoVerboseHandler(int InfoHandler);
SECURITY_STATUS SslGetExtensions(const BYTE * clientHello, DWORD clientHelloByteSize, SCH_EXTENSION_DATA * genericExtensions, BYTE genericExtensionsCount, DWORD * bytesToRead, SchGetExtensionsOptions flags);
TDHSTATUS TdhLoadManifestFromMemory(int pData, ULONG cbData);
TDHSTATUS TdhUnloadManifestFromMemory(int pData, ULONG cbData);
int TokenBindingGenerateIDForUri(TOKENBINDING_KEY_PARAMETERS_TYPE keyType, PCWSTR targetUri, TOKENBINDING_RESULT_DATA ** resultData);
void UnregisterAppConstrainedChangeNotification(PAPPCONSTRAIN_REGISTRATION Registration);
HRESULT WHvResumePartitionTime(WHV_PARTITION_HANDLE Partition);
HRESULT WHvSuspendPartitionTime(WHV_PARTITION_HANDLE Partition);
HRESULT WebAuthNAuthenticatorGetAssertion(int hWnd, LPCWSTR pwszRpId, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS pWebAuthNGetAssertionOptions, PWEBAUTHN_ASSERTION * ppWebAuthNAssertion);
HRESULT WebAuthNAuthenticatorMakeCredential(int hWnd, PCWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation, PCWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation, PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS pPubKeyCredParams, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS pWebAuthNMakeCredentialOptions, PWEBAUTHN_CREDENTIAL_ATTESTATION * ppWebAuthNCredentialAttestation);
HRESULT WebAuthNCancelCurrentOperation(const GUID * pCancellationId);
void WebAuthNFreeAssertion(PWEBAUTHN_ASSERTION pWebAuthNAssertion);
void WebAuthNFreeCredentialAttestation(PWEBAUTHN_CREDENTIAL_ATTESTATION pWebAuthNCredentialAttestation);
DWORD WebAuthNGetApiVersionNumber(void);
HRESULT WebAuthNGetCancellationId(GUID * pCancellationId);
PCWSTR WebAuthNGetErrorName(HRESULT hr);
HRESULT WebAuthNGetW3CExceptionDOMError(HRESULT hr);
HRESULT WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable(BOOL * pbIsUserVerifyingPlatformAuthenticatorAvailable);
HRESULT XAudio2CreateWithVersionInfo(IXAudio2 ** ppXAudio2, UINT32 Flags, XAUDIO2_PROCESSOR XAudio2Processor, DWORD ntddiVersion);
int __ascii_iswalpha(const int _C);
int __ascii_iswdigit(const int _C);
int __ascii_tolower(const int _C);
int __ascii_toupper(const int _C);
int __ascii_towlower(const int _C);
int __ascii_towupper(const int _C);
Functions Removed
16void CIShutdown(void);
HRESULT CIState(const WCHAR * pwcsCat, const WCHAR * pwcsMachine, CI_STATE * pCiState);
void DIFXAPISetLogCallbackA(DIFXAPILOGCALLBACK_A LogCallback, PVOID CallbackContext);
void DIFXAPISetLogCallbackW(DIFXAPILOGCALLBACK_W LogCallback, PVOID CallbackContext);
DWORD DriverPackageGetPathA(PCSTR DriverPackageInfPath, int pDestInfPath, DWORD * pNumOfChars);
DWORD DriverPackageGetPathW(PCWSTR DriverPackageInfPath, int pDestInfPath, DWORD * pNumOfChars);
DWORD DriverPackageInstallA(PCSTR DriverPackageInfPath, DWORD Flags, PCINSTALLERINFO_A pInstallerInfo, BOOL * pNeedReboot);
DWORD DriverPackageInstallW(PCWSTR DriverPackageInfPath, DWORD Flags, PCINSTALLERINFO_W pInstallerInfo, BOOL * pNeedReboot);
DWORD DriverPackagePreinstallA(PCSTR DriverPackageInfPath, DWORD Flags);
DWORD DriverPackagePreinstallW(PCWSTR DriverPackageInfPath, DWORD Flags);
DWORD DriverPackageUninstallA(PCSTR DriverPackageInfPath, DWORD Flags, PCINSTALLERINFO_A pInstallerInfo, BOOL * pNeedReboot);
DWORD DriverPackageUninstallW(PCWSTR DriverPackageInfPath, DWORD Flags, PCINSTALLERINFO_W pInstallerInfo, BOOL * pNeedReboot);
HRESULT LocateCatalogsA(PCSTR pwszScope, ULONG iBmk, int pwszMachine, ULONG * pccMachine, int pwszCat, ULONG * pccCat);
HRESULT LocateCatalogsW(PCWSTR pwszScope, ULONG iBmk, int pwszMachine, ULONG * pccMachine, int pwszCat, ULONG * pccCat);
void SetDifxLogCallbackA(DIFXLOGCALLBACK_A LogCallback, PVOID CallbackContext);
void SetDifxLogCallbackW(DIFXLOGCALLBACK_W LogCallback, PVOID CallbackContext);
Functions Changed
1RtlRaiseException
Before
int RtlRaiseException(int ExceptionRecord);
After
void RtlRaiseException(PEXCEPTION_RECORD ExceptionRecord);