Archive

Archive for the ‘Programming’ Category

Changes in the Windows v10.0.15021 SDK compared to Windows v10.0.14393 SDK (Part Two)

February 28, 2017 Leave a comment

This is a follow up to the first part of my blog post which compares the Windows 10 SDK (v10.0.14393) which corresponds to Windows 10 version 1607 and the pre-release version (v10.0.15021) SDK which will correspond to Windows 10 version 1704 aka Windows 10 Creators Update. This part of the blog post will concentrate on the “um” folder differences.

Ok, let’s dive into the changes:

  • A lot of the header files have reworked references to the concept of SDK Family and Partitions which segregate the APIs available from the SDK header files as being available on certain Families e.g. Windows Phone, Windows Desktop, Window Server, WinRT etc.
  • Some of the header files have been updated to keep up to date with the latest SAL annotation improvements.
  • Some of the changes in the new SDK reference the pre-processor value of NTDDI_WIN10_RS2 for of NTDDI_VERSION. This corresponds to Windows 10 codename “Redstone 2” aka Windows 10 version 1704 aka Windows 10 Creators Update.
  • alljoyn_c\AjAPI.h: QCC_DEPRECATED_ON & QCC_DEPRECATED_MSG defines have been removed.
  • alljoyn_c\AuthListener.h: Minor change to comments. alljoyn_c\authlistener_setsharedsecret API has been added.
  • alljoyn_c\BusAttachment.h: Minor change to comments. alljoyn_c\busattachment_deletedefaultkeystore API has been added.
  • alljoyn_c\Init.h: Minor change to comments. alljoyn_routerinitwithconfig API has been added. Removed AllJoynRouterInit & AllJoynRouterShutdown APIs.
  • alljoyn_c\InterfaceDescription.h: Minor change to comments. A number of alljoyn_interfacedescription_* have been added.
  • alljoyn_c\KeyStoreListener.h: alljoyn_keystorelistener_acquireexclusivelock_ptr & alljoyn_keystorelistener_releaseexclusivelock_ptr typedefs have been added. alljoyn_keystorelistener_with_synchronization_callbacks struct has been added. alljoyn_keystorelistener_with_synchronization_create API has been added.
  • Alljoyn_c\Message.h: Calling convention for alljoyn_message_parseargs API has been changed.
  • alljoyn_c\MsgArg.h: Calling convention of alljoyn_msgarg_create_and_set, alljoyn_msgarg_set, alljoyn_msgarg_get, alljoyn_msgarg_array_set, alljoyn_msgarg_array_get, alljoyn_msgarg_getdictelement, alljoyn_msgarg_array_set_offset & alljoyn_msgarg_set_and_stabilize APIs have been changed.
  • alljoyn_c\PermissionConfigurationListener.h: Minor change to comments.
  • alljoyn_c\PermissionConfigurator.h: A number of alljoyn_permissionconfigurator_* APIs have been added. Minor change to comments. alljoyn_certificateid, alljoyn_certificateidarray & alljoyn_manifestarray structs have been added. Removed alljoyn_permissionconfigurator_setmanifesttemplatefromxml API.
  • alljoyn_c\ProxyBusObject.h: Minor change to comments.
  • alljoyn_c\SecurityApplicationProxy.h: Minor change to comments. alljoyn_securityapplicationproxy_getpolicy, alljoyn_securityapplicationproxy_getdefaultpolicy, alljoyn_securityapplicationproxy_policy_destroy, alljoyn_securityapplicationproxy_computemanifestdigest, alljoyn_securityapplicationproxy_digest_destroy & alljoyn_securityapplicationproxy_setmanifestsignature APIs have been added.
  • alljoyn_c\Status.h: A number of QStatus enum values have been added.
  • qcc\windows\mapping.h: QCC_ASSERT & alljoyn_permissionconfigurator_setmanifestfromxml defines have been added.
  • qcc\platform.h: Various QCC_DEPRECATED_* defines have been added.
  • winsqlite\winsqlite3.h & winsqlite2ext.h: Win SQLITE header has been updated to SQLite v3.15.2 from 3.12.2. I will look to update Sqlite3Wrappers in the near future to support this new functionality.
  • A lot of the IDL generated header files have been modified as a result of being run by a new v8.01.0622 of the MIDL compiler instead of v8.00.0618 which was used with v10.0.10240 of the SDK.
  • adoguids.h: inclusion of adogpool.h now is done as #include <adogpool.h>
  • ahadmin_i.c: MIDL_DEFINE_GUID define has been updated.
  • amsi.h\idl: New AMSI_ATTRIBUTE_* enum values.
  • AowAppRuntime.h\idl: Has been removed.
  • appmodel.h: New header file which defines api-ms-win-appmodel-runtime-l1 API Set. New APIs include GetCurrentPackageId, GetCurrentPackageFullName, GetCurrentPackageFamilyName, GetCurrentPackagePath, GetPackageId, GetPackageFullName, GetPackageFullNameFromToken, GetPackageFamilyName, GetPackageFamilyNameFromToken, GetPackagePath, GetPackagePathByFullName, GetStagedPackagePathByFullName, GetCurrentApplicationUserModelId, GetApplicationUserModelId, GetApplicationUserModelIdFromToken, VerifyPackageFullName, VerifyPackageFamilyName, VerifyPackageId, VerifyApplicationUserModelId, VerifyPackageRelativeApplicationId, PackageIdFromFullName, PackageFullNameFromId, PackageFamilyNameFromId, PackageFamilyNameFromFullName, PackageNameAndPublisherIdFromFamilyName, FormatApplicationUserModelId, ParseApplicationUserModelId, GetPackagesByPackageFamily, FindPackagesByPackageFamily, GetStagedPackageOrigin, GetCurrentPackageInfo, OpenPackageInfoByFullName, OpenPackageInfoByFullNameForUser, ClosePackageInfo, GetPackageInfo, GetPackageApplicationIds, AppPolicyGetLifecycleManagement, AppPolicyGetWindowingModel, AppPolicyGetMediaFoundationCodecLoading, AppPolicyGetClrCompat, AppPolicyGetThreadInitializationType, AppPolicyGetShowDeveloperDiagnostic, AppPolicyGetProcessTerminationMethod & AppPolicyGetCreateFileAccess APIs. Provides new APIs to support Packaging, deployment, and query of Windows Store Apps.
  • appserviceinterop.h\idl: New IAppServiceConnectionExtendedExecution interface.
  • AppxPackaging.h: New APPX_FOOTPRINT_FILE_TYPE_*, APPX_CAPABILITY_CLASS_CUSTOM enum values. New IAppxFactory2, IAppxPackageReader2, IAppxPackageWriter2, IAppxManifestReader5, IAppxManifestMainPackageDependenciesEnumerator, IAppxManifestMainPackageDependency, IAppxBundleWriter2, IAppxBundleManifestReader2, IAppxBundleManifestOptionalBundleInfoEnumerator, IAppxBundleManifestOptionalBundleInfo, IAppxContentGroupFilesEnumerator, IAppxContentGroup, IAppxContentGroupsEnumerator, IAppxContentGroupMapReader, IAppxSourceContentGroupMapReader, IAppxContentGroupMapWriter, IAppxEncryptionFactory2, IAppxEncryptionFactory3 & IAppxEncryptedBundleWriter2 interfaces. New APPX_ENCRYPTED_PACKAGE_OPTIONS enum. New APPX_ENCRYPTED_PACKAGE_SETTINGS2 struct. These are various new COM APIs to support Appx Package management.
  • audioenginebaseapo.h\idl: Various new PKEY_CompositeFX_* defines.
  • Bits.idl: new BG_NOTIFY_FILE_RANGES_TRANSFERRED define.
  • bits5_0.h\idl: New BITS_JOB_PROPERTY_MINIMUM_NOTIFICATION_INTERVAL_MS & BITS_JOB_PROPERTY_ON_DEMAND_MODE enum values.
  • BitsMsg.h: Various new BG_E_* defines.
  • CDOSys_I.c: MIDL_DEFINE_GUID define has been updated.
  • certenroll.h: New XCN_CRYPT_STRING_ENCODEMASK, XCN_CRYPT_STRING_CHAIN, XCN_CRYPT_STRING_RESERVED200, XCN_CERT_NAME_STR_AMBIGUOUS_SEPARATOR_FLAGS, SKIHashHPKP, ClientIdWinRT, XCN_CERT_PIN_SHA256_HASH_PROP_ID, XCN_CERT_CLR_DELETE_KEY_PROP_ID, XCN_CERT_NOT_BEFORE_FILETIME_PROP_ID, XCN_CERT_CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID, PrivateKeyHelloKspKey & PrivateKeyHelloLogonKey enum values.
  • CertSrv.h: wszREGKEYENROLLMENT & wszREGKEYGROUPPOLICYENROLLMENT defines have been updated.
  • cfgmgr32.h: New CM_DEVCAP_SECUREDEVICE define.
  • chakrart.h: Minor change to some __declspec(deprecated) text
  • ClusApi.h: New NT11_MAJOR_VERSION, CLUSTER_AVAILABILITY_SET_CONFIG_V1, CLUSREG_NAME_GRP_FAULT_DOMAIN, CLUSREG_NAME_GRP_UPDATE_DOMAIN & CLUSREG_NAME_GROUPSET_* defines. New CLUSTER_AVAILABILITY_SET_CONFIG struct. New CreateClusterAvailabilitySet API. New CLCTL_NOTIFY_MONITOR_SHUTTING_DOWN, CLUSCTL_RESOURCE_TYPE_NOTIFY_MONITOR_SHUTTING_DOWN & PLACEMENT_OPTIONS_DONT_USE_LOCAL_TEMP_DISK enum values.
  • codecapi.h: New STATIC_CODECAPI_AVEncSliceGenerationMode, STATIC_CODECAPI_AVEncVideoDirtyRectEnabled, AVEncSliceGenerationMode, AVEncVideoDirtyRectEnabled, CODECAPI_AVEncSliceGenerationMode & CODECAPI_AVEncVideoDirtyRectEnabled defines.
  • combaseapi.h: New CoFileTimeNow & CLSIDFromProgIDEx APIs.
  • commctrl.inl: Minor update to copyright message in comment.
  • commdlg.inl: Minor update to copyright message in comment.
  • CompPkgSup.h: New GetMediaExtensionCommunicationFactory, IsMediaBehaviorEnabled & GetMediaComponentPackageInfo APIs. New MEDIA_BEHAVIOR_MEDIAPLAYBACKLIST_AUTOPLAYBACKITEMRESET define.
  • cper.h: Minor change to comment. Member in WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS struct has been renamed. Member in WHEA_ARM_BUS_ERROR struct has been renamed. Member in WHEA_ARM_PROCESSOR_ERROR_INFORMATION struct has been renamed.
  • cperguid.h: Minor change to comment.
  • d2d1_1.h: New D2D1_PRIMITIVE_BLEND_MAX enum value.
  • d2d1_3.h: New D2D1_GAMMA1 & D2D1_COLOR_CONTEXT_TYPE enums. New D2D1_SIMPLE_COLOR_PROFILE struct. New ID2D1CommandSink4, ID2D1ColorContext1, ID2D1DeviceContext5, ID2D1Device5 & ID2D1Factory6 interfaces. This is quite a lot of new functionality in D2D
  • d2d1_3helper.h: New SimpleColorProfile API
  • d2d1effectauthor_1.h: New ID2D1EffectContext2 interface.
  • d2d1svg.h: New header file which provides new SVG functionality in D2D. New interfaces include ID2D1SvgAttribute, ID2D1SvgPaint, ID2D1SvgStrokeDashArray, ID2D1SvgPointCollection, ID2D1SvgPathData, ID2D1SvgElement & ID2D1SvgDocument
  • d3d11.h\idl: New D3D11_FEATURE_SHADER_CACHE enum value. New D3D11_SHADER_CACHE_SUPPORT_FLAGS enum. New D3D11_FEATURE_DATA_SHADER_CACHE struct.
  • d3d11_3.h\idl: New ID3D11Fence & ID3D11DeviceContext4 interfaces. New D3D11_FENCE_FLAG enum.
  • d3d11_4.h\idl: New ID3D11Device5 interface.
  • d3d11sdklayers.h\idl: Various new D3D11_MESSAGE_ID_* enum values.
  • d3d12.h\idl: New ID3D12GraphicsCommandList1, ID3D12PipelineLibrary1, ID3D12Device2 & ID3D12Tools interfaces. New D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME, D3D12_FEATURE_* & D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH enum values. New D3D12_DEPTH_STENCIL_DESC1, D3D12_RT_FORMAT_ARRAY, D3D12_PIPELINE_STATE_STREAM_DESC, D3D12_FEATURE_DATA_D3D12_OPTIONS2, D3D12_FEATURE_DATA_ARCHITECTURE1, D3D12_FEATURE_DATA_SHADER_CACHE, D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY, D3D12_RANGE_UINT64, D3D12_SUBRESOURCE_RANGE_UINT64 & D3D12_SAMPLE_POSITION structs. New D3D12_PIPELINE_STATE_SUBOBJECT_TYPE, D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER & D3D12_SHADER_CACHE_SUPPORT_FLAGS, D3D12_RESOLVE_MODE enums. D3D12_RESIDENCY_PRIORITY_HIGH enum value has changed.
  • d3d12sdklayers.h\idl: New ID3D12Debug2 interface. New D3D12_GPU_BASED_VALIDATION_FLAGS enum. New D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR enum value. New D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR struct. Various D3D12_MESSAGE_ID_* defines have been updated and added.
  • DbgEng.h: New IDebugPlmClient3 & IDebugOutputStream interfaces. New DEBUG_SRCFILE_SYMBOL_CHECKSUMINFO & DEBUG_FIND_SOURCE_WITH_CHECKSUM defines.
  • DbgHelp.h: New SymTagInlineSite, SymTagBaseInterface, SymTagVectorType, SymTagMatrixType, SymTagHLSLType, SymTagCaller, SymTagCallee, SymTagExport, SymTagHeapAllocationSite, SymTagCoffGroup enum values. New SymGetSourceFileChecksumW, SymGetSourceFileChecksum APIs. New SSRVOPT_RETRY_APP_HANG, SSRVURI_* defines.
  • dcomp.h: DCompositionGetFrameStatistics API has been removed.
  • ddpchunk.h\idl: New module which provides IDedupChunkLibrary & IDedupIterateChunksHash32 interfaces.
  • ddpcommon.h\idl: New module which provides various new defines, enums and structs used by ddpchunk.h\idl modules.
  • ddpdataport.h\idl: New module which provides IDedupDataPort & IDedupDataPortManager interfaces.
  • DeviceCategories.h: New DEVICEDISPLAY_CATEGORY_COMPUTER_CONVERTIBLE, DEVICEDISPLAY_CATEGORY_COMPUTER_DETACHABLE, DEVICEDISPLAY_CATEGORY_DISPLAY_HEADMOUNTED, DEVICEDISPLAY_CATEGORY_POS_LINEDISPLAY, DEVICEDISPLAY_CATEGORY_PRINTFAX_PRINTER_CLOUD, DEVICEDISPLAY_CATEGORY_WEARABLE, DEVICEDISPLAY_CATEGORY_WEARABLE_HEADSET, DEVICEDISPLAY_CATEGORY_WEARABLE_HEADSET_HOLOGRAPHIC & DEVICEDISPLAY_CATEGORY_WEARABLE_HEADSET_VIRTUALREALITY defines.
  • dinput.h: New GetdfDIJoystick API
  • DirectXMath.h: Header file has been reworked to handle updated C++ compiler features such as constexpr.
  • DirectXMathConvert.inl: Minor changes to inline code.
  • DirectXMathMatrix.inl: Minor changes to inline code.
  • DirectXMathMisc.inl: Minor changes to inline code.
  • DirectXMathVector.inl: Minor changes to inline code.
  • DirectXPackedVector.inl: Minor changes to inline code.
  • dpa_dsa.inl: Minor update to copyright message in comment.
  • dpx1.h\idl: New IDpxFile2 & IDpxContainer3 interfaces. New DPX_RESUME_UNTIL_DOWNLOAD_NO_CLONE enum value. New DPX_OPTION_TELEMETRY_CORRELATION_VECTOR define.
  • dwrite_3.h: New IDWriteFontSetBuilder1, IDWriteAsyncResult, IDWriteRemoteFontFileStream, IDWriteRemoteFontFileLoader, IDWriteInMemoryFontFileLoader & IDWriteFactory5 interfaces.
  • dxgiddi.h: New DXGIDDI_MULTIPLANE_OVERLAY_PLANE_INFO & DXGIDDICB_PRESENT_MULTIPLANE_OVERLAY1 structs. New PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAY1CB callback. New members in DXGI_DDI_BASE_CALLBACKS struct.
  • DXGIMessages.h: New DXGI_MSG_IDXGIOutput6_CheckHardwareCompositionSupport_NullPointer enum value.
  • eappapis.h: New EapHostPeerGetEncryptedPassword API.
  • EditionUpgradeHelper.h\idl: New IEnableCodeGeneration interface. New methods in IEditionUpgradeHelper & IEditionUpgradeBroker interfaces.
  • edpwin32.h: New FILE_UNPROTECT_OPTIONS struct. New UnprotectFile API.
  • efswrtinterop.h\idl: New IProtectionPolicyManagerInterop3 interface.
  • ExDisp.h\idl: New navReserved6 enum value. New navCheckDontShowNeedHVSI define. New LaunchInHVSI method in IShellUIHelper8 interface.
  • ExDispid.h: New DISPID_LAUNCHINHVSI, DISPID_GETNEEDHVSIAUTOLAUNCHFLAG, DISPID_SETNEEDHVSIAUTOLAUNCHFLAG, DISPID_HASNEEDHVSIAUTOLAUNCHFLAG & DISPID_SHELLUIHELPERLAST defines.
  • expandedresources.h: New module which provides new HasExpandedResources, GetExpandedResourceExclusiveCpuCount & ReleaseExclusiveCpuSets APIs. These APIs may be related to Game mode.
  • FaxCom_i.c: MIDL_DEFINE_GUID define has been updated.
  • FaxComEx_i.c: MIDL_DEFINE_GUID define has been updated.
  • featurestagingapi.h: New GetFeatureVariant API.
  • FhCfg.h\idl: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • filtereg.h\idl: New ILoadFilterWithPrivateComActivation interface.
  • functiondiscoverykeys.h: New DEVICEDISPLAY_DISCOVERYMETHOD_ASP_INFRA define.
  • fwpmu.h: New FW_BITMAP_INDEX_FULL, FWPM_LAYER_ALE_PRECLASSIFY_*, FWPM_CONDITION_BITMAP_IP_*, FWPM_CONDITION_BITMAP_INDEX_KEY, FWPM_CONDITION_COMPARTMENT_ID & FWPM_CALLOUT_POLICY_SILENT_MODE_AUTH_* defines. New FwpmBitmapIndexGet0 & FwpmBitmapIndexFree0 APIs.
  • fwpsu.h: New FWPS_LAYER_ALE_* defines. New FWPS_FIELD_* & InetDiscard* enum values.
  • gamemonitor.h: New module which provides new ReportGameActivity, EnableActiveGameMonitoring & SetGameActivityCorrelationId APIs.
  • gameux.h: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • gamingtcui.h: New ShowGameInviteUIWithContext & ShowGameInviteUIWithContextForUser APIs.
  • HolographicSpaceInterop.h\idl: New module which provides new IHolographicSpaceInterop interface.
  • http.h: New HTTP_SERVICE_CONFIG_SETTING_KEY enum. New HTTP_SERVICE_CONFIG_SETTING_SET struct. Some members in HTTP_REQUEST_TOKEN_BINDING_INFO struct have been renamed and had their data types changed. New HttpRequestInfoTypeSslTokenBindingDraft & HttpServiceConfigSetting enum value. New HttpUpdateServiceConfiguration API.
  • icucommon.h: New module which seems to provide ICU support in Windows.
  • icui18n.h: New module which seems to provide ICU support in Windows.
  • iisext_i.c: MIDL_DEFINE_GUID define has been updated.
  • ImageHlp.h: New SymTagInlineSite, SymTagBaseInterface, SymTagVectorType, SymTagMatrixType, SymTagHLSLType, SymTagCaller, SymTagCallee, SymTagExport, SymTagHeapAllocationSite, SymTagCoffGroup enum values. New SymGetSourceFileChecksumW, SymGetSourceFileChecksum APIs. New SSRVOPT_RETRY_APP_HANG, SSRVURI_* defines.
  • ImageTranscode.h: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • inked_i.c: MIDL_DEFINE_GUID define has been updated.
  • InkPresenterDesktop_i.c: MIDL_DEFINE_GUID define has been updated.
  • inkrenderer.h\idl: New IInkD2DRenderer2 interface. New INK_HIGH_CONTRAST_ADJUSTMENT enum.
  • inkrenderer_i.c: MIDL_DEFINE_GUID define has been updated. New IID_IInkD2DRenderer2 define.
  • inputpaneinterop.h\idl: New modules which provides new IInputPaneInterop interface.
  • inputpanelconfiguration_i.c: MIDL_DEFINE_GUID define has been updated.
  • IsolatedAppLauncher.h\idl: New module which provides new IIsolatedAppLauncher interface.
  • iwscapi.h: New IWSCDefaultProduct interface. New methods in IWscProduct interface.
  • KnownFolders.h: New FOLDERID_AllAppMods & FOLDERID_CurrentAppMods defines.
  • libloaderapi.h: New LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY define.
  • LMAPIbuf.h: New NetApiBufferFree API.
  • LMJoin.h: New DSREG_JOIN_TYPE enum. New DSREG_USER_INFO, DSREG_JOIN_INFO & NETSETUP_PROVISIONING_PARAMS structs. New NETSETUP_PROVISION_* & NETSETUP_PROVISIONING_* defines. New NetProvisionComputerAccount, NetRequestOfflineDomainJoin, NetCreateProvisioningPackage, NetRequestProvisioningPackageInstall & NetGetJoinInformation APIs.
  • manipulations_i.c: MIDL_DEFINE_GUID define has been updated.
  • mdmlocalmanagement.h: New module which provides RegisterDeviceWithLocalManagement, ApplyLocalManagementSyncML & UnregisterDeviceWithLocalManagement APIs
  • MDMRegistration.h: New MENROLL_E_CERTPOLICY_PRIVATEKEYCREATION_FAILED, MENROLL_E_CERTAUTH_FAILED_TO_FIND_CERT & MENROLL_E_EMPTY_MESSAGE defines.
  • memoryapi.h: New FILE_MAP_LARGE_PAGES define.
  • mfapi.h: New MFSampleExtension_LastSlice, MF_CAPTURE_METADATA_UVC_PAYLOADHEADER, MFSampleExtension_Depth_MinReliableDepth, MFSampleExtension_Depth_MaxReliableDepth, MFAudioFormat_Float_SpatialObjects, MFSubtitleFormat_XML, MF_DEVICESTREAM_MULTIPLEXED_MANAGER, MF_MEDIATYPE_MULTIPLEXED_MANAGER, MFSampleExtension_MULTIPLEXED_MANAGER, MF_MT_SPATIAL_AUDIO_MAX_DYNAMIC_OBJECTS, MF_MT_SPATIAL_AUDIO_OBJECT_METADATA_FORMAT_ID, MF_MT_SPATIAL_AUDIO_OBJECT_METADATA_LENGTH, MF_MT_SPATIAL_AUDIO_MAX_METADATA_ITEMS, MF_MT_SPATIAL_AUDIO_MIN_METADATA_ITEM_OFFSET_SPACING, MF_MT_SPATIAL_AUDIO_DATA_PRESENT, MF_MT_DECODER_USE_MAX_RESOLUTION, MF_MT_DECODER_MAX_DPB_COUNT, MFMediaType_MultiplexedFrames & MFMediaType_Subtitle defines. New MFT_ENUM_FLAG_UNTRUSTED_STOREMF enum value. New MFCreateMuxStreamAttributes, MFCreateMuxStreamMediaType & MFCreateMuxStreamSample APIs.
  • Mferror.h: New MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED, MF_E_TRANSFORM_EXATTRIBUTE_NOT_SUPPORTED, MF_E_UNSUPPORTED_CAPTURE_DEVICE_PRESENT, MF_E_MEDIA_EXTENSION_APPSERVICE_* & MF_E_MEDIA_EXTENSION_PACKAGE_* defines.
  • mfidl.h\idl: New IMFHttpDownloadRequest, IMFHttpDownloadSession, IMFHttpDownloadSessionProvider, IMFSensorStream & IMFSensorTransformFactory interfaces. New MF_PD_ADAPTIVE_STREAMING define. New MFCreateSensorStream API.
  • mfmediaengine.h\idl: New MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED enum value.
  • mfobjects.h\idl: New IMFMuxStreamAttributesManager, IMFMuxStreamMediaTypeManager & IMFMuxStreamSampleManager interfaces.
  • mfspatialaudio.h\idl: New modules which provide new IMFSpatialAudioObjectBuffer & IMFSpatialAudioSample interfaces.
  • mftransform.h\idl: New IMFDeviceTransform interface
  • micaut_i.c: MIDL_DEFINE_GUID define has been updated.
  • minappmodel.h: New module which provides various defines related to “Package Identify Strings”??
  • minschannel.h: New SECPKG_ATTR_KEYING_MATERIAL_TOKEN_BINDING define.
  • Mobsync.h\idl: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • mscat.h: CRYPTCAT_MAX_MEMBERTAG define has been updated.
  • MSClus.h: New CLCTL_NOTIFY_MONITOR_SHUTTING_DOWN, CLUSCTL_RESOURCE_TYPE_NOTIFY_MONITOR_SHUTTING_DOWN enum values.
  • msft_filestoragetier.mof: New members of MSFT_FileStorageTier class.
  • msft_physicaldisk.mof: New methods of MSFT_PhysicalDisk class.
  • msft_physicalextent.mof: New module which provides new MSFT_PhysicalExtent class.
  • msft_storagepool.mof: New parameters to CreateStorageTier2 method of MSFT_StoragePool class.
  • msft_storagetier.mof: New members of MSFT_StorageTier class. New GetPhysicalExtent method of MSFT_StorageTier class. New parameters to SetAttributes2 method of MSFT_StorageTier class.
  • msft_virtualdisk.mof: New GetPhysicalExtent & SetProperties methods of MSFT_VirtualDisk class.
  • MsHtmcid.h: New IDM_TOGGLEREADINGBAR, IDM_ADDPDFHIGHLIGHT, IDM_DELETEPDFHIGHLIGHT & IDM_RUNFLASH defines.
  • MsHtmHst.h\idl: New CONTEXT_MENU_DISABLEDFLASH define.
  • msinkaut15_i.c: MIDL_DEFINE_GUID define has been updated.
  • msinkaut_i.c: MIDL_DEFINE_GUID define has been updated.
  • mswmdm_i.c: MIDL_DEFINE_GUID define has been updated.
  • ncrypt.h: New NCRYPT_CLAIM_WEB_AUTH_SUBJECT_ONLY, NCRYPT_PREFER_VIRTUAL_ISOLATION_FLAG, NCRYPT_USE_VIRTUAL_ISOLATION_FLAG, NCRYPT_USE_PER_BOOT_KEY_FLAG, NCRYPT_USE_VIRTUAL_ISOLATION_PROPERTY, NCRYPT_USE_PER_BOOT_KEY_PROPERTY, NCRYPT_PCP_RSA_SCHEME_PROPERTY, NCRYPT_PCP_TPM_MANUFACTURER_ID_PROPERTY & NCRYPT_PCP_TPM_FW_VERSION_PROPERTY defines. New NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT & NCRYPT_PCP_TPM_FW_VERSION_INFO structs. I will look to update CryptoWrappers in the near future to support this new functionality.
  • newdev.h: New DIURFLAG_NO_REMOVE_INF, DIURFLAG_UNCONFIGURE_INF, DIURFLAG_BITS & DIURFLAG_SYSTEM_BITS defines. New DiUninstallDriverW, DiUninstallDriverA & DiShowUpdateDriver APIs.
  • NTSecAPI.h: New DeprecatedIUMCredKey enum value.
  • NTSecPKG.h: New PRIMARY_CRED_CACHED_INTERACTIVE_LOGON & PRIMARY_CRED_INTERACTIVE_NGC_LOGON define. New parameter to SpGetRemoteCredGuardLogonBufferFn function pointer.
  • OAIdl.h\idl: New ITypeLibRegistrationReader interface.
  • ObjIdl.h: New EOAC_RESERVED1 & COMGLB_PROPERTIES_RESERVED1 enum values.
  • ObjIdlbase.h\idl: New EOAC_RESERVED1 & COMGLB_PROPERTIES_RESERVED1 enum values.
  • OleAuto.h: New SafeArrayReleaseDescriptor & SafeArrayReleaseData APIs.
  • opmapi.h\idl: OPM_HDCP_WITH_TYPE_ENFORCEMENT_PROTECTION_LEVEL enum has been removed. OPM_PROTECTION_TYPE_HDCP_TYPE_ENFORCEMENT enum value has been removed. New OPMGetVideoOutputForTarget API.
  • opmxbox.h: New module which provide OPM API for XBOX. New OPMXboxEnableHDCP, OPMXboxGetHDCPStatus & OPMXboxGetHDCPStatusAndType APIs.
  • pacmanclientapi_i.c: MIDL_DEFINE_GUID define has been updated.
  • PathCch.h: New PATHCCH_OPTIONS enum.
  • peninputpanel_i.c: MIDL_DEFINE_GUID define has been updated.
  • perflib.h: Small spelling mistakes fixed in comments.
  • PortableDevice.h: New WPD_DEVICE_PROPERTIES_V3 & WPD_DEVICE_EDP_IDENTITY defines.
  • powrprof.h: New ACCESS_OVERLAY_SCHEME & ACCESS_ACTIVE_OVERLAY_SCHEME enum values.
  • prdrvcom.h: New IPrintTicketProvider2 interface.
  • prntvpt.h: New E_PRINTDEVICECAPABILITIES_FORMAT define. New PTGetPrintDeviceCapabilities & PTGetPrintDeviceResources APIs.
  • processthreadsapi.h: New ProcessActivityThrottleStateInfo & ProcessActivityThrottlePolicyInfo enum values. New PROCESS_ACTIVITY_THROTTLE_STATE & PROCESS_ACTIVITY_THROTTLE_POLICY_OP enums. New PROCESS_ACTIVITY_THROTTLE_EXECUTIONSPEED, PROCESS_ACTIVITY_THROTTLE_DELAYTIMERS & PROCESS_ACTIVITY_THROTTLE_AL defines. New PROCESS_ACTIVITY_THROTTLE_POLICY struct.
  • propkey.h: New PKEY_Devices_Aep_Bluetooth_Le_IsConnectable, PKEY_Devices_Aep_PointOfService_ConnectionTypes, PKEY_Supplemental_AlbumID, PKEY_Supplemental_ResourceId & PKEY_Video_IsSpherical defines.
  • propsys.h\idl: New GPS_VOLATILEPROPERTIES, GPS_VOLATILEPROPERTIESONLY & PDTF_ALWAYSINSUPPLEMENTALSTORE enum values.
  • prsht.inl: Updated copyright details in comment.
  • Psapi.h: New GetModuleBaseNameA, GetModuleBaseNameW, GetModuleFileNameExA & GetModuleFileNameExW defines.
  • RadialControllerInterop.h\idl: New IRadialControllerIndependentInputSourceInterop interface.
  • RasError.h: New ERROR_VPN_PLUGIN_GENERIC, ERROR_SSO_CERT_MISSING & ERROR_DEVICE_COMPLIANCE defines.
  • rdpencomapi_i.c: MIDL_DEFINE_GUID define has been updated.
  • realtimeapiset.h: New QueryAuxiliaryCounterFrequency, ConvertAuxiliaryCounterToPerformanceCounter & ConvertPerformanceCounterToAuxiliaryCounter APIs. I was unable to find any documentation for these new interesting looking APIs.
  • RegStr.h: New REGSTR_VAL_ADDRESS define.
  • rendezvoussession_i.c: MIDL_DEFINE_GUID define has been updated.
  • Resapi.h: New CLUS_RESDLL_OPEN_DONT_DELETE_TEMP_DISK, RESTYPE_MONITOR_SHUTTING_DOWN_NODE_STOP & RESTYPE_MONITOR_SHUTTING_DOWN_CLUSSVC_CRASH defines. New PSET_RESOURCE_LOCKED_MODE_EX_ROUTINE function pointer. New member in CLRES_CALLBACK_FUNCTION_TABLE struct.
  • RestrictedErrorInfo.h\idl: New ILanguageExceptionTransform, ILanguageExceptionStackBackTrace & ILanguageExceptionErrorInfo2 interfaces.
  • RpcProxy.h: annotations for ObjectStublessClient* functions have been updated.
  • rtlsupportapi.h: New RtlLookupFunctionEntryCHPE API
  • RTSCOM_i.c: MIDL_DEFINE_GUID define has been updated.
  • schannel.h: New DEFAULT_TLS_SSP_NAME_A, DEFAULT_TLS_SSP_NAME_W, DEFAULT_TLS_SSP_NAME, SP_PROT_TLS1_3_SERVER, SP_PROT_TLS1_3_CLIENT, SP_PROT_TLS1_3 defines. This means that Windows 10 Creators Update will probably support TLS v1.3. I was unable to find any other internet information to document this so this might be a scoop for me to find this!!!!. I plan to update my SSLWrappers class to support TLS v1.3 in the very near future.
  • SearchApi.idl: New ILoadFilterWithPrivateComActivation interface supported by FilterRegistration coclass.
  • securitybaseapi.h: New DeriveCapabilitySidsFromName API.
  • SetupAPI.h: New FLG_ADDREG_TYPE_QWORD & FLG_DELREG_TYPE_QWORD defines.
  • shdeprecated.h: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • sherrors.h: New COPYENGINE_E_REQUIRES_EDP_CONSENT_FOR_REMOVABLE_DRIVE, COPYENGINE_E_BLOCKED_BY_EDP_FOR_REMOVABLE_DRIVE, COPYENGINE_E_RMS_REQUIRES_EDP_CONSENT_FOR_REMOVABLE_DRIVE & COPYENGINE_E_RMS_BLOCKED_BY_EDP_FOR_REMOVABLE_DRIVE defines.
  • shidfact.h: Now pulls in “shobjidl_core.h” instead of “shobjidl.h”
  • ShlObj.hi\idl: A number of API’s have been removed from this module and moved into ShlObj_core.h\idl.
  • Shlwapi.h: “dwOffset” member variable in QITAB struct has been changed from int to DWORD.
  • ShObjIdl.hidl: A number of API’s have been removed from this module and moved into ShlObjidl_core.h\idl.
  • slerror.h: New SL_REMAPPING_MDOLLAR_OSR_* defines.
  • SpatialAudioClient.h\idl: New modules with various new interfaces for Spatial Audio.
  • SpatialAudioHrtf.h\idl: New modules with various new interfaces for Spatial Audio.
  • SpatialAudioMetadata.h\idl: New modules with various new interfaces for Spatial Audio.
  • SpatialInteractionManagerInterop.h\idl: New modules with various new interfaces for Spatial Audio.
  • spellcheck_i.c: MIDL_DEFINE_GUID define has been updated.
  • spellcheckprovider_i.c: MIDL_DEFINE_GUID define has been updated.
  • storagewmi_provider.mof: Now includes “msft_physicalextent.mof” module
  • SyncMgr.h\idl: Now includes “shobjidl_core.h” module
  • thumbnailstreamcache.h\idl: Now includes “shobjidl_core.h” module
  • TipAutoComplete_i.c: MIDL_DEFINE_GUID define has been updated.
  • tokenbinding.h: TOKENBINDING_IDENTIFIER, TOKENBINDING_KEY_TYPES struct members are completely different that previous version. TOKENBINDING_RESULT_DATA struct has a new member. TokenBindingGenerateBinding, TokenBindingVerifyMessage & TokenBindingGenerateID APIs takes different parameters.
  • TSGAuthenticationEngine_i.c: MIDL_DEFINE_GUID define has been updated.
  • TSGPolicyEngine.h\idl: New AA_AUTH_SSPI_NTLM enum value.
  • TSGPolicyEngine_i.c: MIDL_DEFINE_GUID define has been updated.
  • tssbx_i.c: MIDL_DEFINE_GUID define has been updated.
  • tsuserex_i.c: MIDL_DEFINE_GUID define has been updated.
  • UIAutomationClient.h\idl: New IUIAutomationTextRange3 & IUIAutomationElement7, interfaces. New TreeScope_None enum value. New TreeTraversalOptions enum. New UIA_ChangesEventId, UIA_* & AnnotationType_Mathematics defines.
  • UIAutomationCore.h\idl: New IRawElementProviderSimple3 interface. New SayAsInterpretAs, FillType, VisualEffects enum. New METADATAID define.
  • UIAutomationCoreApi.h: New TreeScope_None & AutomationIdentifierType_Style enum values. New FillColor_Property_GUID, OutlineColor_Property_GUID, FillType_Property_GUID, VisualEffects_Property_GUID, OutlineThickness_Property_GUID, CenterPoint_Property_GUID, Rotation_Property_GUID, Size_Property_GUID, Text_BeforeParagraphSpacing_Attribute_GUID, Text_AfterParagraphSpacing_Attribute_GUID, Text_LineSpacing_Attribute_GUID, Text_BeforeSpacing_Attribute_GUID, Text_AfterSpacing_Attribute_GUID, Text_SayAsInterpretAs_Attribute_GUID, Annotation_Mathematics_GUID & StyleId_* defines. New TreeTraversalOptions enum.
  • urlmon.h\idl: New BINDSTATUS_RESERVED_12, URLACTION_ALLOW_VBSCRIPT_IE enum values.
  • Uxtheme.h: New OpenThemeDataForDpi API. This is part of the improvements for DPI scaling for Win32 in the Creators Update.
  • vdslun.h\idl: New VDSBusTypeScm & VDSBusTypeUfs enum values.
  • vdssys.h\idl: New CREATE_VIRTUAL_DISK_FLAG_SPARSE_FILE enum value.
  • vfwmsgs.h: New VFW_S_DVD_RENDER_STATUS define.
  • virtdisk.h: New CREATE_VIRTUAL_DISK_FLAG_SPARSE_FILE enum value.
  • WaaSApi.h\idl: New modules with new IWaaSAssessor interface.
  • WaaSApiTypes.h\idl: New modules with types for new IWaaSAssessor interface.
  • wbcl.h: New SIPAEVENT_MORBIT_API_STATUS, SIPAEVENT_HIBERNATION_DISABLED, SIPAEVENT_DUMPS_DISABLED, SIPAEVENT_DUMP_ENCRYPTION_ENABLED & SIPAEVENT_DUMP_ENCRYPTION_KEY_DIGEST, WBCL_DIGEST_ALG_ID_SM3_256 & WBCL_DIGEST_ALG_BITMAP_SM3_256 defines.
  • WdsTptMgmt_i.c: MIDL_DEFINE_GUID define has been updated.
  • WerApi.h: New WER_FILE_COMPRESSED, WER_MAX_REGISTERED_ENTRIES, WER_MAX_REGISTERED_METADATA, WER_MAX_REGISTERED_DUMPCOLLECTION, WER_METADATA_KEY_MAX_LENGTH & WER_METADATA_VALUE_MAX_LENGTH defines. New WerRegisterExcludedMemoryBlock, WerUnregisterExcludedMemoryBlock, WerRegisterCustomMetadata, WerUnregisterCustomMetadata, WerRegisterAdditionalProcess, WerUnregisterAdditionalProcess, WerStoreQueryReportMetadataV2 & WerFreeString APIs. New WER_REPORT_METADATA_V2 struct.
  • WinBase.h: New ProcThreadAttributeDesktopAppPolicy enum value, New PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_EXPORT_SUPPRESSION, PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALLOW_STORE, PROCESS_CREATION_MITIGATION_POLICY2_*, PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_ENABLE_PROCESS_TREE, PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_DISABLE_PROCESS_TREE, PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_OVERRIDE, PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY & SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE defines.
  • winbase.inl: Minor update to copyright message in comment.
  • WinBio.h: New GetProtectionPolicy & NotifyUnitStatusChange structs.
  • winbio_adapter.h: New PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN & PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN, PIBIO_STORAGE_GET_USER_STATE_FN, PIBIO_STORAGE_INCREMENT_USER_STATE_FN, PIBIO_STORAGE_UPDATE_RECORD_BEGIN_FN, PIBIO_STORAGE_UPDATE_RECORD_COMMIT_FN, PIBIO_FRAMEWORK_VSM_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN, PIBIO_FRAMEWORK_VSM_STORAGE_RECORD_MIGRATE_BEGIN_FN, PIBIO_FRAMEWORK_VSM_STORAGE_RECORD_MIGRATE_NEXT_FN, PIBIO_FRAMEWORK_VSM_STORAGE_RECORD_MIGRATE_END_FN, PIBIO_FRAMEWORK_ALLOCATE_MEMORY_FN, PIBIO_FRAMEWORK_FREE_MEMORY_FN & PIBIO_FRAMEWORK_GET_PROPERTY_FN function pointers. New WINBIO_SENSOR_INTERFACE_VERSION_4, WINBIO_STORAGE_INTERFACE_VERSION_5 & WINBIO_FRAMEWORK_INTERFACE_VERSION_5_0 defines. New members in WINBIO_SENSOR_INTERFACE, WINBIO_STORAGE_INTERFACE & WINBIO_FRAMEWORK_INTERFACE structs. New WbioSensorAsyncImportRawBuffer, WbioSensorAsyncImportSecureBuffer, WbioStorageGetUserState, WbioStorageIncrementUserState, WbioStorageUpdateRecordBegin, WbioStorageUpdateRecordCommit, WbioFrameworkVsmSensorAttach, WbioFrameworkVsmSensoreDetach, WbioFrameworkVsmSensorClearContext, WbioFrameworkVsmSensorNotifyPowerChange, WbioFrameworkVsmSensorPipelineInit, WbioFrameworkVsmSensorPipelineCleanup, WbioFrameworkVsmSensorActivate, WbioFrameworkVsmSensorDeactivate, WbioFrameworkVsmSensorAsyncImportRawBuffer, WbioFrameworkVsmSensorAsyncImportSecureBuffer, WbioFrameworkVsmStorageRecordMigrateBegin, WbioFrameworkVsmStorageRecordMigrateNext, WbioFrameworkVsmStorageRecordMigrateEnd, WbioFrameworkVsmStorageGetUserState, WbioFrameworkVsmStorageIncrementUserState, WbioFrameworkAllocateMemory, WbioFrameworkFreeMemory & WbioFrameworkGetProperty APIs.
  • wincred.h: New STATUS_NO_SUCH_LOGON_SESSION define. CREDUIP_IS_USER_PASSWORD_ERROR define has been updated.
  • wincrypt.h: New szOID_HPKP_DOMAIN_NAME_CTL, szOID_HPKP_HEADER_VALUE_CTL, CERT_PIN_SHA256_HASH_PROP_ID, CERT_CLR_DELETE_KEY_PROP_ID, CERT_NOT_BEFORE_FILETIME_PROP_ID, CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID, CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG, CERT_CHAIN_OPT_IN_WEAK_FLAGS, CERT_CHAIN_AUTO_HPKP_RULE_INFO, CERT_CHAIN_OPT_IN_WEAK_SIGNATURE, CERT_CHAIN_POLICY_IGNORE_WEAK_SIGNATURE_FLAG, CERT_CHAIN_POLICY_SSL_HPKP_HEADER, CERT_CHAIN_POLICY_THIRD_PARTY_ROOT, CERT_CHAIN_POLICY_SSL_KEY_PIN, SSL_HPKP_PKP_HEADER_INDEX, SSL_HPKP_PKP_RO_HEADER_INDEX, SSL_HPKP_HEADER_COUNT, CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_ERROR, CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_ERROR, CERT_CHAIN_POLICY_SSL_KEY_PIN_SUCCESS, CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_WARNING, CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_WARNING, CRYPT_STRING_ENCODEMASK, CRYPT_STRING_RESERVED100 & CRYPT_STRING_RESERVED200 defines. IS_PUBKEY_HASH_PROP_ID, CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DEFAULT & CERT_CHAIN_DISABLE_WEAK_FLAGS defines have been updated. New SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA, SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA & SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS structs. I will look to update CryptoWrappers in the near future to support this new functionality.
  • winddi.h: New INDEX_DrvSurfaceComplete, GCAPS2_BITMAPEXREUSE, MS_REUSEDDEVICEBITMAP & CDBEX_REUSE defines. INDEX_LAST define has been updated. New DrvSurfaceComplete & EngFntCacheFlush API. New PFN_DrvSurfaceComplete function pointer.
  • windows.graphics.printing.workflow.native.h\idl: New modules which provide new IPrintWorkflowXpsReceiver, IPrintWorkflowObjectModelSourceFileContentNative & IPrintWorkflowXpsObjectModelTargetPackageNative defines.
  • windows.ui.xaml.hosting.referencetracker.h\idl: New IReferenceTrackerExtension & ITrackerOwner interfaces.
  • WindowsNumerics.h: Change to how _WINDOWS_NUMERICS_INTEROP_NAMESPACE_ define is setup.
  • WindowsStorageCOM.h\idl: New IDDEInitializer interface.
  • wingdi.h: New DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO, DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE & QDC_INCLUDE_HMD, STAMP_TRUETYPE_VARIATION defines. New DISPLAYCONFIG_COLOR_ENCODING, DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO & DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE structs.
  • winhttp.h: New WINHTTP_AUTOPROXY_ALLOW_AUTOCONFIG, WINHTTP_AUTOPROXY_ALLOW_STATIC, WINHTTP_AUTOPROXY_ALLOW_CM, NETWORKING_KEY_BUFSIZE, WINHTTP_OPTION_KDC_PROXY_SETTINGS, WINHTTP_CALLBACK_STATUS_SETTINGS_WRITE_COMPLETE, WINHTTP_CALLBACK_STATUS_SETTINGS_READ_COMPLETE & WINHTTP_QUERY_FLAG_NUMBER64 defines. New WINHTTP_PROXY_RESULT_EX, WINHTTP_PROXY_NETWORKING_KEY & WINHTTP_PROXY_SETTINGS structs. New WinHttpGetProxyForUrlEx2, WinHttpGetProxyResultEx, WinHttpFreeProxyResultEx, WinHttpWriteProxySettings, WinHttpReadProxySettings, WinHttpFreeProxySettings & WinHttpGetProxySettingsVersion APIs. I will look to update WinHTTPWrappers in the near future to support this new functionality
  • WinInet.h: Update to SECURITY_IGNORE_ERROR_MASK, INTERNET_LAST_OPTION, SECURITY_SET_MASK & HTTP_QUERY_MAX defines. New INTERNET_OPTION_TOKEN_BINDING_PUBLIC_KEY, SECURITY_FLAG_IGNORE_WEAK_SIGNATURE, SECURITY_FLAG_OPT_IN_WEAK_SIGNATURE, HTTP_QUERY_INCLUDE_REFERRED_TOKEN_BINDING_ID, HTTP_QUERY_PUBLIC_KEY_PINS, HTTP_QUERY_PUBLIC_KEY_PINS_REPORT_ONLY & ERROR_INTERNET_SEC_CERT_WEAK_SIGNATURE defines.
  • Winineti.h: New DLG_FLAGS_WEAK_SIGNATURE, INTERNET_OPTION_OPT_IN_WEAK_SIGNATURE, INTERNET_OPTION_PARSE_LINE_FOLDING, INTERNET_OPTION_FORCE_DECODE, INTERNET_OPTION_COOKIES_APPLY_HOST_ONLY, INTERNET_OPTION_EDGE_MODE, HTTP_ADDREQ_FLAG_ALLOW_EMPTY_VALUES, INTERNET_COOKIE_PERSISTENT_HOST_ONLY & INTERNET_COOKIE_EDGE_COOKIES, defines. Update to INTERNET_LAST_OPTION_INTERNAL, COOKIE_ALLOWED_SET_FLAGS & COOKIE_ALLOWED_GET_FLAGS defines. New InternetConvertUrlFromWireToWideChar API.
  • winioctl.h: New FILE_DEVICE_PERSISTENT_MEMORY, FILE_DEVICE_NVDIMM, FILE_DEVICE_HOLOGRAPHIC, IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT, STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID, STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID, STORAGE_CRYPTO_CAPABILITY_VERSION_1, STORAGE_CRYPTO_DESCRIPTOR_VERSION_1, STORAGE_ATTRIBUTE_PERF_SIZE_INDEPENDENT, STORAGE_DEVICE_NUMA_NODE_UNKNOWN, STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT, FSCTL_STREAMS_QUERY_PARAMETERS, FSCTL_STREAMS_ASSOCIATE_ID, FSCTL_STREAMS_QUERY_ID, FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT, FSCTL_QUERY_VOLUME_NUMA_INFO, USN_REASON_DESIRED_STORAGE_CLASS_CHANGE, QUERY_FILE_LAYOUT_INCLUDE_*, STREAM_LAYOUT_ENTRY_HAS_INFORMATION, STORAGE_CLASS_FLAG_MEDIA_TYPE_MANDATORY, STORAGE_CLASS_FLAG_CAN_BE_PROMOTED, STORAGE_CLASS_FLAG_CAN_BE_DEMOTED, QUERY_STORAGE_CLASSES_FLAGS_MEASURE_WRITE, QUERY_STORAGE_CLASSES_FLAGS_MEASURE_READ, HSM_OPCODE_SET_REPARSE_POINT, HSM_OPCODE_SET_ZERO_DATA, HSM_OPCODE_EXPAND, HSM_OPCODE_NOTIFY_GHOSTING & HSM_OPCODE_UPDATE_BITMAP defines. New STORAGE_DEVICE_NUMBERS, STORAGE_DEVICE_NUMBER_EX, STORAGE_CRYPTO_CAPABILITY, STORAGE_CRYPTO_DESCRIPTOR, STORAGE_DEVICE_NUMA_PROPERTY, RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER, STREAM_INFORMATION_ENTRY, FILE_DESIRED_STORAGE_CLASS_INFORMATION, GET_FILTER_FILE_IDENTIFIER_INPUT, GET_FILTER_FILE_IDENTIFIER_OUTPUT & HSM_OPCOD, structs. New BusTypeUfs, StorageAdapterCryptoProperty, StorageDeviceNumaProperty, StorageTierMediaTypeScm & DiskOpReasonMax enum values. NO_SRBTYPE_ADAPTER_DESCRIPTOR_SIZE define has been updated. New STORAGE_CRYPTO_ALGORITHM_ID, STORAGE_CRYPTO_KEY_SIZE, STORAGE_TIER_CLASS & FILE_STORAGE_TIER_CLASS enums. New members in STORAGE_TIER, STREAM_LAYOUT_ENTRY & VIRTUALIZATION_INSTANCE_INFO_INPUT structs.
  • WinNls.h: New CAL_SRELATIVELONGDATE, CAL_SENGLISHERANAME & CAL_SENGLISHABBREVERANAME defines.
  • winnt.h: New RTL_REFERENCE_COUNT32, PRODUCT_ENTERPRISEG, PRODUCT_ENTERPRISEGN, PRODUCT_CLOUD, PRODUCT_CLOUDN, ARM64_SYSINSTR, ARM64_CNTVCT, SECURITY_MAX_SID_STRING_CHARACTERS, SECURITY_UMFD_BASE_RID, SECURITY_PROCESS_PROTECTION_LEVEL_APP_RID, SYSTEM_ACCESS_FILTER_ACE_TYPE, TRUST_PROTECTED_FILTER_ACE_FLAG, SYSTEM_ACCESS_FILTER_VALID_MASK, SYSTEM_ACCESS_FILTER_NOCONSTRAINT_MASK, SE_SECURITY_DESCRIPTOR_FLAG_NO_ACCESS_FILTER_ACE, SE_DEVELOPMENT_MODE_NETWORK_CAPABILITY, ACCESS_FILTER_SECURITY_INFORMATION, JOB_OBJECT_IMPERSONATE, PROCESSOR_ARCHITECTURE_IA32_ON_ARM64, CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID, FILE_ATTRIBUTE_PINNED, FILE_ATTRIBUTE_UNPINNED, FILE_ATTRIBUTE_IN_SYNC, FILE_ATTRIBUTE_RECALL_ON_OPEN, FILE_RETURNS_CLEANUP_RESULT_INFO, IO_REPARSE_TAG_WCI_TOMBSTONE, IO_REPARSE_TAG_UNHANDLED, IO_REPARSE_TAG_ONEDRIVE, IO_REPARSE_TAG_GVFS_TOMBSTONE, GUID_ADAPTIVE_INPUT_CONTROLLER_STATE, GUID_DISCONNECTED_STANDBY_MODE, POWER_DISCONNECTED_STANDBY_MODE_NORMAL, POWER_DISCONNECTED_STANDBY_MODE_AGGRESSIVE, PPM_FIRMWARE_LPI, PPM_IDLE_IMPLEMENTATION_LPISTATES, POWER_ACTION_DOZE_TO_HIBERNATE, IMAGE_REL_ARM64_BRANCH19, IMAGE_ARCHIVE_HYBRIDMAP_MEMBER, IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE, IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE, IMAGE_HOT_PATCH_*, IMAGE_GUARD_RF_INSTRUMENTED, IMAGE_GUARD_RF_ENABLE, IMAGE_GUARD_RF_STRICT, IMAGE_DEBUG_TYPE_REPRO, FAST_FAIL_INVALID_SYSCALL_NUMBER, FAST_FAIL_INVALID_FILE_OPERATION, FAST_FAIL_LPAC_ACCESS_DENIED, FAST_FAIL_GUARD_SS_FAILURE, FAST_FAIL_LOADER_CONTINUITY_FAILURE, FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE, FAST_FAIL_INVALID_CONTROL_STACK, FAST_FAIL_SET_CONTEXT_DENIED, HEAP_CREATE_SEGMENT_HEA, HEAP_CREATE_HARDENED, CTMF_INCLUDE_LPAC, FLUSH_NV_MEMORY_IN_FLAG_NO_DRAIN, FLUSH_NV_MEMORY_DEFAULT_TOKEN, REG_OPTION_DONT_VIRTUALIZE & REG_UNLOAD_LEGAL_FLAGS defines. Various intrinsics have been updated. Various ARM64 defines and intrinsics have been added / updated. The PRODUCT_CLOUD* defines refer to Windows 10 Cloud which is a new SKU of Windows 10. The author’s DtWinVer code as of v2.04 includes support for detecting this SKU of Window. New SYSTEM_ACCESS_FILTER_ACE, TOKEN_BNO_ISOLATION_INFORMATION, PROCESS_MITIGATION_RETURN_FLOW_GUARD_POLICY, PROCESS_MITIGATION_THREAD_CONTEXT_POLICY, JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3, IMAGE_DYNAMIC_RELOCATION3, IMAGE_DYNAMIC_RELOCATION64, IMAGE_DYNAMIC_RELOCATION32_V2, IMAGE_DYNAMIC_RELOCATION64_V2, IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER, IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER & NV_MEMORY_RANG structs. New AccessReasonFilterAce, TokenBnoIsolation, ProcessReturnFlowGuardPolicy, ProcessThreadContextPolicy, JobObjectReserved*, QueryPotentialDripsConstraint, EnergyTrackerCreate, EnergyTrackerQuery, UpdateBlackBoxRecorder, MonitorRequestReasonAcDcDisplayBurstSuppressed, MonitorRequestReasonSystemStateEntered, MonitorRequestReasonWinrt & IMPORT_OBJECT_NAME_EXPORTAS enum values. JOB_OBJECT_ALL_ACCESS, IO_REPARSE_TAG_GLOBAL_REPARSE, CTMF_VALID_FLAGS, REG_LEGAL_OPTION & REG_OPEN_LEGAL_OPTION defines have been updated. New members in PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY, IMAGE_LOAD_CONFIG_DIRECTORY32, IMAGE_LOAD_CONFIG_DIRECTORY64, IMAGE_HOT_PATCH_INFO, IMAGE_HOT_PATCH_BASE & IMAGE_HOT_PATCH_HASHES structs. New RtlUnwindEx, RtlLookupFunctionEntryCHPE, RtlGetNonVolatileToken, RtlFreeNonVolatileToken, RtlFlushNonVolatileMemory, RtlDrainNonVolatileFlush, RtlWriteNonVolatileMemory & RtlFlushNonVolatileMemoryRanges APIs.
  • winsafer.h: New SRP_POLICY_MANAGEDINSTALLER define.
  • winspool.h: New PRINTER_DRIVER_CATEGORY_CLOUD define.
  • winsvc.h: New SERVICE_CONTROL_LOWRESOURCES, SERVICE_CONTROL_SYSTEMLOWRESOURCES, SERVICE_ACCEPT_LOWRESOURCES, SERVICE_ACCEPT_SYSTEMLOWRESOURCES & SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT defines. New SC_EVENT_TYPE struct. New SC_NOTIFICATION_CALLBACK function pointer. New SubscribeServiceChangeNotifications, UnsubscribeServiceChangeNotifications & WaitServiceState APIs. I will look to update CNTService in the near future to support this new functionality.
  • WinTrust.h: New SPC_WINDOWS_HELLO_COMPATIBILITY_OBJID define.
  • WinUser.h: New WM_DPICHANGED_BEFOREPARENT, WM_DPICHANGED_AFTERPARENT & WM_GETDPISCALEDSIZE defines. New DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS & DIALOG_DPI_CHANGE_BEHAVIORS enums. New SetDialogControlDpiChangeBehavior, GetDialogControlDpiChangeBehavior, SetDialogDpiChangeBehavior, GetDialogDpiChangeBehavior & SetProcessDpiAwarenessContext APIs. This is part of the improvements for DPI scaling for Win32 in the Creators Update.
  • winuser.inl: Minor update to copyright message in comment.
  • winuser.rh: New WM_DPICHANGED_BEFOREPARENT, WM_DPICHANGED_AFTERPARENT & WM_GETDPISCALEDSIZE defines.
  • wkspbkax_i.c: MIDL_DEFINE_GUID define has been updated.
  • wlanapi.h: New wlan_notification_msm_link_degraded & wlan_notification_msm_link_improved enum values. New WLAN_DEVICE_SERVICE_GUID_LIST struct. New WlanDeviceServiceCommand & WlanGetSupportedDeviceServices APIs. New GUID_DEVINTERFACE_ASP_INFRA_DEVICE, DEVPKEY_WiFiDirect_Service_Aeps, DEVPKEY_WiFiDirect_NoMiracastAutoProject, DEVPKEY_WiFiDirect_IsInfraCastSupported, DEVPKEY_WiFiDirect_IsInfraCastStreamSecuritySupported, DEVPKEY_WiFiDirect_InfraCastAccessPointBssid, DEVPKEY_WiFiDirect_InfraCastSinkHostName, DEVPKEY_InfraCast_ChallengeAep, DEVPKEY_WiFiDirect_IsDMGCapable & DEVPKEY_InfraCast_DevnodeAep defines.
  • wmdmlog_i.c: MIDL_DEFINE_GUID define has been updated.
  • Wscapi.h: New wscLaunchAdminMakeDefaultUI API.
  • wsmandisp_i.c: MIDL_DEFINE_GUID define has been updated.
  • wuerror.h: New WU_S_ALREADY_REVERTED, WU_S_SEARCH_CRITERIA_NOT_SUPPORTED, WU_S_UH_DOWNLOAD_SIZE_CALCULATED, WU_S_METADATA_SKIPPED_BY_ENFORCEMENTMODE, WU_S_METADATA_IGNORED_SIGNATURE_VERIFICATION, WU_E_REVERT_NOT_ALLOWED, WU_E_IDLESHUTDOWN_OPCOUNT_SERVICEREGISTRATION, WU_E_FILETRUST_SHA2SIGNATURE_MISSING, WU_E_METADATA*, WU_E_WMI_NOT_SUPPORTED, WU_E_UPDATE_MERGE_NOT_ALLOWED & WU_E_SKIPPED_UPDATE_INSTALLATION defines.
  • xamlOM.h\idl: New IVisualTreeServiceCallback2 & IVisualTreeService3 interfaces.

There seems to be quite a bit of interesting changes in the updated Windows 10 Creators Update proving that there is life in the Win32 API yet for us old school C++ Windows programmers. Happy coding.

Categories: Programming

Changes in the Windows v10.0.15021 SDK compared to Windows v10.0.14393 SDK (Part One)

February 14, 2017 1 comment

This is a comparison of the differences between the Windows 10 SDK (v10.0.14393) which corresponds to Windows 10 version 1607 and the pre-release version (v10.0.15021) SDK which will correspond to Windows 10 version 1704 aka Windows 10 Creators Update. This will highlight any interesting new Windows API changes which are available in Windows 10 version 1704. Part one of this review will concentrate on the “shared” header file which contains the defines which are shared between Kernel mode and User mode. The upcoming second part of this blog post will look at the “um” folder differences which contain the user mode header files. I expect the second part of this review will be much bigger as there are just over 2000 files in the “um” directory compared to just 253 in the “shared” directory.

Ok, let’s dive into the changes:

  • A lot of the header files have reworked references to a new pre-processor define _M_HYBRID_X86_ARM64. This probably refers to the upcoming version of Windows which will run on ARM hardware but will include x86 emulation. For more information see https://arstechnica.com/information-technology/2016/11/x86-emulation-rumored-to-be-coming-to-windows-for-arm-in-late-2017/.
  • A lot of the header files have reworked references to the concept of SDK Family and Partitions which segregate the APIs available from the SDK header files as being available on certain Families e.g. Windows Phone, Windows Desktop, Window Server, WinRT etc.
  • apiset.h: Contains a number of new API_SET_* defines.
  • bthdef.h: Various pre-processor GUID defines have been reworked and added. New BDIF_LE_CONNECTED & BDIF_LE_CONNECTABLE defines.
  • Some of the changes in the new SDK reference the pre-processor value of NTDDI_WIN10_RS2 for of NTDDI_VERSION. This corresponds to Windows 10 codename “Redstone 2” aka Windows 10 version 1704.
  • bugcodes.h: New CLUSTER_CLUSPORT_STATUS_IO_TIMEOUT_LIVEDUMP, SECURE_FAULT_UNHANDLED, BUGCODE_NETADAPTER_DRIVER, PDC_PRIVILEGE_CHECK_LIVEDUMP, TTM_WATCHDOG_TIMEOUT, WIN32K_CALLOUT_WATCHDOG_LIVEDUMP, WIN32K_CALLOUT_WATCHDOG_BUGCHECK, FAST_ERESOURCE_PRECONDITION_VIOLATION, STORE_DATA_STRUCTURE_CORRUPTION, MANUALLY_INITIATED_POWER_BUTTON_HOLD, USER_MODE_HEALTH_MONITOR_LIVEDUMP & HYPERVISOR_WATCHDOG_TIMEOUT defines.
  • cfg.h: New DN_QUERY_REMOVE_PENDING & DN_QUERY_REMOVE_ACTIVE defines.
  • clfs.h: Minor spelling mistake fixes in a number of comments
  • common.ver: VER_LEGALCOPYRIGHT_YEARS & VER_LEGALCOPYRIGHT_STR_WITH_YEARS defines have been updated to 2017
  • d3dukmdt.h: New DXGKDDI_INTERFACE_VERSION_WDDM2_2, D3D_UMD_INTERFACE_VERSION_WDDM2_2_1* & IOCTL_GPUP_DRIVER_ESCAPE CTL_CODE defines. New GPUP_DRIVER_ESCAPE_INPUT, DXGKVGPU_ESCAPE_HEAD, DXGKVGPU_ESCAPE_READ_PCI_CONFIG, DXGKVGPU_ESCAPE_READ_VGPU_TYPE, D3DDDI_CREATEHWCONTEXTFLAGS, D3DDDI_CREATEHWQUEUEFLAGS & PeriodicMonitoredFence structs. New DXGKVGPU_ESCAPE_TYPE enum. New D3DDDI_members in D3DDDI_ALLOCATIONINFO2, D3DDDI_ALLOCATIONINFO2 & D3DDDI_ESCAPEFLAGS structs. New D3DDDI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020, D3DDDI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 & D3DDDI_PERIODIC_MONITORED_FENCE enum values.
  • devguid.h: New GUID_DEVCLASS_HOLOGRAPHIC & GUID_DEVCLASS_NETDRIVER defines.
  • devioctl.h: New FILE_DEVICE_PERSISTENT_MEMORY, FILE_DEVICE_NVDIMM & FILE_DEVICE_HOLOGRAPHIC defines.
  • devpkey.h: New DEVPKEY_Device_ExtendedAddress & DEVPKEY_DeviceInterface_UnrestrictedAppCapabilities defines.
  • dxgdi.h/idl: New DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS defines.
  • dxgdi1_5.h/idl: New DXGI_OUTDUPL_FLAG enum.
  • dxgdi1_6.h/idl: New header files for DXGDI 1.6. Includes new IDXGIAdapter4 & IDXGIOutput6 interfaces.
  • dxgdicommon.h/idl: New header file including DXGI_RATIONAL & DXGI_SAMPLE_DESC structs & DXGI_COLOR_SPACE_TYPE enum moved from existing header file.
  • evntrace.h: New PrivateLoggerNotificationGuid define. New EVENT_TRACE_PROPERTIES_V2 & TRACE_PERIODIC_CAPTURE_STATE_INFO structs. New TracePeriodicCaptureStateListInfo & TracePeriodicCaptureStateInfo enum values.
  • fwpmtypes.h: New FWPM_FILTER_FLAG_SILENT_MODE define
  • fwpmtypes.h: New FWP_ACTION_BITMAP_INDEX_SET define. New member in FWPM_ACTION0 struct.
  • fwpstypes.h/idl: New FWPS_FILTER_FLAG_SILENT_MODE define.
  • fwptypes.h/idl: New enum values in FWP_DATA_TYPE. New FWP_MATCH_NOT_PREFIX enum value. New FWP_BITMAP_ARRAY64 struct. New FWP_BYTEMAP_ARRAY64_SIZE, FWP_BITMAP_ARRAY64_SIZE, FWP_ACTION_BITMAP_INDEX_SET & FWP_CONDITION_REAUTHORIZE_REASON_* defines.
  • fwpvi.h: New FwpmBitmapIndexGet & FwpmBitmapIndexFree defines.
  • hidusage.h: Various new HID_USAGE_* defines. These defines probably cover the new Surface Dial device, game, simulation, holographic controllers & digitizers.
  • hvsocket.h: New IOCTL_HVSOCKET_UPDATE_ADDRESS_INFO & HVSOCKET_ADDRESS_FLAG_PASSTHRU defines. New HVSOCKET_ADDRESS_INFO struct.
  • infstr.h: New INFSTR_SUBKEY_SOFTWARE & INFSTR_SOFTWAREVERSION_SECTION defines.
  • ipifcons.h: New IF_TYPE_XBOX_WIRELESS define.
  • ks.h: New KSSTREAM_HEADER_OPTIONSF_SECUREBUFFERTRANSFE define.
  • ks386.inc: New PS_MITIGATION_OPTION_*, STATUS_SET_CONTEXT_DENIED, FAST_FAIL_INVALID_CONTROL_STACK & FAST_FAIL_SET_CONTEXT_DENIED defines.
  • ksamd64.inc: New PS_MITIGATION_OPTION_*, STATUS_SET_CONTEXT_DENIED, FAST_FAIL_INVALID_CONTROL_STACK & FAST_FAIL_SET_CONTEXT_DENIED, KTHREAD_CONTROL_STACK_BIT, SrMsrFsBase, PcSfCode, PcSfVa, KgdtFlags1, KGDT_ENTRY_PRESENT, FAST_FAIL_GUARD_SS_FAILURE, KI_EXCEPTION_SECURE_FAULT, KI_EXCEPTION_SEGMENT_NOT_PRESENT, PdaGdt, PdaKernelGsBase & PsMsrFsBase defines.
  • ksarm.h: New IbMitigationOptionsMap, PS_MITIGATION_OPTION_*, STATUS_SET_CONTEXT_DENIED, FAST_FAIL_INVALID_CONTROL_STACK & FAST_FAIL_SET_CONTEXT_DENIED defines.
  • ksmedia.h: New KS_CAPTURE_ALLOC_SECURE_BUFFER, KSPROPERTY_CAMERACONTROL_EXTENDED_SECURE_MODE, MetadataId_CaptureStats, MetadataId_CameraExtrinsics, MetadataId_CameraIntrinsics & MetadataId_FrameIllumination enum values. New SECURE_BUFFER_INFO, KSCAMERA_METADATA_FRAMEILLUMINATION, KSCAMERA_METADATA_CAPTURESTATS, KSAUDIOMODULE_DESCRIPTOR, KSAUDIOMODULE_PROPERTY & KSAUDIOMODULE_NOTIFICATION structs. New STATIC_KS_SECURE_CAMERA_SCENARIO_ID, KS_SECURE_CAMERA_SCENARIO_ID, KSCAMERA_METADATA_CAPTURESTATS_FLAG_*, KSCAMERA_EXTENDEDPROP_SECUREMODE_DISABLED, KSCAMERA_EXTENDEDPROP_SECUREMODE_ENABLED, KSPROPSETID_AudioModule, AUDIOMODULE_MAX_DATA_SIZE, AUDIOMODULE_MAX_NAME_CCH_SIZE & KSNOTIFICATIONID_AudioModule defines. New KSPROPERTY_AUDIOMODULE enum.
  • kxamd64.inc: Various miscellaneous changes to X64 assembler code.
  • mstcpip.h: New TCPSTATE enum. New SIO_TCP_INFO define. New TCP_INFO_v0 struct.
  • netioapi.h: New MIB_IF_ENTRY_LEVEL struct. New GetIfEntry2Ex API. New MibIfTableNormalWithoutStatistics enum value.
  • netiodef.h: New IPV6_FULL_TRAFFIC_CLASS_MASK, IPV6_FULL_TRAFFIC_CLASS, ND_OPT_RDNSS_MIN_LEN & ND_OPT_DNSSL_MIN_LEN defines. New ND_OPT_RDNSS & ND_OPT_DNSSL enum values. New ND_OPTION_RDNSS, ND_OPTION_DNSSL structs. New parameters to Ipv6pGetVersionClassEcnFlow API.
  • nfcdtadev.h: The GUID_DEVINTERFACE_NFCDTA define has been updated.
  • ntddndis.h: New defines to support NDIS 6.7 functionality included with Windows 10 v1704
  • ntddscsi.h: New FIRMWARE_STATUS_* & FIRMWARE_REQUEST_FLAG_LAST_SEGMENT defines.
  • ntddstor.h: New IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, STORAGE_DEVICE_FLAGS_*, STORAGE_CRYPTO_CAPABILITY_VERSION_1, STORAGE_CRYPTO_DESCRIPTOR_VERSION_1, STORAGE_ATTRIBUTE_PERF_SIZE_INDEPENDENT, STORAGE_DEVICE_NUMA_NODE_UNKNOWN & STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT defines. New STORAGE_DEVICE_NUMBERS, STORAGE_DEVICE_NUMBER_EX, STORAGE_CRYPTO_KEY_SIZE, STORAGE_CRYPTO_CAPABILITY, STORAGE_CRYPTO_DESCRIPTOR & STORAGE_DEVICE_NUMA_PROPERTY structs. New BusTypeUfs, StorageAdapterCryptoProperty, StorageDeviceNumaProperty, StorageTierMediaTypeScm & DiskOpReasonMax enum values. New STORAGE_CRYPTO_ALGORITHM_ID & STORAGE_TIER_CLASS enums. New member of STORAGE_TIER struct.
  • ntddvdeo.h: New VideoRepaintDesktop, VideoUpdateCursor & VideoDisableMultiPlaneOverlay enum values.
  • ntdef.h: New DECLSPEC_CHPE_GUEST define. New WNF_STATE_NAME struct. New PRODUCT_ENTERPRISEG, PRODUCT_ENTERPRISEGN, PRODUCT_CLOUD & PRODUCT_CLOUDN. These later two defines refer to Windows 10 Cloud which is a new SKU of Windows 10. The author’s DtWinVer code as of v2.04 includes support for detecting this SKU of Window.
  • ntiologic.h: New IO_ERROR_DUMP_CREATION_ERROR define.
  • ntstatus.h: New STATUS_LOST_MODE_LOGON_RESTRICTION, STATUS_VRF_CFG_ENABLED, STATUS_ATTRIBUTE_NOT_PRESENT, STATUS_NOT_A_TIERED_VOLUME, STATUS_ALREADY_HAS_STREAM_ID, STATUS_JOB_NOT_EMPTY, STATUS_ALREADY_INITIALIZED, STATUS_STRICT_CFG_VIOLATION, STATUS_STRICT_RFG_VIOLATION, STATUS_RFG_ACCESS_VIOLATION, STATUS_RFG_ATTACHED_ACCESS_VIOLATION, STATUS_SET_CONTEXT_DENIED, STATUS_LPAC_ACCESS_DENIED, STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE, STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT, STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY, STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN, STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS, STATUS_CLOUD_FILE_METADATA_VERSION_NOT_SUPPORTED, STATUS_NOT_A_CLOUD_FILE, STATUS_CLOUD_FILE_NOT_IN_SYNC, STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED, STATUS_FVE_OSV_KSR_NOT_ALLOWED, STATUS_PCP_WRONG_PARENT, STATUS_PCP_KEY_NOT_LOADED, STATUS_PCP_NO_KEY_CERTIFICATION, STATUS_PCP_KEY_NOT_FINALIZED, STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET, STATUS_PCP_NOT_PCR_BOUND, STATUS_PCP_KEY_ALREADY_FINALIZED, STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED, STATUS_PCP_KEY_USAGE_POLICY_INVALID, STATUS_PCP_SOFT_KEY_ERROR, STATUS_PCP_KEY_NOT_AUTHENTICATED, STATUS_PCP_KEY_NOT_AIK, STATUS_PCP_KEY_NOT_SIGNING_KEY, STATUS_PCP_LOCKED_OUT, STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED, STATUS_PCP_TPM_VERSION_NOT_SUPPORTED, STATUS_PCP_BUFFER_LENGTH_MISMATCH, STATUS_HV_OPERATION_FAILED, STATUS_GDI_HANDLE_LEAK & STATUS_SPACES_REDIRECT defines. STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE define value has been updated.
  • rpcdce.h: New RpcServerInqBindingsEx API.
  • scsi.h: New UNKNOWN_OR_NO_DEVICE define.
  • sddl.h: New SDDL_ACCESS_FILTER, SDDL_TRUST_PROTECTED_FILTER & SDDL_ACE_COND_TOKEN_ATTRIBUTE_PREFIX defines.
  • sdkddkver.h: New defines for NTDDI_WIN10_RS2 which corresponds to Windows 10 v1704.
  • srb.h: New SRB_FUNCTION_CRYPTO_OPERATION & REQUEST_INFO_STREAM_FLAG defines.
  • Sspi.h: New SECBUFFER_DTLS_MTU & SEC_WINNT_AUTH_DATA_TYPE_CREDMAN_CERT defines. New SEC_DTLS_MTU struct.
  • tbs.h: New TBS_OWNERAUTH_TYPE_ENDORSEMENT_20 & TBS_OWNERAUTH_TYPE_STORAGE_20 defines.
  • TraceLoggingProvider.h: New TraceLoggingPackedDataEx defines.
  • usbspec.h: New USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY define. New USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR struct.
  • vhf.h: New members in VHF_CONFIG struct.
  • wdmguid.h: New GUID_SECURE_DRIVER_INTERFACE, GUID_SDEV_IDENTIFIER_INTERFACE, GUID_SCM_BUS_NVD_INTERFACE, GUID_SCM_BUS_LD_INTERFACE, GUID_SCM_PHYSICAL_NVDIMM_INTERFACE & GUID_PNP_EXTENDED_ADDRESS_INTERFACE defines.
  • winbio_err.h: New WINBIO_E_POLICY_PROTECTION_UNAVAILABLE, WINBIO_E_INSECURE_SENSOR, WINBIO_E_INVALID_BUFFER_ID, WINBIO_E_INVALID_BUFFER & WINBIO_E_TRUSTLET_INTEGRITY_FAIL defines.
  • winbio_types.h: New WINBIO_SECURE_BUFFER_HEADER_V1 & WINBIO_GESTURE_METADATA structs. New WINBIO_SECURE_BUFFER_TYPE_V1, WINBIO_FRAMEWORK_CHANGE_UNIT_STATUS, WINBIO_OPERATION_ENROLL_AUTHORIZE, WINBIO_OPERATION_ENROLL_REVOKE, WINBIO_OPERATION_GET_PROTECTION_POLICY, WINBIO_MATCH_TYPE, WINBIO_MATCH_SOFTWARE, WINBIO_MATCH_TRUSTED_EXECUTION_ENVIRONMENT, WINBIO_MATCH_ON_CHIP & WINBIO_OPERATION_NOTIFY_UNIT_STATUS_CHANGE defines. New member in WINBIO_EXTENDED_UNIT_STATUS, WINBIO_PROTECTION_POLICY struct.
  • windef.h: New DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 define. This new define relates to the new feature of Mixed Mode DPI scaling and new Per Monitor v2 support.
  • windot11.h: New DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH & DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH defines.
  • winerror.h: New FACILITY_PIX, ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE, ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT, ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY, ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN, ERROR_GDI_HANDLE_LEAK, ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS, ERROR_CLOUD_FILE_METADATA_VERSION_NOT_SUPPORTED, ERROR_NOT_A_CLOUD_FILE, ERROR_CLOUD_FILE_NOT_IN_SYNC, ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT, ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT, ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT, ERROR_VRF_CFG_ENABLED, ERROR_STRICT_CFG_VIOLATION, ERROR_STRICT_RFG_VIOLATION, ERROR_RFG_ACCESS_VIOLATION, ERROR_SET_CONTEXT_DENIED, ERROR_LOST_MODE_LOGON_RESTRICTION, ERROR_ALREADY_HAS_STREAM_ID, ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED, ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED, ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED, ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED, ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED, ERROR_PRI_MERGE_INVALID_FILE_NAME, ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING, ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE, ERROR_PACKAGE_STAGING_ONHOLD, ERROR_INSTALL_INVALID_RELATED_SET_UPDATE, APPX_E_INVALID_CONTENTGROUPMAP, WER_E_TOO_HEAVY, TPM_E_PCP_WRONG_PARENT, TPM_E_KEY_NOT_LOADED, TPM_E_NO_KEY_CERTIFICATION, TPM_E_KEY_NOT_FINALIZED, TPM_E_ATTESTATION_CHALLENGE_NOT_SET, TPM_E_NOT_PCR_BOUND, TPM_E_KEY_ALREADY_FINALIZED, TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED, TPM_E_KEY_USAGE_POLICY_INVALID, TPM_E_SOFT_KEY_ERROR, TPM_E_KEY_NOT_AUTHENTICATED, TPM_E_PCP_KEY_NOT_AIK, TPM_E_KEY_NOT_SIGNING_KEY, TPM_E_LOCKED_OUT, TPM_E_CLAIM_TYPE_NOT_SUPPORTED, TPM_E_VERSION_NOT_SUPPORTED, TPM_E_BUFFER_LENGTH_MISMATCH, FVE_E_OSV_KSR_NOT_ALLOWED, ERROR_HV_OPERATION_FAILED, ERROR_VMCOMPUTE_PROTOCOL_ERROR, STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED, STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED, STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED, STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED, STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS, ERROR_TIERING_FILE_IS_NOT_PINNED, ERROR_NOT_A_TIERED_VOLUME, ERROR_ATTRIBUTE_NOT_PRESENT, DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION, DXGI_ERROR_NON_COMPOSITED_UI, DXGI_ERROR_CACHE_CORRUPT, DXGI_ERROR_CACHE_FULL, DXGI_ERROR_CACHE_HASH_COLLISION, DXGI_ERROR_ALREADY_EXISTS, UTC_E_TIME_TRIGGER_ON_START_INVALID, UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION, UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE, UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE & UTC_E_BINARY_MISSING defines. The ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE define value has been updated.
  • winsmcrd.h: New SCARD_ATTR_VENDOR_SPECIFIC_INFO define.
  • wmistr.h: New WNODE_FLAG_VERSIONED_PROPERTIES define.
  • ws2ipdef.h: New PMTUD_STATE enum. New IP_MTU_DISCOVER, IP_RECVTOS, IP_RECVTTL, IPV6_MTU_DISCOVER & TCP_KEEPCNT defines.
  • WTypesbase.h/idl: New APPIDREGFLAGS_AAA_NO_IMPLICIT_ACTIVATE_AS_IU, APPIDREGFLAGS_RESERVED7 defines.

This review sets the stage for part two of the review where we review the “um” folder. Hopefully I would get around to this in the next couple of weeks. So far there has not been too much unexpected in the changes but all the interested changes will probably be in the “um” folder. Happy coding.

Categories: Programming

A Comprehensive comparison of the MFC & ATL changes in VS 2017 RC compared to Visual Studio 2015 Update 3 (Part Two)

January 10, 2017 Comments off

This is the second part of a two-part blog post which compares MFC and ATL in VS 2017 RC with those in Visual Studio 2015. The first part of this blog post covered the changes in the header files. This follow-up blog post will cover the differences in the source code modules.

Please note that this review is based on the VS 2017 Release Candidate (Build 26014.00) which was released on December 15 2016.

As ATL is mostly a header only library you would expect almost all of the differences to be in the MFC “.cpp” source code files.

Ok, the changes are as follows:

src\atls\x64

  • This folder has been renamed from “amd64”.

src\mfc\x64

  • This folder has been renamed from “amd64”.

afxdatarecovery.cpp

afxeditbrowsectrl.cpp

  • Line 379: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxjumplist.cpp

  • Line 477, 486, 498: Fix for passing a parameter to TRACE1 as an object instead of a C style string.

afxlinkctrl.cpp

  • Line 114: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxmousemanager.cpp

  • Line 121, 127: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxribbonbar.cpp

afxribboncustomizedialog.cpp

  • Line 207: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxshowallbutton.cpp

  • Line 133: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxstatusbar.cpp

afxtagmanager.cpp

  • Line 196: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxtoolbar.cpp

afxtoolbarslistpropertypage.cpp

  • Line 386, 452: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxtoolbarsmenupropertypage.cpp

  • Line 475, 523: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxusertool.cpp

  • Line 68: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxvisualmanageroffice2007.cpp

  • Line 365: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxvisualmanagerwindows7.cpp

  • Line 129: Fix for passing a parameter to TRACE as an object instead of a C style string.

ctlreg.cpp

  • Line 148: Fix for passing a parameter to TRACE as an object instead of a C style string.

dbcore.cpp

  • Line 67, 174, 180, 183: Fix for passing a parameter to TRACE as an object instead of a C style string.

oledlgs1.cpp

  • Line 692: Fix for passing a parameter to CString::Format as an object instead of a C style string.

oledoccl.cpp

  • Line 330: Fix for passing a parameter to CString::Format as an object instead of a C style string.

olemisc.cpp

  • Line 990-991: Fix for passing two parameters to _snwprintf_s as an object instead of a OLECHAR* string.

olereg.cpp

  • Line 555, 589: Fix for passing a parameter to TRACE as an object instead of a C style string.

oleunk.cpp

  • Line 202, 235, 257, 286, 309, 394, 396: Fix for passing a parameter to TRACE as an object instead of a C style string.

winctrl3.cpp

  • Line 65-77: Logic in _AFX_CHECKLIST_STATE::GetCheckBoxSize has been reworked to check the version number of comctrl32 in addition to the existing call to IsAppThemed. I was unable to find any information about this bug fix.

So, as you can see very fix bug fixes and some C++ conformance fixes in the MFC source code.

Hopefully this review was useful for those developers thinking of migrating their large ATL / MFC code base to the latest version of Visual Studio. Happy coding.

Categories: Programming

A Comprehensive comparison of the MFC & ATL changes in VS 2017 RC compared to Visual Studio 2015 Update 3 (Part 1)

January 2, 2017 1 comment

Following on from my May 2015 Blog post articles (https://naughter.wordpress.com/2015/05/07/a-comprehensive-comparison-of-the-mfc-atl-changes-in-vs-2015-rc-compared-to-visual-studio-2013-update-4/ & https://naughter.wordpress.com/2015/05/13/a-comprehensive-comparison-of-the-mfc-atl-changes-in-vs-2015-rc-compared-to-visual-studio-2013-update-4-part-2/) where I check out what’s new in MFC & ATL for Visual Studio 2015, here is an equivalent article for the upcoming release of VS 2017 which should be released shortly. Please note that this review is based on the VS 2017 Release Candidate (Build 26014.00) which was released on December 15 2016.

 

afx.h

  • Top of module: The checks in VC 2015 which warned about MFC deprecation when compiled for MBCS have been removed. This warning was previously supressed using the pre-processor value NO_WARN_MBCS_MFC_DEPRECATION

afxtoolbarbutton.h

  • Line 9: Minor change to a comment.

afxwinforms.h

  • Line 19: Minor change to a comment.

atlalloc.h

  • Line 22, 31, 39, 47, 55, 117-119, 126, 132-134, 141, 147-149, 156, 162-164, 171: Removed code which dealt with some errors for the defunct /Wp64 compiler option by using a ATL_W64 pre-processor macro.
  • Line 24, 93: Minor change to comments
  • Line 461: Code now uses this pointer explicitly in CHeapPtr::Allocate to make lookup be deferred until the template is actually instantiated. For information on the reasons for this change which is the biggest cause of differences as described throughout this blog post please see https://isocpp.org/wiki/faq/templates#nondependent-name-lookup-members. I believe this is because VC++ is in the process of supporting expression better ISO C++ conformance. For more information about this process please see https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/. I will over the next few months by updating my code to address any issues when compiled with /permissive-.
  • Line 461: Code now uses this pointer explicitly in CHeapPtr::Reallocate to make lookup be deferred until the template is actually instantiated.

atlcoll.h

  • Line 114: Minor change to fixup layout of whitespace.
  • Line 335, 356: Minor change to comment to fix spelling mistake (if you are using American English!)
  • Line 425: Addition of the keyword typename for instantiation of the “pch” local variable in the CStringElementTraitsI::Hash method.
  • Line 458: New using typename CElementTraitsBase<T>::INARGTYPE declaration in CStringRefElementTraits class.
  • Line 464: Addition of the keyword typename for instantiation of the “pch” local variable in the CStringRefElementTraits::Hash method.
  • Line 1034: Minor change to comment to fix spelling mistake.
  • Line 1475: CAtlList::RemoveAll is now declared as throw()
  • Line 1715: CAtlList::RemoveHeadNoReturn is now declared as throw()
  • Line 1757: CAtlList::RemoveTailNoReturn is now declared as throw()
  • Line 1834: CAtlList::RemoveAt is now declared as throw()
  • Line 2871: CAtlMap::RemoveNode is now declared as throw()
  • Line 2891: CAtlMap::RemoveAtPos is now declared as throw()
  • Line 3130: Minor change to comment to fix spelling mistake
  • Line 3311: CRBTree::SetNill is now declared as throw()
  • Line 3589: CRBTree::FreeNode is now declared as throw()
  • Line 3780: CRBTree::SwapNode is now declared as throw()
  • Line 3840: CRBTree::RBDeleteFixup is now declared as throw()
  • Line 4190-4193: New using statements for KINARGTYPE, VINARGTYPE, VOUTARGTYPE & CPair types
  • Line 4271: Code now uses this pointer explicitly in CRBMap::RemoveKey to make lookup be deferred until the template is actually instantiated.
  • Line 4286-4288: New using statements for KINARGTYPE, VINARGTYPE & CPair types
  • Line 4343: Code now uses this pointer explicitly in CRBMultiMap::RemoveKey to make lookup be deferred until the template is actually instantiated.
  • Line 4363 & 4378: Code now uses this pointer explicitly in CRBMultiMap::GetNextWithKey to make lookup be deferred until the template is actually instantiated.

atlcom.h

  • Line 81-82: Minor change to fixup layout of whitespace.
  • Line 966-967, 1707-1709, 1738: Update to SAL for CSecurityDescriptor::CopyACL
  • Line 2226: Code now uses this pointer explicitly in BEGIN_COM_MAP to make lookup be deferred until the template is actually instantiated
  • Line 2615: Minor change to comment to fix spelling mistake
  • Line 2912-2941: Code now uses this pointer explicitly in CComObject class to make lookup be deferred until the template is actually instantiated
  • Line 3002-3031: Code now uses this pointer explicitly in CComObjectCached class to make lookup be deferred until the template is actually instantiated
  • Line 3086-3111: Code now uses this pointer explicitly in CComObjectNoLock class to make lookup be deferred until the template is actually instantiated
  • Line 3165: Code now uses this pointer explicitly in CComObjectGlobal class to make lookup be deferred until the template is actually instantiated
  • Line 3180-3186: Code now uses this pointer explicitly in CComObjectStack class to make lookup be deferred until the template is actually instantiated
  • Line 3224-3268: Code now uses this pointer explicitly in CComObjectStackEx class to make lookup be deferred until the template is actually instantiated
  • Line 3333-3334, 3348, 3356, 3361: New typedef for _MyCComObjectRootEx in CComAggObject class
  • Line 3368-3382: Code now uses this pointer explicitly in CComAggObject class to make lookup be deferred until the template is actually instantiated
  • Line 3459-3460, 3475, 3484, 3491: New typedef for _MyCComObjectRootEx in CComPolyObject class
  • Line 3483-3512: Code now uses this pointer explicitly in CComPolyObject class to make lookup be deferred until the template is actually instantiated
  • Line 3592-3623: Code now uses this pointer explicitly in CComTearOffObject class to make lookup be deferred until the template is actually instantiated
  • Line 3592: Addition of the keyword typename in the CComTearOffObject constructor
  • Line 3632-3633, 3648, 3656, 3661: New typedef for _MyCComObjectRootEx in CComCachedTearOffObject class
  • Line 3638, 3641: Addition of the keyword typename in the CComCachedTearOffObject constructor
  • Line 3668-3681: Code now uses this pointer explicitly in CComCachedTearOffObject class to make lookup be deferred until the template is actually instantiated
  • Line 3803-3850: Code now uses this pointer explicitly in CComClassFactory2 class to make lookup be deferred until the template is actually instantiated
  • Line 4571-4580: _ATL_EVENT_ENTRY struct declaration has been moved to these lines
  • Line 4662-4836: Code now uses this pointer explicitly in IDispEventSimpleImpl class to make lookup be deferred until the template is actually instantiated
  • Line 5036-5084: Code now uses this pointer explicitly in IDisplEventImpl class to make lookup be deferred until the template is actually instantiated
  • Line 5132: New SINK_ENTRY_INFO_P macro
  • Line 5134: New SINK_ENTRY_EX_P macro
  • Line 5480-5481: CComEnum class declaration has been moved here
  • Line 5483-5484: CComEnumOnSTL class declaration has been moved here
  • Line 5655: There is no default for the ThreadModel template parameter for the CComEnum class now.
  • Line 5786: There is no default for the ThreadModel template parameter for the CComEnumOnSTL class now.
  • Line 5825: Addition of the keyword typename for the iter local variable in the ICollectionOnSTLImpl::Get_Item method
  • Line 5966-5967: New CONNECTION_POINT_ENTRY_P macro
  • Line 6311: Code now uses this pointer explicitly in IConnectionPointImpl class to make lookup be deferred until the template is actually instantiated

atlcomcli.h

  • Line 8: Minor change to fixup layout of whitespace.
  • Line 228: CComPtrBase::IsEqualObject is now longer declared inline
  • Line 329-514, 586-600: Code now uses this pointer explicitly in CComPtr class to make lookup be deferred until the template is actually instantiated
  • Line 625-687: Code now uses this pointer explicitly in CComQIPtr class to make lookup be deferred until the template is actually instantiated

ATLComTime.h

  • Line 1095: COleDateTime::COleDateTime(const DBTIMESTAMP&) is now declared as throw().
  • Line 1110: COleDateTime::GetAsDBTIMESTAMP is now declared as throw().

atlctl.h

  • Line 95: Minor change to fixup layout of whitespace.
  • Line 1592: Code now uses this pointer explicitly in CComControl class to make lookup be deferred until the template is actually instantiated
  • Line 1671-2064: Code now uses this pointer explicitly in CComCompositeControl class to make lookup be deferred until the template is actually instantiated
  • Line 2173: Addition of the keyword typename in the IQuickActivateImpl::QuickActivate method

atldb.h

  • Line 1658: Addition of the keyword typename in the IDBInitialize::Uninitialize method
  • Line 1681: Addition of the keyword typename in the IDBInitialize::Initialize method
  • Line 2141: Minor change to comment to fix spelling mistake
  • Line 2698: Minor change to comment to fix spelling mistake
  • Line 4910-4986: Code now uses this pointer explicitly in IDBPropertiesImpl class to make lookup be deferred until the template is actually instantiated
  • Line 4965, 4977, 5186, 5199: Code now uses CUtlPropsBase::EnumUPropSetFlags:: scoping for UPROPSET_USERINIT define
  • Line 5000: Addition of the keyword typename in the IDBPropertiesImpl::GetPropertyInfo method
  • Line 5095: Addition of the keyword typename in the IDBPropertiesImpl::SetProperties method
  • Line 6053-6098: Code now uses this pointer explicitly in ICommandPropertiesImpl class to make lookup be deferred until the template is actually instantiated
  • Line 6113: Code now uses CUtlPropsBase:: scoping when calling SetPropertiesArgChk method
  • Line 6116: Minor change to comment to fix spelling mistake
  • Line 6275-6280: Addition of the keyword typename in the ICommandImpl::CreateRowset method
  • Line 6381: Addition of the keyword typename in the ICommandTextImpl::GetCommandText method
  • Line 6424: Addition of the keyword typename in the ICommandTextImpl::SetCommandText method
  • Line 6499-6500: Code now uses this pointer explicitly in ISessionPropertiesImpl class to make lookup be deferred until the template is actually instantiated
  • Line 6554: Code now uses CUtlPropsBase:: scoping when calling SetPropertiesArgChk method
  • Line 6558: Minor change to comment to fix spelling mistake
  • Line 6787-6972: Code now uses this pointer explicitly in IAccessorImpl class to make lookup be deferred until the template is actually instantiated
  • Line 6913: Addition of the keyword typename in the IAccessorImpl::CreateAccessor method
  • Line 6917: Minor change fix spelling mistake for TRACE statement text
  • Line 6943: Minor change to comment to fix spelling mistake
  • Line 7045: Addition of the keyword typename in the IAccessorImpl::ReleaseAccessor method
  • Line 7276, 7329: Addition of the keyword typename in the TransferData method
  • Line 7932, 8106: Addition of the keyword typename in the IRowsetChangeImpl::DeleteRows method
  • Line 8098: Minor change to comment to fix spelling mistake
  • Line 8185: Addition of the keyword typename in the IRowsetChangeImpl::SetData method
  • Line 8237, 8270, 8294, 8353, 8362, 8444: Addition of the keyword typename in the IRowsetChangeImpl::InsertRow method
  • Line 8496: Addition of the keyword typename in the IRowsetImpl destructor method
  • Line 8519, 8535, 8617: Addition of the keyword typename in the IRowsetImpl::RefRows method
  • Line 8691: Addition of the keyword typename in the IRowsetImpl::GetDataHelper method
  • Line 8728: Addition of the keyword typename in the IRowsetImpl::CreateRow method
  • Line 8787, 8820, 8850, 8876, 8898, 8980, 9000: Addition of the keyword typename in the IRowsetImpl::GetNextRowsSkipDeleted method
  • Line 9125: Addition of the keyword typename in the IRowsetImpl::GetNextRows method
  • Line 9382: Addition of the keyword typename in the IRowsetImpl::RestartPosition method
  • Line 9541: Addition of the keyword typename in the IRowsetLocateImpl::GetRowsAt method
  • Line 9565-9745: Code now uses this pointer explicitly in IRowsetLocateImpl class to make lookup be deferred until the template is actually instantiated
  • Line 9678: Addition of the keyword typename in the IRowsetLocateImpl::GetRowsByBookmark method
  • Line 9891, 9895: Addition of the keyword typename in the IRowsetIdentity::IsSameRow method
  • Line 9970-9981: Code now uses this pointer explicitly in IObjectWithSiteSessionImpl class to make lookup be deferred until the template is actually instantiated
  • Line 10005-100017: Code now uses this pointer explicitly in IRowsetCreatorImpl class to make lookup be deferred until the template is actually instantiated
  • Line 10076-100077: Code now uses this pointer explicitly in IRowsetInfoImpl class to make lookup be deferred until the template is actually instantiated
  • Line 10081: Minor change to comment to fix spelling mistake
  • Line 10171: Addition of the keyword typename in the IRowsetInfoImpl::GetSpecification method
  • Line 10283-10498: Code now uses this pointer explicitly in IRowsetNotifyCP class to make lookup be deferred until the template is actually instantiated
  • Line 10661: Code now uses this pointer explicitly in CRowsetImpl class to make lookup be deferred until the template is actually instantiated
  • Line 10707: Code now uses this pointer explicitly in CSchemaRowsetImpl class to make lookup be deferred until the template is actually instantiated
  • Line 11421: Addition of the keyword typename in the IRowsetUpdateImpl::GetOriginalData method
  • Line 11585, 11647: Addition of the keyword typename in the IRowsetUpdateImpl::GetPendingRows method
  • Line 11747: Addition of the keyword typename in the IRowsetUpdateImpl::Undo method
  • Line 11776: Minor change to comment to fix spelling mistake
  • Line 11881, 11983: Addition of the keyword typename in the IRowsetUpdateImpl::Undo method
  • Line 12141: Minor change to comment to fix spelling mistake
  • Line 12242, 12381, 12542: Addition of the keyword typename in the IRowsetUpdateImpl::Update method

atldbcli.h

  • Line 290, 334: Minor update to the text of a comment
  • Line 1232: Minor change to comment to fix spelling mistake
  • Line 2693: Minor change to comment to fix spelling mistake
  • Line 2988: Minor change to comment to fix spelling mistake
  • Line 3188: Fix for CDynamicAccessor::strcpyT method returning a value when it is declared as returning void
  • Line 3250: Minor change to comment to fix spelling mistake
  • Line 3777: Minor change to comment to fix spelling mistake
  • Line 4912-6116: CRowset, CBulkRowset, CVBufHelper, CVirtualBuffer & CArrayRowset classes are now declared here
  • Line 6149-6208: Code now uses this pointer explicitly in CAccessorRowset class to make lookup be deferred until the template is actually instantiated
  • Line 6564: Minor change to comment to fix spelling mistake
  • Line 6794: Minor change to comment to fix spelling mistake
  • Line 7104-7112: Code now uses this pointer explicitly in CTable class to make lookup be deferred until the template is actually instantiated
  • Line 7385-7521: Code now uses this pointer explicitly in CCommand class to make lookup be deferred until the template is actually instantiated

atldbschi.h

  • Line 43: Minor change to fixup layout of whitespace
  • Line 102-104: Code now uses this pointer explicitly in CSchemaRowset class to make lookup be deferred until the template is actually instantiated
  • Line 132-190: Code now uses this pointer explicitly in CRestrictions class to make lookup be deferred until the template is actually instantiated

atldef.h

  • Line 91: #ifndef RC_INVOKED line has been moved to this line to cover more code
  • Line 94: Minor change to a comment.
  • Line 603-607: #ifndef RC_INVOKED line has been added to cover code here

atlexcept.h

  • Line 91: Minor change to comment to fix spelling mistake
  • Line 94: AtlThrowImpl is now declared as __declspec(noreturn)
  • Line 112: AtlThrowLastWin32 is now declared as __declspec(noreturn)

atlhost.h

  • Line 138: Minor change to fixup layout of whitespace
  • Line 1080: Minor change to comment to fix spelling mistake (if you are using American English!)
  • Line 2580: Minor change to comment to fix spelling mistake. Unfortunately the fix introduces another spelling mistake!
  • Line 2581: Minor change to comment to fix spelling mistake
  • Line 2584: Minor change to comment to fix spelling mistake
  • Line 2723: Addition of the keyword typename in the AtlAxDialogCreateT method

atlface.h

  • Line 122: Removal of MIDL_user_allocate and MIDL_user_free function declarations

atlimage.h

  • Line 37: Compiler errors 4263 & 4264 are now disabled in this module

atlsafe.h

  • Line 91: Minor change to fixup layout of whitespace
  • Line 335, 350: Addition of the keyword typename in the CComSafeArray::GetAt methods

atlsocket.h

  • Line 78: The first override of CSocketAddr:FindAddr is now declared as throw(). All the other Find* methods in this class were already declared as throw().
  • Line 110: Minor change to comment to fix spelling mistake

atlstr.h

  • Line 102: Minor change to fixup layout of whitespace

atlime.h

  • Line 634-636: Minor change to fixup layout of whitespace
  • Line 656: CTime::GetYear is now declared as throw().
  • Line 665: CTime::GetMonth is now declared as throw().
  • Line 674: CTime::GetDay is now declared as throw().
  • Line 683: CTime::GetHour is now declared as throw().
  • Line 692: CTime::GetMinute is now declared as throw().
  • Line 701: CTime::GetSecond is now declared as throw().
  • Line 710: CTime::GetDayOfWeek is now declared as throw().

atlutil.h

  • Line 1257: Addition of the keyword typename in the CThreadPool:: ThreadProc method
  • Line 3563: Addition of the keyword typename in the CopyCString method
  • Line 3592: Various parameters to a CStringA::Format call have been fixed in the SystemTimeToHttpDate method.

atlwin.h

  • Line 359-366: CWinTraits, CControlWinTraits, CFrameWinTraits & CMDICHildWinTraits are now declared here
  • Line 706: Minor change to comment to fix spelling mistake
  • Line 2273-2470: Code now uses this pointer explicitly in CAXWindowT class to make lookup be deferred until the template is actually instantiated
  • Line 2517-2637: Code now uses this pointer explicitly in CAXWindow2T class to make lookup be deferred until the template is actually instantiated
  • Line 2875: Code now uses this pointer explicitly in FORWARD_NOTIFICATIONS macro to make lookup be deferred until the template is actually instantiated
  • Line 2883: Code now uses this pointer explicitly in REFLECT_NOTIFICATIONS macro to make lookup be deferred until the template is actually instantiated
  • Line 2889: Code now uses this pointer explicitly in DEFAULT_REFLECTION_HANDLER macro to make lookup be deferred until the template is actually instantiated
  • Line 3141 There is no longer default values for the dwStyle and dwExStyle template parameters for the CWinTraits class
  • Line 3192-3317: Code now uses this pointer explicitly in CWindowImplRoot class to make lookup be deferred until the template is actually instantiated
  • Line 3443-3645: Code now uses this pointer explicitly in CWindowsImplBaseT class to make lookup be deferred until the template is actually instantiated
  • Line 3547, 3550, 3555: Code now uses CWindowImplRoot<TBase>:: scoping in CWindowImplBaseT::WindowsProc method
  • Line 3672-3673: Code now uses this pointer explicitly in CWindowImpl class to make lookup be deferred until the template is actually instantiated
  • Line 3734: Code now uses this pointer explicitly in CWindowWithReflectorImpl class to make lookup be deferred until the template is actually instantiated
  • Line 3780-3828: Code now uses this pointer explicitly in CDialogImplBaseT class to make lookup be deferred until the template is actually instantiated
  • Line 3913, 3923, 3931: Code now uses CWindowImplRoot<TBase>:: scoping in CDialogImplBaseT::DialogProc method
  • Line 3958-4028: Code now uses this pointer explicitly in CDialogImpl class to make lookup be deferred until the template is actually instantiated
  • Line 4073-4355: Code now uses this pointer explicitly in CAxDialogImpl class to make lookup be deferred until the template is actually instantiated
  • Line 4196: Minor change to comment to fix spelling mistake
  • Line 4509-4795: Code now uses this pointer explicitly in CContainedWindowT class to make lookup be deferred until the template is actually instantiated
  • Line 5268, 5271, 5301: Addition of the keyword typename in the AtlModuleRegisterWndClassInfoT function

cstringt.h

    • Line 106, 107: Minor change to fixup layout of whitespace
    • Line 1180-2374: Code now uses this pointer explicitly in CStringT class to make lookup be deferred until the template is actually instantiated
    • Line 2265: Code now uses CThisSimpleString:: scoping in CStringT::FormatV method
    • Line 2279: Code now uses CThisSimpleString:: scoping in CStringT::AllocSysString method
    • Line 2291: Code now uses CThisSimpleString:: scoping in CStringT::SetSysString method
    • Line 2386, 2397, 2408, 2426, 2438, 2451, 2463: Code now uses CThisSimpleString:: scoping in CStringT::operator+ method
    • Line 3016, 3020, 3032, 3038, 3044, 3050, 3056, 3062: New typedef for MyStrTraits in CFixedStringT class
    • Line 3069: Code now uses this pointer explicitly in CFixedStringT class to make lookup be deferred until the template is actually instantiated
    • Line 3176: Addition of the keyword typename in the CStringElementTraits:: Hash method

 

What this means is that in VC 2017 there is no new functionality which has been added to ATL or MFC, only C++ compliance changes, spelling mistake fixups and general bug fixes.

I plan to produce a follow-up blog post where I post the details of the MFC source code diff of VS 2017 compared to VS 2015. Note that since ATL is a header only template library all changes made to ATL are already covered in this blog post article. I would expect most of the MFC source code changes to be similar to the differences as described above along with the usual list of additional bug fixes.

Hopefully this review was useful for those developers thinking of migrating their large ATL / MFC code base to the latest version of Visual Studio. Happy coding.

Categories: Programming

Changes in the Windows v10.0.14393 SDK compared to Windows v10.0.10240 SDK (Part Two)

September 11, 2016 Comments off

This is a follow up to the first part of my blog post which compares the original Windows 10 SDK (v10.0.10240) and the v10.0.14393 SDK which corresponds to Windows 10 version 1607 aka Windows 10 Anniversary Update. This part of the blog post will concentrate on the “um” folder differences.

Ok, let’s dive into the changes:

· A lot of the header files have reworked references to the concept of SDK Family and Partitions which segregate the APIs available from the SDK header files as being available on certain Families e.g. Windows Phone, Windows Desktop, Window Server, WinRT etc.

· Some of the header files have been updated to keep up to date with the latest SAL annotation improvements.

· Some of the changes in the new SDK reference the pre-processor value of NTDDI_WIN10_RS1 for of NTDDI_VERSION. This corresponds to Windows 10 codename “Redstone 1” aka Windows 10 version 1607 aka Windows 10 Build 14393.

· A lot of the IDL generated header files have been modified as a result of being run by a new v8.01.0618 of the MIDL compiler instead of v8.00.0613 which was used with v10.0.10240 of the SDK.

· A good few of the header files which have been removed were from the Windows Phone codebase for Windows. This is probably due to the ongoing merging of the Desktop and Mobile codebases for Windows 10.

· alljoyn_c\AboutData.h, AboutDataListener.h, AboutIconObj.h, AboutIconProxy.h, AboutListener.h, AboutObj.h, AboutObjectDescription.h, BusObject.h, KeyStoreListener.h & Message.h: Minor change to some comments

· alljoyn_c\AboutIcon.h: new alljoyn_abouticon_getcontent & alljoyn_abouticon_geturl APIs.

· alljoyn_c\AjAPI.h: New definition for QCC_ASSERT macro

· alljoyn\ApplicationStateListener.h, AutoPinger.h, BusAttachment.h, InterfaceDescription.h, PermissionConfigurationListener.h, PermissionConfigurator.h & SecurityApplicationProxy.h: Various New APIs for Alljoyn. See http://en.wikipedia.org/wiki/AllJoyn for further details

· alljoyn\Session.h: Minor update to ALLJOYN_SESSION_PORT_ANY macro

· alljoyn\Status.h: Various new ER_* enum values

· mincore\*: This folder and nine header files has been removed

· minwin\*: This folder and forty-six files has been removed

· nfc\1.0\*: This folder and three header files has been removed

· Nokia\*: This folder and one header file has been removed

· pos\1.1\*: This folder and two header files has been removed

· qcc\windows\mapping.h: Part of the AllJoyn header files. Minor changes to integrate with the VC C++ runtime.

· qcc\windows\platform_types.h: New PRIuSIZET, PRIiSIZET, AJ_PSTR & AJ_PCSTR defines and typedefs.

· sensors\1.1\*: This folder and three header files has been removed.

· ucm\1.0\*: This folder and six header files has been removed.

· winsqlite\winsqlite3.h & winsqlite3ext.h: These two header files are for SQLite inclusion in Windows. This was first introduced in Windows 10 Version 1511. v3.12.2 is now shipped instead of the original v3.8.8.3 shipped with Windows 10 Version 1511. This updated header file will fix the issue raised by my https://naughter.wordpress.com/2016/03/25/sqlitewrappers-v1-05/ blog post article about inclusion of “WinSQLite” in SQLiteWrappers. Hopefully I will get some time to verify that SQLiteWrappers works correctly with this new version of “WinSQLite”.

· wrl\*: This folder and one header file has been removed.

· AccCtrl.h: New SE_REGISTRY_WOW64_64KEY enum value

· accountsettingspaneinterop.h/idl: New IAccountsSettingsPaneInterop interface.

· amsi.h\idl: New AMSI_UAC_REQUEST_TYPE_PACKAGED_APP enum value. New AMSI_UAC_REQUEST_PACKAGED_APP_INFO struct. AMSI_UAC_REQUEST_CONTEXT struct has a new member.

· ApplicationActivation.h: This header file has been removed.

· ApplicationActivationClient.h: This header file has been removed.

· apmanifestschema.xsd: This file has been removed.

· appxpackaging.h\idl: New IAppxManifestReader4, IAppxManifestOptionalPackageInfo interfaces

· asyncinfo.idl: This idl header file has been removed.

· atlthunk.h: A new Header file which implements ATL thunks without writable executable memory?

· audioenginebaseapo.h\idl: New PKEY_FX_Offload_StreamEffectClsid, PKEY_FX_Offload_ModeEffectClsid, PKEY_SFX_Offload_ProcessingModes_Supported_For_Streaming & PKEY_MFX_Offload_ProcessingModes_Supported_For_Streaming defines.

· AudioSessionTypes.h: New AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY & AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM defines.

· AutoDiscovery.idl: This idl header file has been removed.

· basetsd.idl: This idl header file has been removed.

· bits2_5.idl: The type library for BackgroundCopyManager2_5 has been updated to mention the IBackgroundCopyFile2 & IBackgroundCopyJob3 interfaces.

· bits3_0.h\idl: The type library for BackgroundCopyManager3_0 has been updated to mention the IBackgroundCopyCallback2, IBackgroundCopyFile3, BackgroundCopyJobHttpOptions, IBitsPeer, IBitsPeerCacheAdministration, IBitsPeerCacheRecord, IEnumBitsPeerCacheRecords & IEnumBitsPeers interfaces.

· bits4_0.h\idl: The type library for BackgroundCopyManager4_0 has been updated to mention the IBackgroundCopyCallback2, IBackgroundCopyFile4, IBackgroundCopyJob4, BackgroundCopyJobHttpOptions, IBitsPeer, IBitsPeerCacheAdministration, IBitsPeerCacheRecord, IBitsTokenOptions, IEnumBitsPeerCacheRecords & IEnumBitsPeers interfaces.

· bits5_0.h\idl: The type library for BackgroundCopyManager5_0 has been updated to mention the IBackgroundCopyCallback2, IBackgroundCopyFile5, IBackgroundCopyJob5, BackgroundCopyJobHttpOptions, IBitsPeer, IBitsPeerCacheAdministration, IBitsPeerCacheRecord, IBitsTokenOptions, IEnumBitsPeerCacheRecords & IEnumBitsPeers interfaces.

· BitsMsg.h: New BG_E_WATCHDOG_TIMEOUT define

· blockmapschema.xsd: Has been removed.

· BtConnectionManager.h\idl: Have been removed.

· bthledef.h: Various new defines to support additional Bluetooth Low Energy functionality such as new types of devices.

· CastingInterop.h\idl: New ICastingEventHandler, ICastingController & ICastingSourceInfo interfaces. These interfaces may be related to the new Casting functionality in Windows 10 Anniversary Update which allow you to mirror your Android screen to Windows 10.

· cbclient.h: This header file has been removed.

· celib.h: New MAX_DECODE_BUFFER_SIZE define. New ceGetBStrBuffer, ceAllocBStrBlob, ceDecodeCertString, ceEncodeCertString & ceDispatchClearErrorInfo APIs. ceFreeBstr API has been removed.

· CertAdm.h: New wszOCSPCOMMONPROP_MAXNUMOFREQUESTENTRIES & wszOCSPREVPROP_SERIALNUMBERSDIRS defines.

· certca.h: Has been removed.

· CertEnc.h: New ICertEncodeStringArray2, ICertEncodeLongArray2, ICertEncodeDateArray2, ICertEncodeCRLDistInfo2, ICertEncodeAltName2 & ICertEncodeBitString2 APIs.

· certenroll.h: New XCN_CERT_SERIAL_CHAIN_PROP_ID, XCN_CERT_KEY_CLASSIFICATION_PROP_ID, XCN_CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID & XCN_CERT_NONCOMPLIANT_ROOT_URL_PROP_ID enum values.

· CertSrv.h: New wszREGKEYDISALLOWEDSCEPALGS & wszREGALLPROVIDERS defines.

· cfgdata.h: Has been removed.

· cfgmfr2.h: Has been removed.

· cfgmgr2err.h: Has been removed.

· cfgmgr2prop.h: Has been removed.

· chakrart.h: Various new enum values & typedefs. These probably reference new features in the Edge Browser and its JavaScript engine.

· ClusApi.h: Has been reworked quite a bit to support new clustering functionality in Windows Server 2016.

· CmCspWwanRpcProcs.h: Has been removed.

· cmgrcsp.h: Has been removed.

· cmgruri.h: Has been removed.

· CmOemUtil.h: has been removed.

· codecapi.h: New eAVEncVP9VProfile enum

· comdef.h: Has been removed.

· comip.h: Has been removed.

· comlite.h: QzInitialize define has been replaced with QzInitializeEx define.

· CommCtrl.h: The DPA/DSA routines previously in this header file have been refactored into a new dpa_dsa.h header file.

· commctrl.inl: The DPA/DSA routines previously in this header file have been refactored into a new dpa_dsa.inl file. The Str_SetPtrW define has been removed.

· commdlg.h: New FRM_FIRST, FRM_LAST, FRM_SETOPERATIONRESULTCURRENTLY, CommDlg_FindReplace_SendResult, FRM_SETOPERATIONRESULTTEXT & CommDlg_FindReplace_SendCustomResult defines.

· common.ver: Has been removed.

· CompPkgSup.h: New RequireNetworkDuringMediaTaskCompletion & GetNetworkRequestCount APIs.

· comutil.h: Has been removed.

· ContactAggregation.h\idl: New IContactAggregationManager, IContactAggregationContact, IContactAggregationContactCollection, IContactAggregationAggregate, IContactAggregationAggregateCollection, IContactAggregationGroup, IContactAggregationGroupCollection, IContactAggregationLink, IContactAggregationLinkCollection, IContactAggregationServerPerson & IContactAggregationServerPersonCollection interfaces.

· cor.h: Has been removed.

· cordebug.h: Has been removed.

· CorError.h: Has been removed.

· corhdr.h: Has been removed.

· codehlpr.h: Has been removed.

· corprof.h: Has been removed.

· corpub.h: Has been removed.

· corsym.h: Has been removed.

· cper.h: Has been updated to support the UEFI v2.6 specification

· cperguid.h: New SEA_NOTIFY_TYPE_GUID, SEI_NOTIFY_TYPE_GUID, PEI_NOTIFY_TYPE_GUID & ARM_PROCESSOR_ERROR_SECTION_GUID defines.

· credentialprovider.h\idl: ICredentialProviderCredential3, ICredentialProviderCredentialEvents3 & ICredentialProviderUserArray2 interfaces have been removed. New CPCFO_SHOW_ENGLISH_KEYBOARD enum value.

· credssp.h: New CredsspCredEx enum value. New CREDSSP_CRED_EX struct.

· d2d1_3.h: New D2D1_SPRITE_OPTIONS, D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION, DWRITE_GLYPH_IMAGE_FORMATS enums. New ID2D1SpriteBatch, ID2D1DeviceContext3, ID2D1Device3, ID2D1Factory4, ID2D1CommandSink3, ID2D1SvgGlyphStyle, ID2D1DeviceContext4, ID2D1Device4 & ID2D1Factory5 interfaces.

· d2d1_3helper.h: New InfiniteRectU method.

· d2d1effects_2.h: New CLSID_D2D1Opacity, CLSID_D2D1AlphaMask, CLSID_D2D1CrossFade & CLSID_D2D1Tint defines. New D2D1_OPACITY_PROP, D2D1_CROSSFADE_PROP & D2D1_TINT_PROP enums.

· d2dbasetypes.h: Some definitions have been refactored into dcommon.h.

· d3d10shader.h: New D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST, D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 & D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 defines.

· d3d10TokenizedProgramFormat.hpp: Has been removed.

· d3d10umddi.h: Has been removed.

· d3d11.h\idl: New D3D11_FEATURE_D3D11_OPTIONS4 & D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 enum values. New D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, D3D11_DECODER_PROFILE_VP8_VLD defines.

· d3d11_4.h\idl: New interfaces for D3D v11.4.

· d3d11sdklayers.h\idl: Various new D3D11_MESSAGE_ID_* enum values.

· d3d11TokenizedProgramFormat.hpp: Has been removed.

· d3d12.h\idl: Various new defines, enums & interfaces for D3D 12.

· d3d12sdklayers.h\idl: New ID3D12Debug1, ID3D12DebugDevice1 & ID3D12DebugCommandList1 interfaces. Mew D3D12_MESSAGE_ID_* enum values.

· d3d12TokenizedProgramFormat.hpp: Has been removed.

· d3d12umddi.h: Has been removed.

· d3dcommon.h\idl: New ID3DDestructionNotifier interface.

· d3dcompiler.h: New D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST, D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 & D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 defines.

· d3dumddi.h: Has been removed.

· D3DWrapper.h: Has been removed.

· d3dx10.h: Has been removed

· d3dx10async.h: Has been removed.

· d3dx10core.h: Has been removed.

· d3dx10math.h\inl: Has been removed.

· d3dx10mesh.h: Has been removed.

· d3dx10tex.h: Has been removed.

· d3dx9.h: Has been removed.

· d3dx9anim.h: Has been removed.

· d3dx9core.h: Has been removed.

· d3dx9effect.h: Has been removed.

· d3dx9math.h\inl: Has been removed.

· d3dx9mesh.h: Has been removed.

· d3dx9shader.h: Has been removed.

· d3dx9shape.h: Has been removed.

· d3dx9tex.h: Has been removed.

· d3dx9xof.h: Has been removed.

· DbgEng.h: New IDebugAdvanced4, IDebugPlmClient & IDebugPlmClient2 interfaces. New GetSymbolInformationWideEx define.

· DbgHelp.h: New CBA_CHECK_ARM_MACHINE_THUMB_TYPE_OVERRIDE, FLAG_OVERRIDE_ARM_MACHINE_TYPE, SSRVOPT_URI_FILTER, SSRVOPT_URI_TIERS, SSRVURI_NORMAL, SSRVURI_COMPRESSED, SSRVURI_FILEPTR & SSRVURI_ALL defines.

· dcommon.h: Some definitions have been refactored from d2dbasetypes.h.

· dcomp.h: New DCompositionAttachMouseWheelToHwnd, DCompositionAttachMouseDragToHwnd APIs. New IDCompositionVisual3 interface.

· delayimp.h: Has been removed.

· devicecategories.h: New DEVICEDISPLAY_CATEGORY_POS_BARCODESCANNER, DEVICEDISPLAY_CATEGORY_POS_CASHDRAWER, DEVICEDISPLAY_CATEGORY_POS_MAGNETICSTRIPEREADER & DEVICEDISPLAY_CATEGORY_POS_PRINTER defines.

· devpropdef.h: Has been removed.

· dhcpsapi.h: New DhcpFailoverForce enum value.

· directmanipulation.h\idl: New IDirectManipulationCompositor2 interface.

· DirectXCollision.h\idl: New XM_CONSTEXPR define usage.

· DirectXMath.h: New XM_CTOR_DEFAULT, XM_CONSTEXPR, XM_DEPRECATED & _XM_* _INTRINSICS_, XM_SFENCE, XM_PERMUTE_PS, g_XMMaskXY, g_UByteMax, g_ByteMin, g_ByteMax, g_ShortMin, g_ShortMax & g_UShortMax defines.

· DirectXMathMisc.inl: Various changes to support new SSE4 & AVX intrinsics.

· DirectXMathVector.inl: Various changes to support new SSE4 & AVX intrinsics.

· DirectXPackedVector.h: New XM_CONSTEXPTR, XM_CTOR_DEFAULT & XM_DEPRECATED define usage.

· DirectXPackedVector.inl: Various changes to support new F16C, ARM_NEON & SSE intrinsics.

· DocObj.h\idl: New OLECMDID_SHOWMESSAGE_BLOCKABLE & OLECMDID_SHOWTASKDLG_BLOCKABLE enum values.

· dpa_dsa.h\inl: The DPA/DSA routines previously in CommCtrl.h have been refactored into this header file.

· drmexternals.h\idl: Has been removed.

· dslisten.idl: Has been removed.

· dwmapi.h: Bug fix for copy and paste error in the declaration of MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF.

· dwrite.h: DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION enum value has changed to DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION. New DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION & DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION enum values. DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION enum value has changed to DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION.

· dwrite1_3.h: New DWRITE_GLYPH_IMAGE_FORMATS enum. New DWRITE_COLOR_GLYPH_RUN1 & DWRITE_GLYPH_IMAGE_DATA structs. New IDWriteColorGlyphRunEnumerator1, IDWriteFontFace4 & IDWriteFactory4 interfaces.

· dxfile.h: Has been removed.

· dxgiddi.h: Various new DXGI_DDI_MULTIPLANE_OVERLAY_FEATURE* defines. New DXGI_DDI_MULTIPLANE_OVERLAY_FLAG_FULLSCREEN_POST_COMPOSITION enum value. New DXGI_DDI_ARG_OFFERRESOURCES1, DXGI_DDI_ARG_RECLAIMRESOURCES1 & DXGI1_5_DDI_BASE_FUNCTIONS structs. These are to support WDM v2.11

· DXGIMessages.h: Various new DXGI_MSG_* defines.

· dxhelp3.h: Has been removed.

· dxtmsft.h\idl: Has been removed.

· dxtmsft3guid.h: Has been removed.

· dxva.h: New DXVA_ModeVP9_VLD_Profile0, DXVA_ModeVP9_VLD_10bit_Profile2 & DXVA_ModeVP8_VLD defines. New DXVA_Status_HEVC, DXVA_PicEntry_VPx, DXVA_segmentation_VP9, DXVA_PicParams_VP9, DXVA_PicParams_VP8 & DXVA_Status_VPx structs.

· dxva2api.h\idl: New DXVA2_ModeVC1_D2010, DXVA2_ModeVP9_VLD_Profile0, DXVA2_ModeVP9_VLD_10bit_Profile2 & DXVA2_ModeVP8_VLD defines.

· EapHostError.h: New EAP_E_SIM_NOT_VALID, GUID_EapHost_Cause_SimNotValid & GUID_EapHost_Repair_No_ValidSim_Found defines.

· Eapmethodpeerapis.h: New _NGCTICKETCONTEXT_, NCRYPT_PIN_CACHE_PIN_BYTE_LENGTH, NGC_TICKET_PROPERTY_STRING_LENGTH & NCRYPT_KEY_HANDLE defines. New NgcTicketContext struct. New members in EapPeerMethodResult struct.

· eappapis.h: EapHostPeerGetDataToUnplumbCredentials API has updated parameters.

· eaptypes.h: New GUID_EapHost_Cause_SimNotValid & GUID_EapHost_Repair_No_ValidSim_Found defines.

· edpwin32.h: New header file to support new Enterprise Data Protection APIs.

· efswrtinterop.h\idl: New interfaces to support new Enterprise Data Protection APIs.

· enclaveapi.h: New header file to support new concept of Process Enclaves. This is initial Win32 API support for Intel Software Guard Extensions.

· ErrorRep.h: New frrvErrNoMemory & frrvErrDoubleFault enum values.

· esent.h: New JET_THREADSTATS3 struct. Value of JET_paramMaxValueInvalid define has changed. JET_bitRetrieveLongId & JET_bitRetrieveLongValueRefCount defines have been removed. New JET_filetypeFlushMap, JET_errDisabledFunctionality, JET_errUnloadableOSFunctionality, wrnBTNotVisibleRejected, wrnBTNotVisibleAccumulated & JET_err* defines.

· esent_x.h: Has been removed.

· eventtoken.h\idl: Have been removed.

· ExDisp.h\idl: New IShellUIHelper8 interface.

· ExDispid.h: New DISPID_ISMETAREFERRERAVAILABLE, DISPID_GETCVLISTDATA, DISPID_GETCVLISTLOCALDATA, DISPID_GETEMIELISTDATA, DISPID_GETEMIELISTLOCALDATA, DISPID_OPENFAVORITESPANE & DISPID_OPENFAVORITESSETTINGS defines.

· fci.h: Some functionality in this header file has been refactored into a new fdi_fci_types.h header file.

· fdi_fci_types.h: New header file which contains refactored code from fci.h.

· featurestagingapi.h: New header file which contains new GetFeatureEnabledStat, RecordFeatureUsage, SubscribeFeatureStateChangeNotification & UnsubscribeFeatureStateChangeNotification APIs. I was unable to find any information about these new APIs.

· fileopen.dlg: A new “psh5” PUSHBUTTON has been added to the NEWFILEOPENV2ORD & NEWFILEOPENORD dialog resources.

· FindText.dlg: A new “stc1” static has been added to the FINDDLGORD & REPLACEDLGORD dialog resources.

· functiondiscoveryapis.h: New DEVICEDISPLAY_DISCOVERYMETHOD_INFRA define.

· fusion.h: Has been removed.

· fwpmu.h: New FWPM_CONDITION_ALE_EFFECTIVE_NAME define. New FwpmNetEventEnum3 & FwpmNetEventSubscribe2 APIs.

· fwpsu.h: New FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_EFFECTIVE_NAME, InetDiscardSynAckWithFastopenCookieRequest, IpDiscardUnsupportedOffload, IpDiscardRoutingFailure, IpDiscardAncillaryDataFailure, IpDiscardRawDataFailure & IpDiscardSessionStateFailure enum values.

· gamingtcui.h: New KnownGamingPrivileges enum. New CheckGamingPrivilegeWithUI, CheckGamingPrivilegeSilently, ShowGameInviteUIForUser, ShowPlayerPickerUIForUser, ShowProfileCardUIForUser, ShowChangeFriendRelationshipUIForUser, ShowTitleAchievementsUIForUser, CheckGamingPrivilegeWithUIForUser & CheckGamingPrivilegeSilentlyForUser APIs. These seem to be internal APIs called Title Callable UI only meant for Xbox.

· gchost.h: Has been removed.

· gcroot.h: Has been removed.

· gdiplusfontcollection.h: Changes to the implementation of FontCollection::GetFamilies.

· GetDeviceUniqueId.h: Has been removed.

· GPIOButtonInterface.h: Has been removed.

· GPIOButtonTypes.h: Has been removed.

· hdcpumdddi.h: Has been removed.

· hlinkez.h: Has been removed.

· hotspotoffloadplugin.h: Has been removed.

· http.h: New HTTP_LOG_FIELD_STREAM_ID define.

· ia64reg.h: Has been removed.

· iaguid.h: Has been removed.

· iceefilegen.h: Has been removed.

· IE12Plugin.h: New IScrollableContextMenu2 & IActiveXUIHandlerSite3 interfaces.

· ienamespacecontrol.idl: Has been removed.

· ImageHlp.h: New CBA_CHECK_ARM_MACHINE_THUMB_TYPE_OVERRIDE, FLAG_OVERRIDE_ARM_MACHINE_TYPE, SSRVOPT_URI_FILTER, SSRVOPT_URI_TIERS, SSRVURI_NORMAL, SSRVURI_COMPRESSED, SSRVURI_FILEPTR & SSRVURI_ALL defines.

· ime_cmodes.h: New IME_CMODE_NATIVESYMBOL define.

· InkPresenterDesktop.h\idl\i_c: New IInkCommitRequestHandler, IInkPresenterDesktop, IInkHostWorkItem & IInkDesktopHost interfaces. These new APIs are part of the new Ink APIs in Windows.

· InputDriverRawSamples.h: Has been removed.

· InputInjection.h: Has been removed.

· InputScope.h\idl: New IS_CHAT_WITHOUT_EMOJI enum value.

· InShCut.h: New IURL_INVOKECOMMAND_FL_LOG_USAGE enum value.

· isolation.h: Has been removed.

· issper16.h: Has been removed.

· ivalidator.h: Has been removed.

· ivehandler.h: Has been removed.

· jntschema.xsd: Has been removed.

· journal.h: Has been removed.

· journal_i.c: Has been removed.

· kerbcon.h: Has been removed.

· KernelCrasher.h: Has been removed.

· keyworddetectoroemadapter.h\idl: Has been removed.

· ksarm.h: Has been removed.

· kxarm.h: Has been removed.

· kxarmunw.h: Has been removed.

· kxia64.h: Has been removed.

· libloaderapi.h: New LOAD_LIBRARY_SAFE_CURRENT_DIRS & LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER defines. These seem to be new flags for LoadLibraryEx. The existing EnumResourceNamesW API is now defined in this header file.

· MapiUnicodeHelp.h: Existing GetMapiDllPath API has been re-implemented as a GetMailClientRegKey and GetMapiDllPath API. New GetDefaultMailClientExePath API.

· MDMRegistration.h: Various new MENROLL_E_* defines.

· memoryapi.h: New WIN32_MEMORY_REGION_INFORMATION struct. New QueryVirtualMemoryInformation API.

· memsafe.h: Has been removed.

· mfapi.h: New MFSampleExtension_Encryption_ResumeVideoOutput, MFSampleExtension_HDCP_OptionalHeader, MFSampleExtension_HDCP_StreamID, MF_CAPTURE_METADATA_FRAME_ILLUMINATION, MFT_CATEGORY_ENCRYPTOR, MFT_ENUM_ADAPTER_LUID, D3DFMT_A2B10G10R10, D3DFMT_L8, D3DFMT_D16, D3DFMT_L16, D3DFMT_A16B16G16R16F, MFVideoFormat_L8, MFVideoFormat_L16, D3DFMT_L16, MFVideoFormat_D16, MFVideoFormat_ORAW, MFVideoFormat_A2R10G10B10, MFVideoFormat_A16B16G16R16F, MFAudioFormat_Opus, MFVideoFormat_HEVC_HDCP, MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES, MF_MT_ALPHA_MODE, MF_MT_DEPTH_MEASUREMENT, MF_MT_DEPTH_VALUE_UNIT, MF_MT_MAX_LUMINANCE_LEVEL, MF_MT_MAX_FRAME_AVERAGE_LUMINANCE_LEVEL, MF_MT_MAX_MASTERING_LUMINANCE, MF_MT_MIN_MASTERING_LUMINANCE, MF_MT_REALTIME_CONTENT, MFStreamExtension_CameraExtrinsics, MFSampleExtension_CameraExtrinsics, MFStreamExtension_PinholeCameraIntrinsics, MFSampleExtension_PinholeCameraIntrinsics & MFMediaType_Perception defines. New MFTEnum2 API. New MFFrameSourceTypes, MFDepthMeasurement enums. New MF_FLOAT2, MF_FLOAT3, MF_QUATERNION, MFCameraExtrinsic_CalibratedTransform, MFCameraExtrinsics, MFCameraIntrinsic_PinholeCameraModel, MFCameraIntrinsic_DistortionModel, MFPinholeCameraIntrinsic_IntrinsicModel & MFPinholeCameraIntrinsics structs. It looks like quite a few changes have occurred in Media Foundation.

· mfcaptureengine.h\idl: IMFCapturePhotoConfirmation interface has been removed.

· Mferror.h: Various new MF_E_* defines.

· mfgphone.h: Has been removed.

· mfgrl.h: Has been removed.

· mfidl.h\idl: IMFClockConsumer, IMFCapturePhotoConfirmation, IMFNetCrossOriginSupport & IMFMediaSource2, IMFMediaStream2, IMFSensorDevice & IMFSensorGroup interfaces have been added. New MFCONNECTOR_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A, MFCONNECTOR_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B, MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID, MF_DEVICESTREAM_FRAMESERVER_SHARED, MFSampleExtension_Spatial_CameraViewTransform, MFSampleExtension_Spatial_CameraCoordinateSystem, MFSampleExtension_Spatial_CameraProjectionTransform, CLSID_MSVPxDecoder, CLSID_MSOpusDecoder & CLSID_VideoProcessorMFT defines. Again more changes for Media Foundation.

· mfmediaengine.h\idl: New MF_MSE_VP9_SUPPORT, MF_MSE_OPUS_SUPPORT, MF_MEDIA_ENGINE_SYNCHRONOUS_CLOSE, MF_MEDIA_ENGINE_MEDIA_PLAYER_MODE, defines. New MF_MSE_VP9_SUPPORT_TYPE, MF_MSE_OPUS_SUPPORT_TYPE enums. New IMFMediaEngineTransferSource, IMFMediaEngineEMENotify, IMFMediaEngineClassFactory3, IMFMediaKeySystemAccess, IMFMediaKeySessionNotify2, IMFMediaKeys2 & IMFMediaKeySession2 interfaces. Again more changes for Media Foundation.

· Mfobjects.h\idl: New MFVideoTransFunc* & MFVideoPrimaries_* enum values. New MF_STREAM_STATE enum. Again more changes for Media Foundation.

· mftransform.h\idl: New MFT_MESSAGE_COMMAND_SET_OUTPUT_STREAM_STATE, MFT_MESSAGE_COMMAND_FLUSH_OUTPUT_STREAM & MFT_AUDIO_DECODER_DEGRADATION_INFO_ATTRIBUTE defines. New MFT_AUDIO_DECODER_DEGRADATION_REASON & MFT_AUDIO_DECODER_DEGRADATION_TYPE enums. New MFAudioDecoderDegradationInfo & MFT_STREAM_STATE_PARAM structs. Again more changes for Media Foundation.

· microsoft.diagnostics.appanalysis.h\idl: New IEtwEvent, IEtwConsumer, IEtwEventRecord, IEtwProvider, IEtwRule, IRule, IRuleTriggeredEventArgs, IRuleTriggeredEventArgsFactory & IResourceStringView interfaces. These look like Windows Runtime interfaces to Windows ETW.

· minidumpapiset.h: New MINIDUMP_PROCESS_VM_COUNTERS* defines. New MINIDUMP_PROCESS_VM_COUNTERS_2 struct.

· minschannel.h: New SECPKG_ATTR_TOKEN_BINDING & SECPKG_ATTR_CONNECTION_INFO_EX defines.

· minwinbase.h: new FileDispositionInfoEx & FileRenameInfoEx enum values.

· miracompanionddi.h: Has been removed.

· mmdeviceapi.h\idl: New PKEY_AudioEndpoint_Default_VolumeInDb define.

· ModemConfigHelperOem.h: Has been removed.

· Mprapi.h: New VPN_TS_IP_ADDRESS, MPR_VPN_TRAFFIC_SELECTOR & MPR_VPN_TRAFFIC_SELECTORS structs. New MPR_VPN_TS_TYPE enum. New member of ROUTER_IKEv2_IF_CUSTOM_CONFIG2 struct.

· mscat.h: New CRYPTCAT_ATTR_NO_AUTO_COMPAT_ENTRY define.

· MSClus.h: New HNETINTERFACEENUM, HGROUPSET, HGROUPSETENUM defines. New CLUSREG_CONDITION_KEY_EXISTS, CLUSREG_CONDITION_KEY_NOT_EXISTS, ClusGroupTypeCrossClusterOrchestrator, CLUSTER_MGMT_POINT_TYPE_CNO_ONLY, CLUSTER_OBJECT_TYPE_GROUPSET, CLUSPROP_TYPE_PARTITION_INFO_EX2, CLUSPROP_TYPE_STORAGE_DEVICE_ID_DESCRIPTOR, CLUSPROP_SYNTAX_PARTITION_INFO_EX2, CLUSPROP_SYNTAX_STORAGE_DEVICE_ID_DESCRIPTOR, CLUS_OBJECT_GROUPSET, CLCTL_*, CLUSCTL_*, CLUSPROP_PIFLAG_ENCRYPTION_ENABLED & CLUSPROP_PIFLAG_UNKNOWN enum values. New CLUS_GROUP_START_SETTING, CLUSTER_CHANGE_GROUPSET_V2 & CLUSCTL_GROUPSET_CODES enums. Has been reworked quite a bit to support new clustering functionality in Windows Server 2016.

· mscoree.h: Has been removed.

· msft_associations.mof: OperationalStatus attribute has been updated. New MSFT_StorageSubSystemToStorageHealth WMI class.

· msft_dedupproperties.mof New MOF file for MSFT_DedupProperties WMI class.

· msft_disk.mof: New MOF file for new MSFT_Disk WMI class.

· msft_fileserver.mof: New MOF file for MSFT_FileServer WMI class.

· msft_fileshare.mof: New MOF file for MSFT_FileShare WMI class.

· msft_fileshareaccesscontrolentry.mof: New MOF file for MSFT_FileShareAccessControlEntry WMI class.

· msft_filestoragetier.mof: New MOF file for MSFT_FileStorageTier WMI class.

· msft_healthaction.mof: New MOF file for MSFT_HealthAction WMI class.

· msft_healthactionevent.mof: New MOF file for MSFT_HealthActionEvent WMI class.

· msft_partition.mof: New MOF file for MSFT_Partition WMI class.

· msft_physicaldisk.mof: New VirtualDiskFootprint & AdapterSerialNumber attributes. New values for CannotPoolReason attribute. New Maintenance2, GetFirmwareInformation & UpdateFirmware methods.

· msft_replicapeer.mof: New MOF file for MSFT_ReplicaPeer WMI class.

· msft_replicationcapabilities.mof: New MOF file for MSFT_ReplicationCapabilities WMI class.

· msft_replicationgroup.mof: New MOF file for MSFT_ReplicationGroup WMI class.

· msft_replicationsettings.mof: New MOF file for MSFT_ReplicationSettings WMI class.

· msft_resiliencysetting.mof: New NumberOfGroupsMin, NumberOfGroupsMax & NumberOfGroupsDefault attributes. New SetDefaults2 method.

· msft_storagechassis.mof: New MOF file for MSFT_StorageChassis WMI class.

· msft_storagediagnoseresult.mof: New MOF file for MSFT_StorageDiagnoseResult WMI class.

· msft_storageenclosure.mof: New MOF file for MSFT_StorageEnclosure WMI class.

· msft_storagefault.mof: New MOF file for MSFT_StorageFaultEvent WMI class.

· msft_storagefaultdomain.mof: New MOF file for MSFT_StorageFaultDomain WMI class.

· msft_storagehealth.mof: New MOF file for MSFT_StorageHealth WMI class.

· msft_storagehealthreport.mof: New MOF file for MSFT_StorageHealth, MSFT_HealthRecord, MSFT_HealthRecordUInt64 & MSFT_HealthRecordReal64 WMI classes.

· msft_storagehealthsetting.mof: New MOF file for MSFT_StorageHealthSetting WMI class.

· msft_storagehealthstatuschangeevent.mof: New MOF file for MSFT_StorageHealthStatusChangeEvent WMI class.

· msft_storagejob.mof: New BytesProcessed & BytesTotal attributes.

· msft_storagenode.mof: New Manufacturer, Model & SerialNumber attributes.

· msft_storagepool.mof: New MediaTypeDefault attribute.

· msft_storagerack.mof: New MOF file for MSFT_StorageRack WMI class.

· msft_storagescaleunit.mof: New MOF file for MSFT_StorageScaleUnit WMI class.

· msft_storagesite.mof: New MOF file for MSFT_StorageSite WMI class.

· msft_storagesubsystem.mof: New SupportsFileServer, SupportsFileServerCreation, SupportsContinuouslyAvailableFileServer, SupportedFileServerProtocols, MediaTypeDefault, IncludeLiveDump & ExtendedStatus attributes. New GetActions method.

· msft_storagetier.mof: New Usage, AllocatedSize, FootprintOnPool, ProvisioningType, AllocationUnitSize, FaultDomainAwareness, ColumnIsolation, ResiliencySettingName, PhysicalDiskRedundancy, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, Interleave & ParityLayout attributes. New SetAttributes2 method.

· msft_virtualdisk.mof: ResiliencySettingName attribute has been removed. New IsTiered, AllocationUnitSize, MediaType, ColumnIsolation, ResiliencySettingName, NumberOfGroups & ParityLayout, attributes.

· msft_volume.mof: New IsDAX & ExtendedStatus attributes. New GetActions method.

· MsHtmdid.h: New DISPID_IHTMLPRIVATEWINDOW6_NAVIGATEEX3 & DISPID_IHTMLPRIVATEDOCUMENT4_GETSURFACESNAPSHOTFROMDCOMP defines. DISPID_IHTMLPRIVATEDOCUMENT4_SHOWHITTESTHEATMAP define has been removed.

· MsHTML.h: The C style COM interfaces in this header file have been removed. These changes have shrunk this header file by 125,000 lines!

· MsiDefs.h: New IPROPNAME_ARM64 define.

· msinkaut.h: New IRC_PrefersArbitraryAngle, IRC_PrefersParagraphBreaking, IRC_PrefersSegmentation, IRC_Cursive, IRC_TextPrediction, IRC_Alpha & IRC_Beta enum values.

· msnotify.idl: Has been removed.

· mssip.h: New SPC_RELAXED_PE_MARKER_CHECK, SPC_MARKER_CHECK_SKIP_SIP_INDIRECT_DATA_FLAG & SPC_MARKER_CHECK_CURRENTLY_SUPPORTED_FLAGS defines.

· MsXml6.h\idl: New XHR_PROP_SET_ENTERPRISEID define.

· named_ecc.h: Has been removed.

· namedpipeapi.h: CallNamedPipeW API is now declared in this header file.

· ncidef.h: Has been removed.

· ncrypt.h: New TPM_RSA_SRK_SEAL_KEY, NCRYPT_HMAC_SHA256_ALGORITHM, NCRYPTBUFFER_TPM_SEAL_PASSWORD, NCRYPTBUFFER_TPM_SEAL_POLICYINFO, NCRYPTBUFFER_TPM_SEAL_TICKET, NCRYPTBUFFER_TPM_SEAL_NO_DA_PROTECTION, NCRYPT_SEALING_FLAG, NCRYPT_PCP_RSA_EKPUB_PROPERTY, NCRYPT_PCP_RSA_EKCERT_PROPERTY, NCRYPT_PCP_RSA_EKNVCERT_PROPERTY, NCRYPT_PCP_ECC_EKPUB_PROPERTY, NCRYPT_PCP_ECC_EKCERT_PROPERTY, NCRYPT_PCP_ECC_EKNVCERT_PROPERTY, NCRYPT_PCP_HMAC_AUTH_POLICYREF NCRYPT_PCP_HMAC_AUTH_POLICYINFO, NCRYPT_PCP_HMAC_AUTH_NONCE, NCRYPT_PCP_HMAC_AUTH_SIGNATURE, NCRYPT_PCP_HMAC_AUTH_TICKET NCRYPT_PCP_NO_DA_PROTECTION_PROPERTY, NCRYPT_PCP_HMACVERIFICATION_KEY, NCRYPT_SCARD_NGC_KEY_NAME, NCRYPT_SCARD_NGC_KEY_NAME, NCRYPT_PIN_CACHE_FLAGS_PROPERTY, NCRYPT_PIN_CACHE_DISABLE_DPL_FLAG, NCRYPT_PIN_CACHE_CLEAR_PROPERTY, NCRYPT_PIN_CACHE_CLEAR_FOR_CALLING_PROCESS_OPTION & NCRYPT_KDF_KEY_BLOB_MAGIC, NCRYPT_KDF_KEY_BLOB defines. NCRYPT_ECC_NO_COFACTOR_MULTIPLICATION_FLAG define has been removed. New NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO struct.

· ndattributils.h Has been removed.

· netdispumdddi.h: Has been removed.

· netfw.h\idl: NetworkIsolationGetEnterpriseInfo & NetworkIsolationGetEnterpriseId APIs have been removed. PNETISO_EDP_ID_CALLBACK_FN call-back has an additional parameter.

· netfwv6.h: Has been removed.

· netiou.h: Has been removed.

· netmon.h: Has been removed.

· newdev.h: New DIIDFLAG_INSTALLCOPYINFDRIVERS define.

· NFCDriverAPI.h: Has been removed.

· nserror.h: New NS_E_WMDRM_DEPRECATED define.

· ntarm.h: Has been removed.

· ntarm_x.h: Has been removed.

· ntassert.h: Has been removed.

· ntddksec.h: Has been removed.

· NtDsAPI.h: New DS_BEHAVIOR_WIN2016 define.

· ntgdi.h: Has been removed.

· ntlsa.h: New SE_ADT_PARAMETER_ARRAY_EX & NEGOTIATE_PACKAGE_NAMES structs. New iDetailedTracking_TokenRightAdjusted, NegEnumPackageNames, NegMsgReserved1 enum values. LSA_CREDENTIAL_KEY_PACKAGE_NAME, LSA_CREDENTIAL_KEY_PACKAGE_ID, LSA_CREDENTIAL_KEY_NAME & LSA_CREDENTIAL_KEY_ROOT_KEY_ITERATIONS defines have been removed. LSA_CREDENTIAL_KEY_TYPE, LSA_CREDENTIAL_KEY & LSA_CREDENTIAL_KEY_ARRAY structs have been removed.

· NTSecAPI.h: New Audit_DetailedTracking_TokenRightAdjusted define.

· NTSecPKG.h: New SECPKG_CALL_WOWX86, SECPKG_CALL_WOWA32 defines. New LSA_REDIRECTED_LOGON_INIT, LSA_REDIRECTED_LOGON_CALLBACK, LSA_REDIRECTED_LOGON_CLEANUP_CALLBACK, LSA_REDIRECTED_LOGON_GET_LOGON_CREDS, LSA_REDIRECTED_LOGON_GET_SUPP_CREDS call-backs. New SECPKG_REDIRECTED_LOGON_BUFFER struct. New LSA_GET_APP_MODE_INFO, LSA_SET_APP_MODE_INFO, LSA_QUERY_CLIENT_REQUEST, SpGetRemoteCredGuardLogonBufferFn & SpGetRemoteCredGuardSupplementalCredsFn APIs. New LSA_QUERY_CLIENT_PRELOGON_SESSION_ID, LSA_QUERY_CLIENT_REQUEST, LSA_GET_APP_MODE_INFO, LSA_SET_APP_MODE_INFO & SECPKG_INTERFACE_VERSION_8 defines. New members in LSA_SECPKG_FUNCTION_TABLE struct.

· nxarm.h: Has been removed.

· obase.h: Has been removed.

· ObjIdl.h: New CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8 & CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9 enum values.

· ObjIdlbase.h\idl: New CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8 & CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9 enum values.

· OemRilAPITypes.h: Has been removed.

· OemTriggerHelper.h: Has been removed.

· Ole2.h New OleGetClipboardWithEnterpriseInfo API.

· oledb.h: New SE_REGISTRY_WOW64_64KEY enum value.

· oleext.h: Has been removed.

· oleidl.h\idl: New IEnterpriseDropTarget interface.

· omscript.h\idl: Has been removed.

· opmapi.h\idl: New OPM_VOS_OPM_INDIRECT_DISPLAY, OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A & OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B enum values.

· optary.idl: Has been removed.

· pbagex.idl: Has been removed.

· perflib.h: A New PerfLib v2 Consumer side API has been added to this header file. APIs added include: PerfEnumerateCounterSet, PerfEnumerateCounterSetInstances, PerfQueryCounterSetRegistrationInfo, PerfOpenQueryHandle, PerfCloseQueryHandle, PerfQueryCounterInfo, PerfQueryCounterData, PerfAddCounters & PerfDeleteCounters. I will look to extend my PerfCtrv2Mgr classes to support this new functionality.

· PhoneCallHandling.h: Has been removed.

· phoneinfoext.h: Has been removed.

· portabledeviceclassextension.h\idl: Has been removed.

· processthreadsapi.h: New ThreadDynamicCodePolicy enum value. New SetThreadDescription & GetThreadDescription APIs.

· propkey.h: New PKEY_Security_AllowedEnterpriseDataProtectionIdentities, PKEY_Security_EncryptionOwners, PKEY_Security_EncryptionOwnersDisplay, PKEY_StorageProviderCallerVersionInformation, PKEY_DeviceInterface_Bluetooth_Flags, PKEY_DeviceInterface_Bluetooth_LastConnectedTime, PKEY_DeviceInterface_Bluetooth_ProductVersion, PKEY_DeviceInterface_Bluetooth_VendorId, PKEY_DeviceInterface_Bluetooth_VendorIdSource, PKEY_Devices_Aep_Bluetooth_Cod_*, PKEY_Devices_Aep_Bluetooth_Le_*, PKEY_Devices_AepContainer_*, PKEY_Devices_AepService_Bluetooth_*, PKEY_Devices_AepService_IoT_ServiceInterfaces, PKEY_Devices_AudioDevice_Microphone_SensitivityInDbfs, PKEY_Devices_AudioDevice_Microphone_SignalToNoiseRatioInDb & PKEY_Music_DiscNumber defines.

· propsys.h\idl: New PDTF_DONTCOERCEEMPTYSTRINGS enum value.

· propvarutil.h: Some of the inline functions have been tidied up.

· provisionadc.h: Has been removed.

· qedit.idl: Has been removed.

· RadialControllerInterop.h\idl: New IRadialControllerInterop & IRadialControllerConfigurationInterop interfaces.

· Raseapif.h: New NCRYPT_PIN_CACHE_PIN_BYTE_LENGTH, NGC_TICKET_PROPERTY_STRING_LENGTH & NCRYPT_KEY_HANDLE defines. New NgcTicketContext struct. New members of PPP_EAP_OUTPUT struct.

· RCSeCapabilityClient.h: Has been removed.

· rdcentraldb.h: Has been removed.

· rdcentraldb.idl: New E_RDDB_ALREADY_EXISTS, E_RDDB_KEYVALUE_MISMATCH defines. Parameters to IRdMsDb::SaveDeploymentString, IRdMsDb::IsRdcmsDatabaseReachable have been updated. New IRdMsDb::ResolveDesktopAssignmentEx method. IRdMsDb:: ResolveDesktopAssignment has been removed. Various new functions in IRdMsDb interface.

· rdpencomapi.h\idl\i_c: New IRDPSRAPIClipboardUseEvents interface.

· recapis.h: New CreateRecognizer, DestroyRecognizer, GetRecoAttributes, CreateContext, DestroyContext, GetResultPropertyList & GetUnicodeRanges APIs.

· recdefs.h: New RECOFLAG_*, RECOCONF_* & GESTURE_* defines.

· rectypes.h: Various new defines, structs & enums.

· regapix.h: Has been removed.

· RegStr.h: New REGSTR_VAL_FSFILTERCLASS define.

· Resapi.h: New CLUS_RESDLL_OFFLINE_DO_NOT_UPDATE_PERSISTENT_STATE & CLUSTER_HEALTH_* defines. New CLUSTER_RESOURCE_APPLICATION_STATE enum. New member in CLRES_CALLBACK_FUNCTION_TABLE struct. New CLUSTER_HEALTH_FAULT, CLUSTER_HEALTH_FAULT_ARRAY structs. New InitializeClusterHealthFault, InitializeClusterHealthFaultArray, FreeClusterHealthFault, FreeClusterHealthFaultArray, ClusGetClusterHealthFaults, ClusRemoveClusterHealthFault, ClusAddClusterHealthFault, ClusWorkerTerminateEx & ClusWorkersTerminate APIs.

· rilapi.h: Has been removed.

· rilapitypes.h\idl: Has been removed.

· rimapi.h: Has been removed.

· rimext.h: Has been removed.

· rmxfguid.h: Has been removed.

· rmxftmpl.h: Has been removed.

· rowpos.h: Has been removed.

· RTWorkQ.h: New RtwqSetDeadline2 API.

· safeocx.idl: Has been removed.

· sbtsv.h\idl: New ACQUIRE_TARGET_LOCK_TIMEOUT define. New get_TargetLoad function in ITsSbTarget interface. New parameter to RemoveEnvironmentFromStore function in ITsSbResourcePluginStore. Various new functions in ITsSbResourcePluginStore interface. New ITsSbGenericNotifySink interface.

· schannel.h: New SecPkgContext_ConnectionInfoEx, SecPkgContext_TokenBinding structs. New SCH_USE_PRESHAREDKEY_ONLY, TLS1_ALERT_UNKNOWN_PSK_IDENTITY, SP_PROT_DTLS1_2_SERVER, SP_PROT_DTLS1_2_CLIENT & SP_PROT_DTLS1_2 defines. I hope to update my SSLWrappers classes to support this new functionality ASAP.

· securitybaseapi.h: New CveEventWrite API.

· SecurityRuntime.h: Has been removed.

· sensorsclassextension.h: Has been removed.

· sessdirpublictypes.h\idl: New TARGET_LOAD_WAITTIMEOUT, TARGET_STARTING &TARGET_STOPPING defines.

· SetupAPI.h: New _SP_ALTPLATFORM_INFO_V3 struct. New SP_ALTPLATFORM_FLAGS_SUITE_MASK define.

· shellapi.h: SIID_MAX_ICONS enum value has changed.

· ShellLockScreenAPI.h: Has been removed.

· ShellLockScreenAPITypes.h: Has been removed.

· sherrors.h: New COPYENGINE_E_REQUIRES_EDP_CONSENT & COPYENGINE_E_BLOCKED_BY_EDP_POLICY defines.

· ShlGuid.h: New CPFG_STANDALONE_SUBMIT_BUTTON define.

· ShlObj.h: Some defines in this header have been refactored to a new ShlObj_core.h header file.

· ShlObj_core.h: Some refactored defines from ShlObj.h and ShObjIdl.h.

· Shlwapi.h: New ASSOCF_IS_FULL_URI & ASSOCF_PER_MACHINE_ONLY defines. New GLOBALCOUNTER_BANNERS_DATAMODEL_CACHE_MACHINEWIDE enum value.

· ShObjIdl.h: Some defines in this header have been refactored to a new ShlObj_core.h header file.

· ShObjIdl_core.h\idl: Some refactored defines from ShlObjidl.h and ShObjIdl.idl.

· sisbkup.h: Has been removed.

· slerror.h: New SL_MDOLLAR_ZONE, IS_SL_MDOLLAR_ERROR, _FACILITY_WINDOWS_STORE & SL_REMAPPING_MDOLLAR_* defines.

· slpublic.h: New SL_INFO_KEY_BIOS_PKEY_PKPN & SL_PROP_GET_GENUINE_SERVER_AUTHZ defines.

· smbclnt.h: New SetAppInstanceCsvFlags API.

· srpapi.h: New SrpGetEnterpriseIds, SrpEnablePermissiveModeFileEncryption, SrpDisablePermissiveModeFileEncryption, SrpGetEnterprisePolicy, SrpIsTokenService, IsSrpCreateThreadNetworkContextPresent, IsSrpCloseThreadNetworkContextPresent, IsSrpSetTokenEnterpriseIdPresent, IsSrpGetEnterpriseIdsPresent, IsSrpEnablePermissiveModeFileEncryptionPresent, IsSrpDisablePermissiveModeFileEncryptionPresent, IsSrpGetEnterprisePolicyPresent, IsSrpIsTokenServicePresent & IsSrpDoesPolicyAllowAppExecutionPresent APIs. This new functionality belongs to Windows Information Protection (WIP).

· sspi.h: Has been removed.

· stdobj.hxx: Has been removed.

· StorageCleanupNotification.h: Has been removed.

· storagewmi_provider.mof: References a number of mof files added with this version of the SDK.

· strongname.h: Has been removed.

· sxstypes.h: Has been removed.

· systemtopologyapi.h: GetNumaProximityNodeEx API define has been moved to this header.

· tmschema.h: Has been removed.

· tokenbinding.h: New TOKENBINDING_KEY_PARAMETERS_TYPE enum. New TokenBindingDeleteAllBindings & TokenBindingGenerateID APIs.

· tpcshrd.h: Various new defines, enums & structs are now available if the WINAPI_PARTITION_APP pre-processor value is set.

· TSGPolicyEngine.h\idl: New AA_AUTH_CONID define.

· tstr.h: Has been removed.

· UIAutomationClient.h\idl: New UIA_LandmarkTypePropertyId, UIA_LocalizedLandmarkTypePropertyId, UIA_FullDescriptionPropertyId, AnnotationType_*, UIA_CustomLandmarkTypeId, UIA_FormLandmarkTypeId, UIA_MainLandmarkTypeId, UIA_NavigationLandmarkTypeId, UIA_SearchLandmarkTypeId & UIA_SummaryChangeId constants. New IUIAutomationChangesEventHandler, IUIAutomationElement5, IUIAutomationElement6 & IUIAutomation4 interfaces.

· UIAutomationCore.h\idl: New TextEditChangeType_AutoComplete enum value. New UiaChangeInfo struct.

· UIAutomationCoreApi.h: New LandmarkType_Property_GUID, LocalizedLandmarkType_Property_GUID, FullDescription_Property_GUID, Changes_Event_GUID, Annotation_* defines. New AutomationIdentifierType_*, EventArgsType_Changes enum values. New UiaChangesEventArgs struct. New UiaRaiseChangesEvent API.

· umdetw.h: Has been removed.

· umdprovider.h: Has been removed.

· updateendpointauth.h\idl: Has been removed.

· urlmon.h\idl: New INET_E_RESERVED_4 & URLACTION_ACTIVEX_ALLOW_TDC defines. New BINDSTATUS_RESERVED_11 & BINDSTRING_DOC_URL enum values.

· vcclr.h: Has been removed.

· vdssp.idl: New VDSDiskOfflineReasonLostDataPersistence enum value.

· vdssys.h: New OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR, VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING, CREATE_VIRTUAL_DISK_FLAG_VHD_SET_USE_ORIGINAL_BACKING_STORAGE, ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR, TAKE_SNAPSHOT_VHDSET_FLAG_WRITEABLE & MODIFY_VHDSET_FLAG_WRITEABLE_SNAPSHOT enum values. New APPLY_SNAPSHOT_VHDSET_FLAG, APPLY_SNAPSHOT_VHDSET_VERSION, RAW_SCSI_VIRTUAL_DISK_FLAG & RAW_SCSI_VIRTUAL_DISK_VERSION enums. New APPLY_SNAPSHOT_VHDSET_PARAMETERS, RAW_SCSI_VIRTUAL_DISK_PARAMETERS & RAW_SCSI_VIRTUAL_DISK_RESPONSE structs. New ApplySnapshotVhdSet & RawSCSIVirtualDisk APIs.

· vererror.h: Has been removed.

· virtdisk.h: New OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR, OPEN_VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING, CREATE_VIRTUAL_DISK_FLAG_VHD_SET_USE_ORIGINAL_BACKING_STORAGE, ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR, TAKE_SNAPSHOT_VHDSET_FLAG_WRITEABLE, MODIFY_VHDSET_FLAG_WRITEABLE_SNAPSHOT & SURFACE_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR enum values. New APPLY_SNAPSHOT_VHDSET_FLAG, APPLY_SNAPSHOT_VHDSET_VERSION, RAW_SCSI_VIRTUAL_DISK_FLAG & RAW_SCSI_VIRTUAL_DISK_VERSION enums. New APPLY_SNAPSHOT_VHDSET_PARAMETERS, RAW_SCSI_VIRTUAL_DISK_PARAMETERS & RAW_SCSI_VIRTUAL_DISK_RESPONSE structs. New QueryChangesVirtualDisk, TakeSnapshotVhdSet, DeleteSnapshotVhdSet, ApplySnapshotVhdSet & RawSCSIVirtualDisk APIs. New SURFACE_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR define.

· wbcl.h: New SIPAEVENT_MORBIT_NOT_CANCELABLE, SIPAEVENT_APPLICATION_SVN, SIPAEVENT_SVN_CHAIN_STATUS, SIPAEVENT_FLIGHTSIGNING, SIPAEVENT_PAGEFILE_ENCRYPTION_ENABLED, SIPAEVENT_VSM_IDKS_INFO, SIPAEVENT_MODULE_SVN & SIPAEVENT_VBS_MICROSOFT_BOOT_CHAIN_REQUIRED defines.

· WcnDevice.h: Some of the WCN_PASSWORD_TYPE enum values have changed value.

· WDBGEXTS.H: KDDEBUGGER_DATA64 struct has new members.

· weakreference.h\idl: Has been removed.

· webcheck.idl: Has been removed.

· WERAPI.H: New REPORT_STORE_TYPES enum. New WER_REPORT_PARAMETER, WER_REPORT_SIGNATURE & WER_REPORT_METADATA_V1 structs. New WerStoreOpen, WerStoreClose, WerStoreGetFirstReportKey, WerStoreGetNextReportKey, WerStoreGetReportCount, WerStoreGetSizeOnDisk, WerStoreQueryReportMetadataV1 & WerStoreUploadReport APIs. New WER_UPLOAD_USE_ANY_AVAILABLE_NETWORK & WER_UPLOAD_USE_ANY_POWER defines.

· wheadef.h: New WheaErrSrcTypeGenericV2, WheaErrSrcTypeSCIGenericV2 enum values. New WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_GENERIC_V2, WHEA_NOTIFICATION_TYPE_CMCI, WHEA_NOTIFICATION_TYPE_MCE, WHEA_NOTIFICATION_TYPE_GPIO_SIGNAL, WHEA_NOTIFICATION_TYPE_ARMV8_SEA, WHEA_NOTIFICATION_TYPE_ARMV8_SEI & WHEA_NOTIFICATION_TYPE_EXTERNALINTERRUPT_GSIV defines. New members in WHEA_NOTIFICATION_DESCRIPTOR & WHEA_ERROR_SOURCE_DESCRIPTOR structs. New WHEA_GENERIC_ERROR_DESCRIPTOR_V2 struct.

· WiFiIHVExtAuth.h: Has been removed.

· wifimte.h: Has been removed.

· wimaxtypes.h: Has been removed.

· Winbase.h: New COPY_FILE_IGNORE_EDP_BLOCK, COPY_FILE_IGNORE_SOURCE_ENCRYPTION, BACKUP_GHOSTED_FILE_EXTENTS, STREAM_CONTAINS_GHOSTED_FILE_EXTENTS, PROCESS_CREATION_MITIGATION_POLICY_*, PROCESS_CREATION_CHILD_PROCESS_RESTRICTED, PROCESS_CREATION_CHILD_PROCESS_OVERRIDE, PROCESS_CREATION_DESKTOP_APPX_OVERRIDE, PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY, PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT, PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY, PROCESS_CREATION_ENABLE_WIN32K_FILTER, PROCESS_CREATION_AUDIT_WIN32K_FILTER, PROC_THREAD_ATTRIBUTE_WIN32K_FILTER, FILE_RENAME_FLAG_REPLACE_IF_EXISTS, FILE_RENAME_FLAG_POSIX_SEMANTICS, FILE_DISPOSITION_FLAG_DO_NOT_DELETE , FILE_DISPOSITION_FLAG_DELETE, FILE_DISPOSITION_FLAG_POSIX_SEMANTICS, FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK & FILE_DISPOSITION_FLAG_ON_CLOSE defines. New ProcThreadAttributeChildProcessPolicy, ProcThreadAttributeAllApplicationPackagesPolicy, ProcThreadAttributeWin32kFilter &ProcThreadAttributeSafeOpenPromptOriginClaim enum values. New members in FILE_RENAME_INFO struct. New FILE_DISPOSITION_INFO_EX struct.

· winbio_adapter.h: New WINBIO_FRAMEWORK_INTERFACE structs. New members in WINBIO_PIPELINE, WINBIO_ENGINE_INTERFACE & WINBIO_STORAGE_INTERFACE structs. New WINBIO_ADAPTER_TYPE_FRAMEWORK, WINBIO_ENGINE_INTERFACE_VERSION_4, WINBIO_STORAGE_INTERFACE_VERSION_4 & WINBIO_IS_FRAMEWORK_VERSION_COMPATIBLE defines. Various new call-back functions. New WbioEngineCreateKey, WbioEngineIdentifyFeatureSetSecure, WbioStorageNotifyDatabaseChange, WbioFrameworkSetUnitStatus, WbioFrameworkVsmStorageAttach, WbioFrameworkVsmStorageDetach, WbioFrameworkVsmStorageClearContext, WbioFrameworkVsmStorageCreateDatabase, WbioFrameworkVsmStorageOpenDatabase, WbioFrameworkVsmStorageCloseDatabase, WbioFrameworkVsmStorageDeleteRecord, WbioFrameworkVsmStorageNotifyPowerChange, WbioFrameworkVsmStoragePipelineInit, WbioFrameworkVsmStoragePipelineCleanup, WbioFrameworkVsmStorageActivate, WbioFrameworkVsmStorageDeactivate, WbioFrameworkVsmStorageQueryExtendedInfo, WbioFrameworkVsmStorageCacheClear, WbioFrameworkVsmStorageCacheImportBegin, WbioFrameworkVsmStorageCacheImportNext, WbioFrameworkVsmStorageCacheImportEnd, WbioFrameworkVsmStorageCacheExportBegin, WbioFrameworkVsmStorageCacheExportNext & WbioFrameworkVsmStorageCacheExportEnd APIs.

· wincodec.h\idl: New CLSID_WICAdngDecoder & GUID_ContainerFormatAdng, defines.

· wincon.h: New ENABLE_VIRTUAL_TERMINAL_INPUT, ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN & ENABLE_LVB_GRID_WORLDWIDE defines.

· wincred.h: New CRED_FLAGS_VSM_PROTECTED, CRED_FLAGS_NGC_CERT & CRED_TI_DNSTREE_IS_DFS_SERVER defines.

· wincrypt.h: New ALG_TYPE_ECDH, ALG_TYPE_THIRDPARTY, ALG_SID_THIRDPARTY_ANY, ALG_SID_ECDH_EPHEM, CALG_ECDH_EPHEM, CALG_NULLCIPHER, CALG_THIRDPARTY_KEY_EXCHANGE, CALG_THIRDPARTY_SIGNATURE, CALG_THIRDPARTY_CIPHER, CALG_THIRDPARTY_HASH, szOID_CN_ECDSA_SHA256, szOID_TLS_FEATURES_EXT, szOID_PLATFORM_MANIFEST_BINARY_ID, szOID_IUM_SIGNING, CERT_SERIAL_CHAIN_PROP_ID, CERT_KEY_CLASSIFICATION_PROP_ID, CERT_OCSP_MUST_STAPLE_PROP_ID, CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID, CERT_NONCOMPLIANT_ROOT_URL_PROP_ID, WINCRYPT_DWORD_CPP_ONLY, CERT_CHAIN_DISABLE_SERIAL_CHAIN_VALUE_NAME, CERT_CHAIN_SERIAL_CHAIN_LOG_FILE_NAME_VALUE_NAME, CERT_CHAIN_DISABLE_SYNC_WITH_SSL_TIME_VALUE_NAME, CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_VALUE_NAME, CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DEFAULT, CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DISABLE, CERT_CHAIN_SSL_HANDSHAKE_LOG_FILE_NAME_VALUE_NAME, CERT_CHAIN_AUTO_SERIAL_LOCAL_MACHINE, HCCE_SERIAL_LOCAL_MACHINE, CERT_TRUST_IS_KEY_ROLLOVER, CERT_TRUST_SSL_HANDSHAKE_OCSP, CERT_TRUST_SSL_TIME_VALID_OCSP, CERT_TRUST_SSL_RECONNECT_OCSP, CERT_TRUST_SSL_TIME_VALID, CERT_TRUST_NO_TIME_CHECK, CERT_CHAIN_POLICY_SSL_F12, CERT_CHAIN_POLICY_SSL_F12_SUCCESS_LEVEL, CERT_CHAIN_POLICY_SSL_F12_WARNING_LEVEL, CERT_CHAIN_POLICY_SSL_F12_ERROR_LEVEL, CERT_CHAIN_POLICY_SSL_F12_NONE_CATEGORY, CERT_CHAIN_POLICY_SSL_F12_WEAK_CRYPTO_CATEGORY & CERT_CHAIN_POLICY_SSL_F12_ROOT_PROGRAM_CATEGORY defines. New CertKeyType enum. New SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS struct.

· WinDNS.h: New member in DNS_TLSA_DATA struct.

· windows.devices.alljoyn.interop.h\idl: New IWindowsDevicesAllJoynBusObjectInterop & IWindowsDevicesAllJoynBusObjectFactoryInterop interfaces.

· WindowsNumerics.h: Has been substantially reworked to reference a new WindowsNumerics.impl.h header file instead of WindowsNumerics.inl.

· WindowsNumerics.impl.h: New header file to support various DirectX math functionality.

· windowssideshowclassextension.h: Has been removed.

· WindowsStorageCOM.h\idl: New IOplockBreakingHandler, IStorageItemHandleAccess & IStorageFolderHandleAccess interfaces.

· winefs.h: New EFS_SUBVER_UNKNOWN, EFS_EFS_SUBVER_EFS_CERT, EFS_PFILE_SUBVER_RMS, EFS_PFILE_SUBVER_APPX & EFS_IS_APPX_VERSION defines. New EFS_VERSION_INFO struct.

· wingdi.h: New DISPLAY_DEVICE_RDPUDD & DISPLAYCONFIG_TARGET_IS_HMD defines. New DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED enum value.

· winhttp.h: New WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL, WINHTTP_OPTION_HTTP_PROTOCOL_USED, WINHTTP_PROTOCOL_FLAG_HTTP2, WINHTTP_PROTOCOL_MASK, ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED_PROXY & ERROR_WINHTTP_SECURE_FAILURE_PROXY defines. These changes are to support HTTP2.0 support in WinHTTP.

· WinInet.h: New ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED_PROXY & ERROR_INTERNET_SECURE_FAILURE_PROXY defines.

· Winineti.h: New INTERNET_OPTION_ENABLE_HEADER_CALLBACKS, INTERNET_OPTION_PRESERVE_REQUEST_SERVER_CREDENTIALS_ON_REDIRECT, INTERNET_OPTION_PRESERVE_REFERER_ON_HTTPS_TO_HTTP_REDIRECT, INTERNET_OPTION_TCP_FAST_OPEN, INTERNET_OPTION_SYNC_MODE_AUTOMATIC_SESSION_DISABLED, INTERNET_OPTION_ENABLE_ZLIB_DEFLATE, INTERNET_OPTION_ENCODE_FALLBACK_FOR_REDIRECT_URI, INTERNET_OPTION_EDGE_COOKIES_TEMP, INTERNET_STATUS_REQUEST_HEADERS_SET, INTERNET_STATUS_RESPONSE_HEADERS_SET, HTTP_ADDREQ_FLAG_RESPONSE_HEADERS, INTERNET_COOKIE_ALL_COOKIES & ERROR_INTERNET_PROXY_ALERT defines.

· winioctl.h: New GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB, FILE_DEVICE_UCM, FILE_DEVICE_UCMTCPCI, IOCTL_STORAGE_GET_COUNTERS, IOCTL_STORAGE_REINITIALIZE_MEDIA, IOCTL_STORAGE_RPMB_COMMAND, IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT, STORAGE_RPMB_DESCRIPTOR_VERSION_1, STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE, STORAGE_TIER_FLAG_PARITY, STORAGE_ATTRIBUTE_BYTE_ADDRESSABLE_IO, STORAGE_ATTRIBUTE_BLOCK_IO, STORAGE_ATTRIBUTE_DYNAMIC_PERSISTENCE, STORAGE_ATTRIBUTE_VOLATILE, STORAGE_ATTRIBUTE_ASYNC_EVENT_NOTIFICATION, STORAGE_DEVICE_MAX_OPERATIONAL_STATUS, STORAGE_ADAPTER_SERIAL_NUMBER_V1_MAX_LENGTH, STORAGE_ADAPTER_SERIAL_NUMBER_V1_VERSION, STORAGE_ADAPTER_SERIAL_NUMBER_V1_SIZE, DeviceDsmAction_TieringQuery, DeviceDsmAction_GetPhysicalAddresses, DeviceDsmAction_ScopeRegen, DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES, DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_VERSION_V1, STORAGE_COUNTERS_VERSION_V1, STORATTRIBUTE_NONE, STORATTRIBUTE_MANAGEMENT_STATE, PARTITION_DM, PARTITION_EZDRIVE, PARTITION_GPT, GPT_BASIC_DATA_ATTRIBUTE_OFFLINE, GPT_BASIC_DATA_ATTRIBUTE_DAX, FSCTL_QUERY_VOLUME_CONTAINER_STATE, FSCTL_SET_LAYER_ROOT, FSCTL_QUERY_DIRECT_ACCESS_EXTENTS, FSCTL_NOTIFY_STORAGE_SPACE_ALLOCATION, FSCTL_SSDI_STORAGE_REQUEST, FSCTL_QUERY_DIRECT_IMAGE_ORIGINAL_BASE, FSCTL_READ_UNPRIVILEGED_USN_JOURNAL, FSCTL_START_VIRTUALIZATION_INSTANCE, FSCTL_GHOST_FILE_EXTENTS, FSCTL_QUERY_GHOSTED_FILE_EXTENTS, FSCTL_UNMAP_SPACE, FSCTL_HCS_SYNC_NO_WRITE_TUNNEL_REQUEST, PERSISTENT_VOLUME_STATE_NO_WRITE_AUTO_TIERING, FILE_STORAGE_TIER_FLAG_PARITY, CONTAINER_VOLUME_STATE_HOSTING_CONTAINER, CONTAINER_ROOT_INFO_FLAG_SCRATCH_ROOT, CONTAINER_ROOT_INFO_FLAG_LAYER_ROOT, CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_ROOT, CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_TARGET_ROOT, CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_EXCEPTION_ROOT, CONTAINER_ROOT_INFO_VALID_FLAGS, SMB_CCF_APP_INSTANCE_EA_NAME & NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR defines. New BusTypeSCM, StorageAdapterRpmbProperty, StorageDeviceAttributesProperty, StorageDeviceManagementStatus, StorageAdapterSerialNumberProperty & StorageDeviceLocationProperty enum values. New STORAGE_RPMB_FRAME_TYPE, STORAGE_RPMB_DESCRIPTOR, STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR, STORAGE_OPERATIONAL_REASON, STORAGE_DEVICE_MANAGEMENT_STATUS, STORAGE_ADAPTER_SERIAL_NUMBER, DEVICE_LOCATION, STORAGE_DEVICE_LOCATION_DESCRIPTOR, DEVICE_STORAGE_ADDRESS_RANGE, DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT, STORAGE_RPMB_DATA_FRAME, STORAGE_COUNTER, STORAGE_COUNTERS, STORAGE_ATTRIBUTE_MGMT, CONTAINER_VOLUME_STATE, CONTAINER_ROOT_INFO_INPUT, CONTAINER_ROOT_INFO_OUTPUT, VIRTUALIZATION_INSTANCE_INFO_INPUT, VIRTUALIZATION_INSTANCE_INFO_OUTPUT & NETWORK_APP_INSTANCE_EA structs. New STORAGE_DISK_HEALTH_STATUS, STORAGE_DISK_OPERATIONAL_STATUS, STORAGE_OPERATIONAL_STATUS_REASON, STORAGE_RPMB_COMMAND_TYPE, STORAGE_COUNTER_TYPE & STORAGE_ATTRIBUTE_MGMT_ACTION enums. New member in DRIVE_LAYOUT_INFORMATION_MBR struct.

· winmeta.xml: XML manifest describing Windows Event entries has been updated.

· WinNls.h: New LOCALE_SRELATIVELONGDATE define.

· winnls_ext_tzid.h: Has been removed.

· winnt.h: New PFORCEINLINE, UFIELD_OFFSET, _ENUM_FLAG_CONSTEXPR, CONTEXT_RET_TO_GUEST, SECURITY_USERMANAGER_ID_BASE_RID, SECURITY_USERMANAGER_ID_RID_COUNT, SECURITY_WINRM_ID_BASE_RID, SECURITY_WINRM_ID_RID_COUNT, SECURITY_CCG_ID_BASE_RID, SECURITY_BUILTIN_PACKAGE_ANY_RESTRICTED_PACKAGE, SECURITY_AUTHENTICATION_FRESH_KEY_AUTH_RID, SE_DELEGATE_SESSION_USER_IMPERSONATE_NAME, THREAD_DYNAMIC_CODE_ALLOW, MEMORY_PRIORITY_LOWEST, MEMORY_PRIORITY_VERY_LOW, MEMORY_PRIORITY_LOW, MEMORY_PRIORITY_MEDIUM, MEMORY_PRIORITY_BELOW_NORMAL, MEMORY_PRIORITY_NORMAL, JOB_OBJECT_MSG_SILO_TERMINATED, PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64, PRODUCT_*, XSTATE_IPT, XSTATE_MASK_IPT, XSTATE_CONTROLFLAG_XSAVEOPT_MASK, XSTATE_CONTROLFLAG_XSAVEC_MASK, XSTATE_CONTROLFLAG_VALID_MASK, PAGE_ENCLAVE_THREAD_CONTROL, PAGE_ENCLAVE_UNVALIDATED, MEM_64K_PAGES, SEC_64K_PAGES, ENCLAVE_TYPE_SGX, FLUSH_FLAGS_FILE_DATA_SYNC_ONLY, IO_REPARSE_TAG_RESERVED_TWO, IsReparseTagDirectory, IO_REPARSE_TAG_CLOUD, IO_REPARSE_TAG_APPEXECLINK, IO_REPARSE_TAG_GVFS, SMB_CCF_APP_INSTANCE_EA_NAME, NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR, GUID_USER_PRESENCE_PREDICTION, GUID_STANDBY_BUDGET_GRACE_PERIOD, GUID_STANDBY_BUDGET_PERCENT, GUID_STANDBY_RESERVE_GRACE_PERIOD, GUID_STANDBY_RESERVE_TIME, GUID_STANDBY_RESET_PERCENT, GUID_ENERGY_SAVER_POLICY, PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE_AT_GUARANTEED, PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED, GUID_CONNECTIVITY_IN_STANDBY, POWER_CONNECTIVITY_IN_STANDBY_DISABLED, POWER_CONNECTIVITY_IN_STANDBY_ENABLED, POWER_ACTION_USER_NOTIFY, IMAGE_FILE_MACHINE_TARGET_HOST, IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT, IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION, IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT, IMAGE_GUARD_FLAG_EXPORT_SUPPRESSED, FAST_FAIL_INVALID_LOCK_STATE, FAST_FAIL_GUARD_JUMPTABLE, FAST_FAIL_INVALID_LONGJUMP_TARGET, FAST_FAIL_INVALID_DISPATCH_CONTEXT, FAST_FAIL_INVALID_THREAD, DEVICEFAMILYINFOENUM_SERVER_NANO, REG_OPEN_READ_ONLY, REG_IMMUTABLE & SERVICE_PKG_SERVICE defines. For code which uses the new PRODUCT_* defines please see the author’s DtWinVer code at http://www.naughter.com/dtwinver.html. New WinAuthenticationFreshKeyAuthSid, TokenSingletonAttributes, ProcessControlFlowGuardPolicy, ProcessImageLoadPolicy, JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME, JobObjectReserved*, SERVERSILO_SHUTTING_DOWN, SharedVirtualDiskCDPSnapshotsSupported, PhysicalPowerButtonPress, MonitorRequestReasonResumePdc, MonitorRequestReasonResumeS4, MonitorRequestReasonTerminal & MonitorRequestReasonPdcSignal enum values. New members in PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY, SILOOBJECT_BASIC_INFORMATION, XSTATE_CONFIGURATION, IMAGE_LOAD_CONFIG_DIRECTORY32 & IMAGE_LOAD_CONFIG_DIRECTORY64 structs. New PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY, PROCESS_MITIGATION_IMAGE_LOAD_POLICY, JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2, SERVERSILO_BASIC_INFORMATION, POWER_MONITOR_REQUEST_TYPE, WOW64_ARCHITECTURE_INFORMATION, ENCLAVE_CREATE_INFO_SGX, ENCLAVE_INIT_INFO_SGX, NETWORK_APP_INSTANCE_EA & IMAGE_DYNAMIC_RELOCATION_TABLE, IMAGE_DYNAMIC_RELOCATION structs. New JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS, JOBOBJECT_IO_ATTRIBUTION_STATS & JOBOBJECT_IO_ATTRIBUTION_INFORMATION enums.

· WinPhoneInput.h: Has been removed.

· WinSock2.h: New LUP_DNS_ONLY & LUP_RESOLUTION_HANDLE defines.

· winsvc.h: new SC_ACTION_OWN_RESTART enum value.

· winternl.h: New OBJ_DONT_REPARSE define.

· WinTrust.h: New SPC_RELAXED_PE_MARKER_CHECK_OBJID & SPC_ENCRYPTED_DIGEST_RETRY_COUNT_OBJID defines.

· WinUser.h: New RegisterPointerInputTargetEx, UnregisterPointerInputTargetEx, GetSystemMetricsForDpi, AdjustWindowRectExForDpi, SystemParametersInfoForDpi, SetThreadDpiAwarenessContext, GetThreadDpiAwarenessContext, GetWindowDpiAwarenessContext, GetAwarenessFromDpiAwarenessContext, AreDpiAwarenessContextsEqual, IsValidDpiAwarenessContext, GetDpiForWindow, GetDpiForSystem, EnableNonClientDpiScaling & InheritWindowMonitor APIs. New EN_BEFORE_PASTE, EN_AFTER_PASTE, EM_ENABLEFEATURE, SPI_GETPENARBITRATIONTYPE, SPI_SETPENARBITRATIONTYPE, PENARBITRATIONTYPE_NONE, PENARBITRATIONTYPE_WIN8, PENARBITRATIONTYPE_FIS, PENARBITRATIONTYPE_SPT, PENARBITRATIONTYPE_MAX, UOI_TIMERPROC_EXCEPTION_SUPPRESSION, WM_POINTERROUTEDTO, WM_POINTERROUTEDAWAY, WM_POINTERROUTEDRELEASED & RIM_TYPEMAX defines. New EDIT_CONTROL_FEATURE enum.

· winuser.rh: New WM_POINTERROUTEDTO, WM_POINTERROUTEDAWAY, WM_POINTERROUTEDRELEASED & EM_ENABLEFEATURE defines.

· wlanapi.h: New WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE & WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_CONNECTION_MODE_AUTO defines.

· wmcodecdsp.h: New CLSID CLSID_CMSVPXEncoderMFT & CLSID CLSID_CMSOpusDecMFT defines.

· wmdrmdeviceapp.h: Has been removed.

· wmdrmsdk.h\idl: Has been removed.

· wmium.h: Has been removed.

· wmsdkidl.h\idl: New WMT_RIGHTS enum. WM_LICENSE_STATE_DATA struct has been removed. WMCreateCertificate API has been removed. New WMDRM_IMPORT_INIT_STRUCT, DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS, DRM_OPL_OUTPUT_IDS, DRM_OUTPUT_PROTECTION, DRM_VIDEO_OUTPUT_PROTECTION_IDS, DRM_PLAY_OPL & DRM_COPY_OPL structs.

· workspaceruntime_i.c: Has been removed.

· wow64apiset.h: New GetSystemWow64Directory2A, GetSystemWow64Directory2W, Wow64SetThreadDefaultGuestMachine & IsWow64Process2 APIs.

· wpcoreutilext.h: Has been removed.

· WPSecurityPolicyState.h: Has been removed.

· ws2san.h: Has been removed.

· wsmerror.h: New ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED, ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED_DOWNLEVEL, ERROR_WSMAN_RUNASUSER_MANAGEDACCOUNT_LOGON_FAILED & ERROR_WSMAN_CERTMAPPING_CREDENTIAL_MANAGEMENT_FAILIED defines.

· wtypes.idl: Has been removed.

· wtypesbase.h\idl: Has been removed.

· wuerror.h: New WU_E_EXTENDEDERROR_NOTSET, WU_E_EXTENDEDERROR_FAILED & WU_E_DM_UNAUTHORIZED_MSA_USER defines.

· xamlOM.h\idl: New BaseValueSourceVisualState, IsValueNull & IsValueHandleAndEvaluatedValue enum values. New RenderTargetBitmapOptions enum. New BitmapDescription struct. New IBitmapData & IVisualTreeService2 interfaces.

· XblIdpAuthManager.h\idl: New header files which contain new IXblIdpAuthManager & IXblIdpAuthTokenResult interfaces.

· ZError.h: Has been removed.

· ZMediaLib.h: Has been removed.

· ZMediaLibTypes.h: Has been removed.

· ZMediaQueueTypes.h: Has been removed.

· ZMediaTypes.h: Has been removed.

There seems to be quite a bit of interesting changes in the updated Windows 10 SDK proving that there is life in the Win32 API yet for us old school C++ Windows programmers. Happy coding.

Categories: Programming

Changes in the Windows v10.0.14393 SDK compared to Windows v10.0.10240 SDK (Part One)

August 20, 2016 Comments off

This is a comparison of the differences between the original Windows 10 SDK (v10.0.10240) and the SDK (v10.0.14393) which corresponds to Windows 10 version 1607 aka Windows 10 Anniversary Update. This will highlight any interesting new Windows API changes which are available in Windows 10 version 1607. Part one of this review will concentrate on the “shared” header file which contains the defines which are shared between Kernel mode and User mode. The upcoming second part of this blog post will look at the “um” folder differences which contain the user mode header files. I may also look at the “ucrt” folder which contains the Universal CRT and the “winrt” folder which contains the WinRT APIs if time permits. I expect the second part of this review will be much bigger as there are just under 2000 files in the “um” directory compared to just 249 in the “shared” directory.

Ok, let’s dive into the changes:

· A lot of the header files have reworked references to the concept of SDK Family and Partitions which segregate the APIs available from the SDK header files as being available on certain Families e.g. Windows Phone, Windows Desktop, Window Server, WinRT etc.

· Some of the changes in the new SDK reference the pre-processor value of NTDDI_WIN10_RS1 for NTDDI_VERSION. This corresponds to Windows 10 codename “Redstone 1” aka Windows 10 version 1607 aka Windows 10 Build 14393.

· apiioct.h: Has been removed

· bcrypt.h: New reference to a define for BCRYPT_KDF_RAW_SECRET which was introduced in Windows 8.1, New BCRYPT_ENABLE_INCOMPATIBLE_FIPS_CHECKS in preference to defunct BCRYPT_ECC_NO_COFACTOR_MULTIPLICATION define,

· bdatypes: New HEVC_VIDEO_OR_TEMPORAL_VIDEO & HEVC_TEMPORAL_VIDEO_SUBSET defines.

· bthdef.h: New BDIF_LE_VISIBLE define.

· bugcodes.h: New VSL_INITIALIZATION_FAILED, SOFT_RESTART_FATAL_ERROR, STORAGE_MINIPORT_ERROR, ERRATA_WORKAROUND_UNSUCCESSFUL, COREMSGCALL_INTERNAL_ERROR, COREMSG_INTERNAL_ERROR, PDC_LOCK_WATCHDOG_LIVEDUMP, PDC_UNEXPECTED_REVOCATION_LIVEDUMP, HYPERGUARD_VIOLATION, KERNEL_STORAGE_SLOT_IN_USE, SMB_SERVER_LIVEDUMP, LOADER_ROLLBACK_DETECTED, WIN32K_SECURITY_FAILURE, UFX_LIVEDUMP, WORKER_THREAD_RETURNED_WHILE_ATTACHED_TO_SILO, TTM_FATAL_ERROR, WIN32K_POWER_WATCHDOG_TIMEOUT & CLUSTER_SVHDX_LIVEDUMP defines.

· common.ver: VER_LEGALCOPYRIGHT_YEARS define has been updated to “2016”

· d3dkmddi.h: Has been removed

· d3dkmdt.h: Has been removed

· d3dukmdt.h: New DXGKDDI_INTERFACE_VERSION_WDDM2_1, D3D_UMD_INTERFACE_VERSION_WDDM2_1*, DXGK_MAX_PAGE_TABLE_LEVEL_COUNT, DXGK_MIN_PAGE_TABLE_LEVEL_COUNT, D3DDDI_COLOR_SPACE_* defines. New DXGK_PTE_PAGE_SIZE, DXGK_PTE, D3DDDI_SEGMENTPREFERENCE, D3DDDI_UPDATEALLOCPROPERTY_FLAGS, D3DDDI_UPDATEALLOCPROPERTY, D3DDDI_OFFER_FLAGS & D3DDDI_RECLAIM_RESULT structs. New members in D3DDDI_ESCAPEFLAGS based on WDM 2.0 flag. New D3DDDI_HDR_METADATA_TYPE enum and D3DDDI_HDR_METADATA_HDR10 struct which support HDR features.

· dcomtypes.h: Now references dxgi1_5.h header file. New DCOMPOSITION_DEPTH_MODE

· devioctl.h: New FILE_DEVICE_UCM & FIEL_DEVICE_UCMTCPI defines.

· dpfilter.h: New DPFLTR_STORAGECLASSMEMORY_ID & DPFLTR_FSLIB_ID enum values

· dxgi.h/idl: New DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING enum value. New DXGI_PRESENT_ALLOW_TEARING define

· dxgdi1_5.h/idl: New header file for new functionality in DXGDI including IDXGIOutput5, DXGI_HDR_METADATA_TYPE, IDXGISwapChain4, DXGI_OFFER_RESOURCE_FLAGS, DXGI_RECLAIM_RESOURCE_RESULTS, IDXGIDevice4, DXGI_FEATURE & IDXGIFactory5

· dxgitype.h/idl: New DXGI_COLOR_SPACE_* defines

· evntprov.h: New MAX_EVENT_FILTER_EVENT_NAME_SIZE & EVENT_FILTER_TYPE_EVENT_NAME defines. New EVENT_FILTER_EVENT_NAME struct

· evntrace.h: New EVENT_TRACE_TYPE_CONFIG_DEFRAG, EVENT_TRACE_TYPE_CONFIG_MOBILEPLATFORM, EVENT_TRACE_TYPE_CONFIG_DEVICEFAMILY, EVENT_TRACE_TYPE_CONFIG_FLIGHTID, EVENT_TRACE_COMPRESSED_MODE defines. New ETW_COMPRESSION_RESUMPTION_MODE enum.

· fwpmtypes.h/idl: New FWPM_FILTER_FLAG_SYSTEMOS_ONLY, FWPM_FILTER_FLAG_GAMEOS_ONLY, FWPM_NET_EVENT_FLAG_ENTERPRISE_ID_SET, FWPM_NET_EVENT_FLAG_POLICY_FLAGS_SET, FWPM_NET_EVENT_FLAG_EFFECTIVE_NAME_SET defines. New FWPM_NET_EVENT_HEADER3 & FWPM_NET_EVENT3 structs.

· fwptypes.h/idl: New FWP_MATCH_PREFIX enum value. New FWP_CONDITION_REAUTHORIZE_REASON_EDP_POLICY_CHANGED define.

· fwpvi.h: Updated values for FWPM_NET_EVENT_HEADER, FWPM_NET_EVENT, FwpmNetEventEnum & FwpmNetEventSubscribe defines.

· gnsdriver.h: New GNSS_DRIVER_VERSION_4 & IOCTL_GNSS_*, BREADCRUMBING_UNSUPPORTED, BREADCRUMBING_VERSION_1, MIN_BREADCRUMBS_SUPPORTED defines. New members in GNSS_DEVICE_CAPABILITY struct. New GNSS_BREADCRUMBING_PARAM, GNSS_BREADCRUMBING_ALERT_DATA, GNSS_BREADCRUMB_V1 & GNSS_BREADCRUMB_LIST structs. New GNSS_Event_BreadcrumbAlertEvent enum value. New GNSS_BREADCRUMBING_ALERT_DATA member in GNSS_EVENT struct.

· gpio.h: New IOCTL_GPIO_COMMIT_FUNCTION_CONFIG_PINS define.

· hidusage.h: New HID_USAGE_PAGE_HAPTICS, HID_USAGE_GENERIC_INTERACTIVE_CONTROL, HID_USAGE_CONSUMER_GAMEDVR_* & HID_USAGE_HAPTICS_* defines.

· hvsocket.h: New header file related to Hyper-V sockets?

· ioevent.h: New GUID_IO_DISK_HEALTH_NOTIFICATION define. New DISK_HEALTH_NOTIFICATION_DATA struct.

· ipifcons.h: New IF_TYPE_IEEE802154 define.

· ks.h: New KSPROPERTY_TYPE_FSFILTERSCOPE, KSCATEGORY_SENSOR_GROUP, KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY_CUSTOM_ALLOCATION, KSALLOCATOR_FLAG_ENABLE_CACHED_MDL, KSALLOCATOR_FLAG_2D_BUFFER_REQUIRED & KSSTREAM_HEADER_TRACK_COMPLETION_NUMBERS defines. KSALLOCATOR_FLAG_ENABLE_CACHED_MDL define has been removed. New member in KSALLOCATOR_FRAMING struct. New member in KS_FRAMING_ITEM struct. Fix to the SAL annotations of KsLoadResource API.

· ks386.inc: New / updated values of UsSystemCallPad, PrInstrumentationCallback, ExecutiveProcessObjectLength, EtPicoContext, thProcess, KTHREAD_RESTRICTED_GUI_THREAD_MASK, ExecutiveThreadObjectLength, ProcessEnvironmentBlockLength, XcfgEnabledSupervisorFeatures, ThUserFsBase, ThUserGsBase, PwWow64Info, X87ErrorOffset, X87FloatSaveLength & KF_FPU_LEAKAGE_BIT. X86AMD64_R3_LONG_MODE_CODE value has been removed.

· Ksamd64.inc: New / updated values of UsSystemCallPad, ExecutiveProcessObjectLength, EtCid, EtPicoContext, thProcess, KTHREAD_RESTRICTED_GUI_THREAD_MASK, KTHREAD_RESTRICTED_GUI_THREAD_MASK, KernelThreadObjectLength, ExecutiveThreadObjectLength, ProcessEnvironmentBlockLength, XcfgEnabledSupervisorFeatures, SYSTEM_CALL_INT_2E, UsSystemCall, X86AMD64_R3_LONG_MODE_CODE, DEBUG_ACTIVE_SET_CONTEXT_STATE_LOCK_BIT, DEBUG_ACTIVE_SET_CONTEXT_STATE_LOCK, LfFloatSaveLength, X87ErrorOffset, X87FloatSaveLength, ThSetContextState, ThUserFsBase, ThUserGsBase, EpWoW64Process, KF_FPU_LEAKAGE_BIT & HV_DEPRECATE_AUTO_EOI.

· ksarm.h: New / updated values for UsSystemCallPad, ExecutiveProcessObjectLength, EtPicoContext, thProcess, KTHREAD_RESTRICTED_GUI_THREAD_MASK, ExecutiveThreadObjectLength, ProcessEnvironmentBlockLength, ThUserRoBase & ThUserRwBase.

· ksmedia.h: New DEVPKEY_KsAudio_PacketSize_Constraints2, KSAUDIO_SPEAKER_*, KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_*, KSCAMERAPROFILE_FaceAuth_Mode & KSCameraProfileSensorType_* defines. New KSAUDIO_PACKETSIZE_CONSTRAINTS2 struct. New KSPROPERTY_AUDIO_MIC_SENSITIVITY, KSPROPERTY_AUDIO_MIC_SNR, KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE & KSPROPERTY_CAMERACONTROL_EXTENDED_END enum values. New KSDATAFORMAT_SUBTYPE_* defines which refer to Dolby Digital+ Atmos amongst others. New members in KSCAMERA_PROFILE_PININFO struct. Various new defines for Bluetooth Midi. This seems to be a new feature in Windows 10 version 1607. See https://www.steinberg.net/forums/viewtopic.php?f=198&t=96105 for more details.

· kxamd64.inc: Various miscellaneous changes to X64 assembler code.

· lmerr.h: New NERR_CannotUnjoinAadDomain define

· mmreg.h: New WAVE_FORMAT_ALAC & WAVE_FORMAT_OPUS defines.

· mstcpip.h: New ASSOCIATE_NAMERES_CONTEXT & TCP_ICW_LEVEL_* defines. New ASSOCIATE_NAMERES_CONTEXT_INPUT struct. New members in INET_PORT_RESERVATION_INFORMATION struct. New GetDefaultCompartmentId API. InitializeCompartmentEntry, CreateCompartment & DeleteCompartment APIs have been removed.

· netiodef.h: New TH_OPT_FASTOPEN & TCP_FASTOPEN_COOKIE_SIZE* defines. New TCP_OPT_FASTOPEN & TCP_FASTOPEN_COOKIE structs. See https://blogs.windows.com/msedgedev/2016/06/15/building-a-faster-and-more-secure-web-with-tcp-fast-open-tls-false-start-and-tls-1-3/ for more information.

· ntddisk.h: New PARTITION_DM, PARTITION_EZDRIVE, PARTITION_GPT, GPT_BASIC_DATA_ATTRIBUTE_OFFLINE, GPT_BASIC_DATA_ATTRIBUTE_DAX & DISK_ATTRIBUTE_MAINTENANCE defines. New member in DRIVE_LAYOUT_INFORMATION_MBR struct.

· ntddndis.h: New defines to support NDIS 6.51 and 6.6 functionality included with Windows 10 up to v1607 and Windows Server 2016.

· ntddscsi.h: Defines for DUMP_POINTERS_EX_V2_SIZE & DUMP_POINTERS_EX_V3_SIZE have been updated.

· ntddstor.h: New GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB, IOCTL_STORAGE_GET_COUNTERS, IOCTL_STORAGE_REINITIALIZE_MEDIA, IOCTL_STORAGE_RPMB_COMMAND, IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT, STORAGE_RPMB_DESCRIPTOR_VERSION_1, STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE, STORAGE_TIER_FLAG_PARITY, STORAGE_ATTRIBUTE_*, STORAGE_DEVICE_MAX_OPERATIONAL_STATUS, STORAGE_ADAPTER_SERIAL_NUMBER_V1_MAX_LENGTH, STORAGE_ADAPTER_SERIAL_NUMBER_V1_VERSION, STORAGE_ADAPTER_SERIAL_NUMBER_V1_SIZE, DeviceDsmAction_GetPhysicalAddresses, DeviceDsmAction_ScopeRegen, DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES, DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_VERSION_V1, STORAGE_COUNTERS_VERSION_V1, STORATTRIBUTE_NONE & STORATTRIBUTE_MANAGEMENT_STATE defines. New BusTypeSCM, StorageAdapterRpmbProperty, StorageDeviceAttributesProperty, StorageDeviceManagementStatus, StorageAdapterSerialNumberProperty & StorageDeviceLocationProperty enum values. New STORAGE_RPMB_FRAME_TYPE, STORAGE_RPMB_DESCRIPTOR, STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR, STORAGE_DISK_HEALTH_STATUS, STORAGE_DISK_OPERATIONAL_STATUS, STORAGE_OPERATIONAL_REASON, STORAGE_DEVICE_MANAGEMENT_STATUS, STORAGE_ADAPTER_SERIAL_NUMBER, DEVICE_LOCATION, STORAGE_DEVICE_LOCATION_DESCRIPTOR, DEVICE_STORAGE_ADDRESS_RANGE, DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT, STORAGE_RPMB_DATA_FRAME, STORAGE_COUNTER, STORAGE_COUNTERS, STORAGE_ATTRIBUTE_MGMT_ACTION & STORAGE_ATTRIBUTE_MGMT structs. New STORAGE_OPERATIONAL_STATUS_REASON, STORAGE_RPMB_COMMAND_TYPE & STORAGE_COUNTER_TYPE enums.

· ntddvdeo.h: New DEVPKEY_IndirectDisplay, INDIRECT_DISPLAY_INFO_FLAGS_CREATED_IDDCX_ADAPTER defines. New INDIRECT_DISPLAY_INFO struct. New member in VIDEO_WIN32K_CALLBACKS_PARAMS struct.

· ntddvol.h: New CSV_FILECACHE_CONTEXT, CSV_CACHE_CALLBACK_V2_OUTPUT & CSV_CACHE_CALLBACK_V2_INPUT structs. Various changes related to call back functions for Csvfs. New CSV_BLOCK_AND_FILE_CACHE_CALLBACK_VERSION define.

· ntdef.h: changes to PROBE_ALIGNMENT define. New PFORCEINLINE, OBJ_DONT_REPARSE, UFIELD_OFFSET & _ENUM_FLAG_CONSTEXPR defines. New WaitDequeue enum value. Various new PRODUCT_* defines. For code which uses the new PRODUCT_* defines please see the author’s DtWinVer code at http://www.naughter.com/dtwinver.html.

· ntstatus.h: New FACILITY_PLATFORM_MANIFEST defines. FACILITY_MAXIMUM_VALUE define value has changed. Various new STATUS_* defines. Some new STATUS_* values such as STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED, STATUS_SECUREBOOT_POLICY_UNKNOWN, STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION, STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH, STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED, STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH, STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING, STATUS_SECUREBOOT_NOT_BASE_POLICY & STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY are the developer values related to changes in Secure Boot which has caused the backdoor into it to be discovered. Some new STATUS_PLATFORM_MANIFEST_* defines look like they are related to Device Guard.

· nvme.h: This header file has been removed.

· poclass.h: New GUID_DEVICE_GENERIC_EVENT_DEVICE & IOCTL_GET_WAKE_ALARM_SYSTEM_POWERSTATE defines.

· pointofservicecommontypes.h: This header file has been removed.

· pointofservicedriverinterface.h: This header file has been removed.

· reshub.h: New FUNCTION_CONFIG_DESCRIPTOR, PNP_FUNCTION_CONFIG_DESCRIPTOR_REVISION, PNP_FUNCTION_CONFIG_DESCRIPTOR_REVISION_MINIMUM, PNP_GPIO_INTERRUPT_IO_DESCRIPTOR_LENGTH, PNP_LARGE_VENDOR_DESCRIPTOR_LENGTH & PNP_SERIAL_BUS_DESCRIPTOR_LENGTH defines. New PNP_LARGE_VENDOR_DESCRIPTOR & PNP_FUNCTION_CONFIG_DESCRIPTOR structs. PNP_SERIAL_BUS_DESCRIPTOR_LENGTH define has been removed.

· rpcdcep.h: New RPC_SYSTEM_HANDLE_FREE_UNRETRIEVED, RPC_SYSTEM_HANDLE_FREE_RETRIEVED, RPC_SYSTEM_HANDLE_FREE_ALL & RPC_SYSTEM_HANDLE_FREE_ERROR_ON_CLOSE defines. I_RpcClntChkSystemHandleLeak, I_RpcSvrChkSystemHandleLeak, I_RpcClntSetSystemHandle, I_RpcSvrSetSystemHandle, I_RpcClntGetSystemHandle & I_RpcSvrGetSystemHandle APIs have been removed. New LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION enum. New I_RpcSystemHandleTypeSpecificWork API

· rpcndr.h: New SYSTEM_HANDLE_PIPE & SYSTEM_HANDLE_MAX enum values.

· sal.h: changes to the _In_defensive_, _Out_defensive_ & _Inout_defensive_ defines.

· scsi.h: New SCSI_WRITE_BUFFER_MODE_DOWNLOAD_MICROCODE_WITH_OFFSETS_SAVE_DEFER_ACTIVATE & SCSI_WRITE_BUFFER_MODE_ACTIVATE_DEFERRED_MICROCODE defines. Changes to the WHICH_BIT macro.

· sdkddkver.h: New defines for NTDDI_WIN10_TH2 which corresponds to Windows 10 v1511 and NTDDI_WIN10_RS1 which corresponds to Windows 10 v1607. The NTDDI_VERSION is now set to NTDDI_WIN10_RS1 if not already set.

· sensordef.h/idl: New GUID_SensorCategory_PersonalActivity, GUID_SensorType_FloorElevation, GUID_SensorType_GeomagneticOrientation, GUID_SensorType_GravityVector, GUID_SensorType_LinearAccelerometer, PKEY_SensorData_ElevationChangeMode, PKEY_SensorData_CumulativeElevation_Meters, PKEY_SensorData_CumulativeElevationFloorCount, PKEY_SensorData_CumulativeElevationStepCount, PKEY_SensorData_ElevationChange_Meters, PKEY_SensorData_VerticalSpeed_MetersPerSecond, PKEY_SensorData_ElevationChangeFloorCount defines. New ACTIVITY_STATE_COUNT, ELEVATION_CHANGE_MODE & SIMPLE_DEVICE_ORIENTATION enums. Changes to the definition of ActivityState_Max define.

· sensorutils.h: Changes to MILLISECONDS_TO_100NANOSECONDS & MILLISECONDS_FROM_100NANOSECONDS macros.

· smcdbg.h: Has been removed

· srb.h: New REQUEST_INFO_NO_FILE_OBJECT_FLAG & REQUEST_INFO_VOLSNAP_IO_FLAG defines.

· Sspi.h: New SECBUFFER_TOKEN_BINDING, SECBUFFER_PRESHARED_KEY, SECBUFFER_PRESHARED_KEY_IDENTITY, SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS, NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES, NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO & NGC_DATA_FLAG_IS_SMARTCARD_DATA defines. New SEC_TOKEN_BINDING, SEC_PRESHAREDKEY, SEC_PRESHAREDKEY_IDENTITY, SECPKG_APP_MODE_INFO & SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS_DATA structs.

· tbs.h: New TPM_WNF_PROVISIONING struct. New TPM_WNF_INFO_CLEAR_SUCCESSFUL, TPM_WNF_INFO_OWNERSHIP_SUCCESSFUL & TPM_WNF_INFO_NO_REBOOT_REQUIRED defines.

· TraceLoggingActivity.h: The _TlgActivityBase::zInternalStart method has been rewritten.

· TraceLoggingProvider.h: New code to optionally define and emit TraceLoggingWriteEx. The TraceLoggingCustom macro has been removed. Updates to existing TraceLogging*, _TlgInTypeBase*, _TlgInfoVars_* & _TlgWrite_imp macros. New TraceLogging*, _TLG_AssertValidPackedMetadataInType, _TlgDataDescCreate* _TlgTempVars_*, _TlgDataDescCount_* _TlgChannelVal_*, _TlgLevelVal_* _TlgOpcodeVal*, _TlgKeywordVal_*, _TlgEvtTagVal_*, _TlgAnnotes_* & _TlgDescVal* macros have been added. New TRACELOGGING_PROTOCOL_MICROSOFT_RESERVED* defines. Updates and changes to the newly renamed TlgIn_t, TlgOut_t enums. New TLG_EVENT_WRITE_EX define. Existing _TlgWrite functionality has been refactored into a new _TlgWriteCommon function. New _TlgWriteEx function. Updates to parameter types and SAL annotation in _TlgCreateString function.

· trustedrt.h: Has been removed

· usbioctl.h: New IOCTL_INTERNAL_USB_FAIL_GET_STATUS_FROM_DEVICE define. New member in USB_PORT_PROPERTIES struct.

· usbiodef.h: New USB_FAIL_GET_STATUS define.

· uuids.h: New __EVR_GUIDS__ define usage.

· warning.h: New code to look at a DONT_DISABLE_PCH_WARNINGS_IN_WARNING_H define to optionally turn off some Visual C++ compiler warnings.

· wdmguid.h: New GUID_SCM_BUS_INTERFACE & GUID_BUS_TYPE_SCM defines.

· winbio_err.h: new WINBIO_E_INVALID_KEY_IDENTIFIER, WINBIO_E_KEY_CREATION_FAILED, WINBIO_E_KEY_IDENTIFIER_BUFFER_TOO_SMALL & WINBIO_E_PROPERTY_UNAVAILABLE defines.

· winbio_ioctl.h: WINBIO_SENSOR_* defines have been removed and moved to winbio_types.h.

· winbio_types.h: New WINBIO_CAPABILITY_SECURE_SENSOR, WINBIO_SENSOR_*, WINBIO_ANTI_SPOOF_TURN_SIDE_TO_SIDE, WINBIO_OPAQUE_ENGINE_DATA_ITEM_COUNT, WINBIO_PROPERTY_EXTENDED_UNIT_STATUS defines. New members in WINBIO_PRESENCE_PROPERTIES, WINBIO_PRESENCE, WINBIO_PRESENCE_PROPERTIES, WINBIO_PRESENCE, WINBIO_EXTENDED_SENSOR_INFO & WINBIO_EXTENDED_ENROLLMENT_STATUS structs. New WINBIO_EXTENDED_UNIT_STATUS, WINBIO_EXTENDED_ENROLLMENT_PARAMETERS & WINBIO_ACCOUNT_POLICY structs.

· windef.h: New DPI_AWARENESS_CONTEXT* defines. New DPI_AWARENESS enum.

· windot11.h: New dot11_phy_type_dmg enum value. New DOT11_KEY_ALGO_GCMP struct.

· winerror.h: New FACILITY_USERMODE_HNS, RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED, RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH, DNS_ERROR*, REGDB_E_PACKAGEPOLICYVIOLATION, STG_E_DEVICE_UNRESPONSIVE, NTE_NOT_ACTIVE_CONSOLE, SEC_E_INVALID_UPN_NAME, WER_E_INSUFFICIENT_CONSENT, STATEREPOSITORY_E_TRANSACTION_REQUIRED, D2DERR_INVALID_GLYPH_IMAGE, SQLITE_E_IOERR_VNODE, SQLITE_E_IOERR_AUTH & UTC_E_* defines. Various new ERROR_* defines. Some new ERROR_SECUREBOOT_* values are the developer values related to changes in Secure Boot which has caused the backdoor into it to be discovered. The HRESULT_FROM_WIN32 macro is now flagged as constexpr when compiled in VC 2015 or later. Some of the SQLITE_E* define values have been changed.

· winpackagefamily.h: Various new Window Partition types have been defined including WINAPI_PARTITION_SERVER, WINAPI_PARTITION_PKG_CLUSTER, WINAPI_PARTITION_PKG_VSS, WINAPI_PARTITION_PKG_TRAFFIC, WINAPI_PARTITION_PKG_ISCSI, WINAPI_PARTITION_PKG_STORAGE, WINAPI_PARTITION_PKG_MPSSVC, WINAPI_PARTITION_PKG_APPXDEPLOYMENT & WINAPI_PARTITION_PKG_WER.

· winsmcrd.h: New SCARD_READER_TYPE_NGC & SCARD_READER_TYPE_EMBEDDEDS defines.

· wlantypes.h: New DOT11_CIPHER_ALGO_GCMP enum value.

· wmistr.h: New TRACELOG_JOIN_GROUP & WMIGUID_ALL_ACCESS_RS1 defines.

· WpAccelerometer.h: Has been removed

· WpAmbient.h: Has been removed

· WpFusion.h: Has been removed

· WpGyro.h: Has been removed

· WpMagnetometer.h: Has been removed

· WpOrientation.h: Has been removed

· WpProximity.h: Has been removed

· WpSensors.h: Has been removed

This review sets the stage for part two of the review where we review the “um” folder. It looks like there’s some interesting stuff in Windows 10 version 1607 for native mode C++ developers to dig into. Happy coding.

Categories: Programming

Changes in the Windows 10 SDK compared to Windows 8.1 (Part Two)

May 24, 2015 Comments off

This is a follow up to the first part of my blog post which compares the Windows 10 SDK to Windows 8.1

This section part will concentrate on the “um” folder differences.

Ok, let’s dive into the changes:

· “um\alljoyn” and “um\qcc” folders: Seems to be a set of header files related to Windows support for IoT. See http://en.wikipedia.org/wiki/AllJoyn for further details

· A lot of the header files have been updated to keep up to date with the latest SAL annotation improvements and to suppress compiler warnings. Also some of the headers have references to the new Partitions concept

· activedbg.h/idl: New BREAKREASON_MUTATION_BREAKPOINT enum value which refers to a new Mutation Breakpoint? and DEBUG_TEXT_ISNONUSERCODE define which indicates script is not a user code, such as library/tools code.

· activedbg100.h/idl: New enums and two new interfaces of IScriptInvocationContext, and IDebugStackFrame110

· activprof.h/idl: New enums and structs

· ActivScp.h/idl: New SCRIPTTEXT_ISNONUSERCODE enum

· Alink.h: Header file has been removed. It defined a number of COM interfaces to support .NET and has been moved rather than deleted

· Amsi.h/idl: New header file which supports Windows 10 AntiMalware Scan Interface functionality

· asmparse.grammer: Header file has been removed

· Audioclient.h/idl: New enums and new IAudioClient3 interface

· audioenginebaseapo.h/idl: New APO_FLAG_MIXER enum value

· AudioEngineEndpoint.h: New enums, new IAudioEndpointReleaseBufferControl interface and new DEVPKEY_AudioEndpointPlugin_* PROPERTYKEY defines

· AudioSessionType.h: Quite a few new AudioCategories. Various AudioCategories have been deprecated

· aviriff.h: New TIMECODE_SAMPLE structure

· bemapiset.h: Header file has been removed.

· BitsMsg.h: New Message Ids for BITS

· Bthledef.h: Value for GUID_BLUETOOTHLE_DEVICE_INTERFACE has changed

· cellularapi_oem.h\idl: New header file which supports Cellular COM API even though it is deprecated in Windows 10. This is probably new because of integration between Windows 10 and Windows 10 Mobile.

· CertCli.h: Various new CR_* and FR_* defines

· Certenroll.h: New XCN_CRYPT_STRING_*, XCN_NCRYPT_UI_*, XCN_CERT_* values some of which are to support new features in Windows Biometrics in Windows 10 such as the new face detection authentication mechanisms. New X509HardwareKeyUsageFlags, X509KeyParametersExportType, KeyAttestationClaimType, X509SCEPProcessMessageFlags, DelayRetryAction & ImportPFXFlags enums. New IX509PrivateKey2, IX509CertificateRequestPkcs10V4, ICertificateAttestationChallenge2, IX509SCEPEnrollment2, & IX509SCEPEnrollmentHelper interfaces. New ImportPFXToProviderFreeData API

· CertPol.h: New enum values

· CertSrv.h: New versioning defines for Windows 10 aka Threshold. New wszINFKEY*, wszPROP* & wszREG* defines

· Cfgmgr32.h: New CM_DISABLE_*, CM_SETUP_* defines.

· chakrart.h: New header file to allow the Microsoft Javascript engine called Chakra to be hosted by client applications other than Internet Explorer. This applies to both Windows 8.1 IE 11 and Windows Edge versions of JavaScript. See http://blogs.windows.com/msedgedev/2015/05/18/using-chakra-for-scripting-applications-across-windows-10/ for further information.

· clrdata.h/idl: Another header file which has been removed which supports .NET

· ClusApi.h: Has been reworked quite a bit to support new clustering functionality in Windows 10 / Windows 2016.

· codecapi.h: Various new STATIC_CODECAPI_* and DEFINE_CODECAPI_GUID defines. Various other new enums.

· combaseapi.h: A new REGCLA value called REGCLS_AGILE.

· coml2api.h: New header file which has been refactored from the existing storage.h and objbase.h header files.

· CompPkgSup.h: New RegisterServerForPMP, UnregisterServerForPMP & GetServerForPMP APIs. This seems to be new Windows 10 function to allow COM components to take part in Protect Media Path.

· cor.h, cordebug.h/idl, CorError.h, CorHdr.h, corhlpr.h, corprof.h/idl, corpub.h/idl & corsym.h/idl: All of these header files have been removed. They are all the native mode COM interface to .NET.

· credentialprovider.h/idl: New ICredentialProviderCredential3, ICredentialProviderCredentialEvents3 & ICredentialProviderUserArray2 interfaces. Part of the new Windows Biometrics enhancements in Windows 10.

· d2d1_3.h: New header file which supports new Windows 10 D2D features

· d2d1_3helper.h: New header file which supports new Windows 10 D2D features

· d2d1effectauthor.h: New D2D1_APPEND_ALIGNED_ELEMENT define

· d2d1effectauthor_1.h/hlsli: New header file which supports new Windows 10 D2D features

· d2d1effects_2.h: New header file which supports new Windows 10 D2D Effects features

· d2d10shader.h: New D3D10_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES define

· d3d11_.h: New D3D11_DRAW_INSTANCED_INDIRECT_ARGS, D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS & D3D11_FEATURE_DATA_D3D11_OPTIONS2 & D3D11_FEATURE_DATA_D3D11_OPTIONS3 structs. New D3D11_RESOURCE_MISC_HW_PROTECTED, D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY, D3D11_FEATURE_D3D11_OPTIONS2, D3D11_FEATURE_D3D11_OPTIONS3, D3D11_TILED_RESOURCES_TIER_3, D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR, D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE & D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_* enum values. New D3D11_CONSERVATIVE_RASTERIZATION_TIER enum.

· d3d11_1.h: Various new D3D11_VIDEO_DECODER* structs & enums. New ID3D11VideoContext1, ID3D11VideoDevice1 and ID3D11VideoProcessorEnumerator1 interfaces

· d3d11_3.h/idl: A new header file for D3d v11. New interfaces include ID3D11Texture2D1, ID3D11Texture3D1, ID3D11RasterizerState2, ID3D11ShaderResourceView1, ID3D11RenderTargetView1, ID3D11UnorderedAccessView1, ID3D11Query1, ID3D11DeviceContext3 & ID3D11Device3

· d3d11on12.h/idl: A new header file for Direct3d 11 on 12. New APIs include D3D11On12CreateDevice. New interface ID3D11On12Device.

· d3d11sdklayers.h/idl: New D3D11_RLDO_IGNORE_INTERNAL enum value. Various new D3D11_MESSAGE_ID_* defines.

· D3d11shader.h: Removal of the D3D_PARAMETER_FLAGS enum.

· d3d12.h/idl, d3212sdklayers.h/idl, d3d12shader.h: New header files for Direct3D v12 which will debut with Windows 10

· d3dcommon.h/idl: New enum values to identify D3D v12.x. New D3D_PRIMITIVE_* & D3D_NAME_* defines. Existing D3D_PARAMETER_FLAGS enum has been moved to this header

· d3dcompiler.h/idl: New D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES define.

· datetimeapi.h: Declaration of existing GetDurationFormatEx API has been moved to this header.

· DbgEng.h: New DEBUG_REQUEST_TL_INSTRUMENTATION_AWARE, DEBUG_FORMAT_USER_SMALL_ADD_AVX_XSTATE_CONTEXT, DEBUG_EXECUTE_*, DEBUG_HANDLE_DATA_TYPE_MINI_SEMAPHORE_1, DEBUG_CSS_COLLAPSE_CHILDREN, DEBUG_SCOPE_GROUP_BY_DATAMODEL & DEBUG_SCOPE_GROUP_VALID_FLAGS defines. New DEBUG_PROCESSOR_IDENTIFICATION_ARM64 struct. Again this signals that Windows will be running on ARM64 chips in the very near future

· DbgHelp.h: New IMAGEHLP_HD_TYPE, IMAGEHLP_SF_TYPE enums. Existing functionality which was in this header file has been refactored into a new mindumpapiset.h header file

· DbgProp.h: New DBGPROP_ATTRIB_VALUE_PENDING_MUTATION enum value.

· dcomp.h: Includes new Direct Composition functionality released in Windows 8.1

· debugapi.h: New WaitForDebugEventEx API. I could find no online references to this new API. Also the API signature looks identical to the existing WaitForDebugEvent API

· DeviceCategories.h: New DEVICEDISPLAY_CATEGORY_MULTIMEDIA_APPLICATIONLAUNCHER_DIAL & DEVICEDISPLAY_CATEGORY_GAMING_DEVICES* defines.

· dhcpsapi.h: New ERROR_DHCP_NAP_NOT_SUPPORTED define.

· directionmanipulation.h/idl: New DIRECTMANIPULATION_VIEWPORT_OPTIONS_DISABLEPIXELSNAPPING define. Addition of a number of new IDirectManipulation* interfaces which cover new Direct Manipulation functionality in Windows 10.

· DirectXMath.h: More references to ARM64

· Dpx1.h/idl: New DPX_* defines. New DpxContainerDecryptionData struct. New DPX_CONTAINER_ENCRYPTION_ENUM enum. Addition of a number of new IDpx* interfaces. I could find no online references to these new interfaces.

· DSGetDC.h: New DS_DIRECTORY_SERVICE_10_REQUIRED and DS_DS_10_FLAG defines.

· dwrite.h: new DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME & DWRITE_LINE_SPACING_METHOD_PROPORTIONAL enum values.

· dwrite_3.h: A new header file for new DirectWrite features on Windows 10. 10 New IDWriteFont* interfaces have been added

· dxgiddi.h: Covers new functionality in WDDM 2.0 for Windows 10.

· DXGDIMessages.h: New DXGI_MSG_* enum values

· eappapis.h: New EapHostPeerGetDataToUnplumbCredentials API.

· emptyvc.h: New EVCF_USERCONSENTOBTAINED define.

· errhandlingapi.h: New RaiseFailFastException, FatalAppExitA/W, TerminateProcessOnMemoryExhaustion APIs. The TerminateProcessOnMemoryExhaustion is the only new API added on Windows 10 while the other API’s have been available on earlier versions of Windows and just the declarations of these API’s have been moved to this header file

· esent.h: JET_VERSION define value has been updated for Windows 10. New JET_* defines

· evntcons.h: New EVENT_HEADER_EXT_TYPE_EVENT_KEY, EVENT_HEADER_PROPERTY_RELOGGABLE & EVENT_ENABLE_PROPERTY_EVENT_KEY defines. New EVENT_EXTENDED_ITEM_EVENT_KEY struct.

· ExDisp.h/idl: New IShellUIHelper7 interface. New nav* enum values. This new interface exposes new functionality for the external object in Internet Explorer.

· ExDispid.h: DISPID_NEWTABCREATED define has been removed. New DISPID_* defines. Again this is new functionality for the external object in Internet Explorer.

· FhErrors.h: New error codes for File History.

· FhSvcCtrl.h: New FhBackupStopReason enum

· filterpipeline.h: New e XPS_FP_PRINTDEVICECAPABILITIES define.

· fusion.h: Header file has been removed. It’s a COM interface which supports Fusion/.NET and has been moved rather than deleted

· fwpmu.h: New FWPM_SUBLAYER_IPSEC_SECURITY_REALM define

· fwpsu.h: New FWPS_FIELD_INBOUND_TRANSPORT_V4_IPSEC_SECURITY_REALM_ID, FWPS_FIELD_* enum values. It covers new functionality exposed by the Windows Filtering Platform.

· gchost.h/idl: Header files have been removed. It defined a number of COM interfaces to support .NET garbage collector

· handleapi.h: New CompareObjectHandles API. I could find no online references to this new API.

· heapapi.h: Various API declarations have been decorated to work with the Memory Diagnostics tools in VC 2015. Check out http://blogs.msdn.com/b/vcblog/archive/2014/06/04/native-memory-diagnostic-tools-for-visual-studio-14-ctp1.aspx

· hrtfapoapi.h: New header file which supports HRTF functionality.

· http.h: New HTTP_REQUEST_TOKEN_BINDING_INFO, HTTP_SSL_PROTOCOL_INFO structs. New HttpRequestInfoTypeSslProtocol and HttpRequestInfoTypeSslTokenBinding enum values. New HTTP_REQUEST_FLAG_HTTP2 and HTTP_SERVICE_CONFIG_SSL_FLAG_REJECT defines. These changes indicate that the HTTP Server API now supports HTTP v2.0.

· httpserv.h: New IHttpResponse3 interface to support SPDY/3 and HTTP/2.0 Push-Promise functionality in IIS. New IHttpContext4 interface. The comments in the code around this new interface currently refer to Windows 9. This will probably be fixed up for RTM. This new interface supports getting timestamps as a 64 bit integer.

· ICeeFileGen.h: Another .NET header file which has been moved.

· IE12Plugin.h: A new header file which exposes new functionality in IE12 and the Edge Browser

· IEAutomation.h/idl: New enum value of to identify the Edge Browser

· IEMapi.h: New IELAUNCHOPTION_FLAGS enum values for the Edge Browser

· imageHlp.h: existing functionality in this header file has been refactored into a new minidumpapiset.h header file.

· imepad.h: New IPACID_CHARLIST define

· inkrenderer.h/idl/inkrenderer_i.c: New files which supports new Windows 10 D2D features

· isolation.h: Another .NET header file which has been moved.

· ivalidator.h/idl: Another .NET header file which has been moved.

· ivehandler.h/idl: Another .NET header file which has been moved.

· jsrt.h: New Header file to allow the Microsoft Javascript engine called Chakra to be hosted by client applications other than Internet Explorer. See http://blogs.windows.com/msedgedev/2015/05/18/using-chakra-for-scripting-applications-across-windows-10/ for further information.

· Jsrt9.h: New Header file to allow the Microsoft Javascript engine called Chakra to be hosted by client applications other than Internet Explorer. See http://blogs.windows.com/msedgedev/2015/05/18/using-chakra-for-scripting-applications-across-windows-10/ for further information.

· KnownFolder.h: New defines for FOLDERID_StartMenuAllPrograms, FOLDERID_OneDrive, FOLDERID_CameraRollLibrary, FOLDERID_SavedPictures, FOLDERID_SavedPicturesLibrary, FOLDERID_RetailDemo, FOLDERID_DevelopmentFiles, FOLDERID_Objects3D, FOLDERID_AppCaptures, FOLDERID_LocalDocuments, FOLDERID_LocalPictures, FOLDERID_LocalVideos, FOLDERID_LocalMusic & FOLDERID_LocalDownloads

· LMAccess.h: New NETLOGON_CONTROL_QUERY_ENC_TYPES define

· LMDFS.h: New FSCTL_DFS_GET_PKT_ENTRY_STATE define. New DFS_GET_PKT_ENTRY_STATE_ARG struct.

· Locationapi.h: ICivicAddressReport, IDefaultLocation, IDispLatLongReport, IDispCivicAddressReport, ILatLongReport, ILocation, ILocationEvents, ILocationPower & ILocationReport interfaces have been deprecated for Windows 10.

· macamd64.inc: AM64 assembler file has been removed

· MDMRegistration.h: New error code defines for Windows MDM

· memoryapi.h: New SetProcessValidCallTargets API. This seems to be a programmatic way to access the new Control Flow Guard functionality built into the VC 2015 compiler. New VirtualAllocFromApp, VirtualProtectFromApp, OpenFileMappingFromApp APIs. There is also new inline code in this header file to redirect certain Win32 API calls to the new APIs documented above depending on certain pre-processor values.

· metahost.h: Another .NET header file which has been moved.

· mfapi.h: New MF_*_BYTE_ALIGNMENT defines. New MFSampleExtension*, MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY_EDGEMODE, MFVideoFormat_*, MFAudioFormat_*, MFSubtitleFormat_*, MF_MT_* & MF_DISABLE_FRAME_CORRUPTION_INFO defines.

· mfcaptureengine.h/idl: New MF_CAPTURE_ENGINE_* defines. New IMFCapturePhotoConfirmation interface. This work seems to be part of the enhancements to Windows Biometrics.

· Mferror.h: New MF_E_HARDWARE_DRM_UNSUPPORTED define

· mfidl.h/idl: New MFPMPSESSION_IN_PROCESS, MF_RESOLUTION_PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE, SAMPLE_PROTECTION_VERSION_AES128CTR enum values. New MFPKEY_HTTP_ByteStream_Caching_Mode, MFPKEY_HTTP_ByteStream_Cache_Limit, MF_*, MFPROTECTION_* & MFTranscodeContainerType_FLAC defines. New MF_TRANSFER_VIDEO_FRAME_FLAGS enum. New IMFVideoSampleAllocatorNotifyEx, IMFVideoProcessorControl2, IMFContentProtectionDevice & IMFContentDecryptorContext interfaces. New MFCONTENTPROTECTIONDEVICE_INPUT_DATA, MFCONTENTPROTECTIONDEVICE_OUTPUT_DATA & MFCONTENTPROTECTIONDEVICE_REALTIMECLIENT_DATA structs. There is also new defines for a number of Microsoft Encoders / Decoders including H265 which might suggest that this will be released in some way for Windows 10. Again all this work seems to be part of the enhancements to Windows Biometrics and Media Foundation.

· mfmmediaengine.h/idl: Many new interfaces, enums, enum values and defines for Media Foundation.

· mfobjects.h: New MFVideoTransFunc_*, MFVideoPrimaries_*, MFVideoTransferMatrix_*, METransformInputStreamStateChanged, MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS_EDGEMODE & MEDeviceThermalStateChanged enum values.

· mfreadwrite.h/idl: Many new interfaces, enums, enum values and defines for Media Foundation.

· mfsharingengine.h/idl: New MF_SHARING_ENGINE_EVENT_ERROR enum value. New MF_* defines.

· mftransform.h/idl: New MFT_MESSAGE_NOTIFY_RELEASE_RESOURCES & MFT_MESSAGE_NOTIFY_REACQUIRE_RESOURCES enum values. New MFT_END_STREAMING_AWARE, MF_SA_D3D11_* & MFT_DECODER_QUALITY_MANAGEMENT_* defines.

· mi.h: New MI_RESULT_TYPE_ERRNO MI_T define. New “NewClass” function pointer. New MI_Application_NewClass API.

· Mindumpapiset.h: Newly refactored header file which contains MiniDump from the Debug Help Library

· minschannel.h: New SECPKG_ATTR_KEYING_MATERIAL_INFO, SECPKG_ATTR_KEYING_MATERIAL & SECPKG_ATTR_SRTP_PARAMETERS defines.

· mmdeviceapi.h/idl: New PKEY_AudioEndpoint* defines.

· Mprapi.h: New RAS_PORT_2, L2TP_TUNNEL_CONFIG_PARAMS2, ROUTER_IKEv2_IF_CUSTOM_CONFIG2, MPR_IF_CUSTOMINFOEX2 & IKEV2_TUNNEL_CONFIG_PARAMS4 structs.

· MSAJTransport.h: New header file for AllJoyn. See http://en.wikipedia.org/wiki/AllJoyn for further details

· MSClus.h: Has been reworked quite a bit to support new clustering functionality in Windows 10 / Windows 2016.

· mscoreee.h: Another .NET header file which has been moved.

· msdelta.h: More references to ARM64. One of the comments even refers to ARM64 Portable Executable files with CLI4 transform.

· msft_*.mof: Quite a few new CIM classes and additions to existing ones.

· MsHtmcid.h: New IDM_FORWARDDELETE, IDM_INSERTHTML, IDM_SHAREPICTURE, IDM_ENABLE_OBJECT_RESIZING, IDM_INSERTTEXT, IDM_SAVEPDF, IDM_SETPOINTERLOCKCONSENT & IDM_GETPRINTMANAGERDOCSOURCEASYNC defines. Some of these enums indicate new functionality which may be available with the Edge Browser.

· Mshtmdid.h: New DISPID_ONCOMPASSNEEDSCALIBRATION, DISPID_A_WEBKIT_*, DISPID_A_MEDIAWEBKIT*, DISPID_EVPROP_*, DISPID_IHTMLCSSSTYLEDECLARATION4_WEBKIT, DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH, DISPID_IHTMLPLUGINSCOLLECTION_LENGTH, DISPID_IHTMLPLUGINSCOLLECTION_REFRESH, DISPID_IHTMLPRIVATEWINDOWACCESSIBLE_GETACCESSIBLEOBJECT, DISPID_IHTMLPRIVATEDOCUMENT4_*, DISPID_IE9EVENTS_*, DISPID_IE9EVENTS_MSWEBVIEWCONTAINSFULLSCREENELEMENTCHANGED, DISPID_IE9EVENTS_ORIENTATIONCHANGE & DISPID_IE9EVENTS_COMPASSNEEDSCALIBRATION defines.

· MsHtmHst.h/idl: New CONTEXT_MENU_PDF define. New InitializeLocalHtmlEngine & UnitializeLocalHtmlEngine APIs.

· MsHTML.h/idl/Mshtmlc.h: New IHTMLCSSStyleDeclaration4 interface. New styleDisplayWebkitBox, styleDisplayWebkitInlineBox enum values. New styleWebkitBoxOrient, styleWebkitBoxDirection, styleWebkitBoxPack enums. New styleColumnSpanNotSet enum value. Some of the existing styleColumnSpan, stylePointerEvents and styleTransformStyle enum values have changed. New styleWebkitAppearance enum.

· Msi.h: New NTDDI_WINTHRESHOLD define with a value of 0x06040000. This may or may not need to be updated to 0x0A000000 for RTM

· MsiDefs.h: New NTDDI_WINTHRESHOLD define with a value of 0x06040000. This may or may not need to be updated to 0x0A000000 for RTM

· msssip.h: New MSSIP_FLAGS_MULTI_HASH, SPC_DIGEST_GENERATE_FLAG, SPC_DIGEST_SIGN_FLAG defines.

· mswmdm.h: New WMDM_FORMATCODE_MKV, WMDM_FORMATCODE_MKA & WMDM_FORMATCODE_MK3D defines.

· Nap*.h/idl: These 17 files have been removed as part of the deprecation of Network Access Protection.

· ncrypt.h: New NCRYPT_ECDSA_ALGORITHM, NCRYPT_ECDH_ALGORITHM, NCRYPTBUFFER_SSL_SESSION_HASH, NCRYPTBUFFER_*, NCRYPTBUFFER_ECC_*, NCRYPT_CLAIM_*, NCRYPT_ATTESTATION_FLAG, NCRYPT_AUTHORITY_KEY_FLAG, NCRYPT_PUBLIC_LENGTH_PROPERTY, NCRYPT_SIGNATURE_LENGTH_PROPERTY, NCRYPT_ECC_*, NCRYPT_PCP_PLATFORM_BINDING_PCRALGID_PROPERTY, NCRYPT_CHANGEPASSWORD_PROPERTY, NCRYPT_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY, NCRYPT_PIN_CACHE_* & NCRYPT_KEY_STORAGE_INTERFACE_VERSION* defines. New NCryptCreateClaim & NCryptVerifyClaim API. All told this looks like quite a lot of interesting new functionality in Cryptography Next Generation in Windows 10. I plan to update my CryptoWrappers classes at some stage to include this new functionality.

· ncryptoprotect.h: New NCRYPT_KEY_PROTECTION_ALGORITHM_LOCKEDCREDENTIALS define. New NCryptStreamOpenToUnprotectEx API and associated NCRYPT_PROTECT_STREAM_INFO_EX struct.

· ndr64types.h: NDR64_PROC_FLAGS, NDR64_RPC_FLAGS structs have new members.

· netfw.h/idl: New NetworkIsolationGetEnterpriseInfo, NetworkIsolationGetEnterpriseIdAsync & NetworkIsolationGetEnterpriseIdClose APIs

· NtDsAPI.h: New DS_BEHAVIOR_WINTHRESHOLD define with an interesting comment that this should be fixed when the final product name is available. I guess this define will become DS_BEHAVIOR_WIN2016. From the comment we can tell that as of Q1 2014 Windows Server 2016 was still being called by the codename “Threshold“. New GUID_KEYS_CONTAINER_W & GUID_PRIVILEGED_ACCESS_MANAGEMENT_OPTIONAL_FEATURE_* defines.

· NtLdap.h: New LDAP_SEARCH_HINT_REQUIRED_INDEX_OID, LDAP_SEARCH_HINT_REQUIRED_INDEX_OID_W, LDAP_SERVER_* defines.

· ntlsa.h: New SeAdtParmTypeMultiSzString, SeAdtParmTypeLogonIdEx, iLogon_Groups, iDetailedTracking_PnpActivity enum values. New LSA_LOOKUP_DISALLOW_CONNECTED_ACCOUNT_INTERNET_SID, LSA_LOOKUP_PREFER_INTERNET_NAMES & TRUST_ATTRIBUTE_PIM_TRUST defines.

· NTSecAPI.h: New Audit_DetailedTracking_PnpActivity & Audit_Logon_Groups defines. New SeAdtParmTypeMultiSzString & SeAdtParmTypeLogonIdEx enum values. New TRUST_ATTRIBUTE_PIM_TRUST define. New members to MSV1_0_PROTOCOL_MESSAGE_TYPE struct.

· NTSecPKG.h: New PRIMARY_CRED_INTERNET_USER, PRIMARY_CRED_PACKED_CRED, PRIMARY_CRED_ENTERPRISE_INTERNET_USER & SECPKG_STATE_CRED_ISOLATION_ENABLED defines.

· objbase.h: This header file has been refactored to use a new coml2api.h file.

· Objidl.h/idl: New COMBND_RESERVED*, COMGLB_RESERVED* & CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_* defines.

· ObjIdlbase.h/idl: New COMBND_RESERVED*, COMGLB_RESERVED* & CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_* defines

· Ole2.h: This header file has been refactored to use a new coml2api.h file.

· ondemandconnroutehelper.h: New GetInterfaceContextTableForHostName & FreeInterfaceContextTable APIs

· opcode.def: Another .NET header file which has been moved.

· openum.h: Another .NET header file which has been moved.

· opmapi.h: New OPM_HDCP_WITH_TYPE_ENFORCEMENT_PROTECTION_LEVEL enum. New OPM_PROTECTION_TYPE_HDCP_TYPE_ENFORCEMENT enum value.

· pacmanclientapi.h: New Header file. The interfaces may be for managing the Tiled UI on Windows Phone.

· pix.h/pix_win.h: New header files for PIX

· powrprof.h: New ACCESS_PROFILE enum value

· PrinterExtension.h/idl: New IPrinterScriptablePropertyBag2 interface.

· PrinterExtensionDispId.h: New DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETSTREAMASXML define.

· ProcessSnapshot.h: New PSS_OBJECT_TYPE_SEMAPHORE enum value. The PSS_HANDLE_ENTRY struct has been extended to contain additional members. It looks like there is some cleanup to be done in this header file prior to RTM

· processthreadapi.h: Has a comment in it which should be moved to documentation prior to RTM. New ProcessMemoryExhaustionInfo, ProcessAppMemoryInfo & ProcessInformationClassMax enum values.

· PropIdlBase.h/idl: New header files for the refactoring of the COM header files in the SDK

· propkey.h: New PKEY_* defines.

· propsys.h: New CLSID CLSID_InMemoryPropertyStoreMarshalByValue define.

· propvarutil.h: New InitVariantFromUnknown API. InitPropVariantFromString API implementation has been reworked.

· qmgr.h: BSTR_UserSize64, BSTR_UserMarshal64, BSTR_UserUnmarshal64, BSTR_UserFree64, VARIANT_UserSize64, VARIANT_UserMarshal64, VARIANT_UserUnmarshal64 & VARIANT_UserFree64 APIs have been removed.

· Ras.h: New RASEO2_IsAlwaysOn & RASEO2_IsPrivateNetwork defines.

· Rdcentraldb.idl: New IRdDesktopAssignment interface. New CreateDesktopAssignment method in IRdMsDataHelper interface. New parameters to IRdMsDb::GetServer and IRdMsDb::EnumerateServers. Five new methods in the IRdMsDb interface. Since these changes are breaking changes in a COM interface plus the fact that I could not find any documentation on these interfaces it looks like these are private COM interfaces used by MS

· rdpencomapi.h/idl: New IRDPSRAPIFrameBuffer, IRDPSRAPITransportStreamBuffer, IRDPSRAPITransportStreamEvents, IRDPSRAPITransportStream, IRDPSRAPISharingSession2, IRDPViewerRenderingSurface, IRDPViewerInputSink, IRDPSRAPIAudioStream & IRDPSRAPIPerfCounterLoggingManager interfaces. It looks like there is quite a bit of new functionality in Windows Desktop Sharing in Windows 10.

· realtimeapiset.h: New QueryInterruptTimePrecise, QueryUnbiasedInterruptTimePrecise & QueryInterruptTime APIs.

· reason.h: New SHTDN_REASON_FLAG_MOBILE_UI_RESERVE define.

· Resapi.h: Has been reworked quite a bit to support new clustering functionality in Windows 10 / Windows 2016.

· ResourceIndexer.h: New header file with CreateResourceIndexer, DestroyResourceIndexer, IndexFilePath & DestroyIndexedResults APIs

· Routprot.h: ValidateRouteEx function pointer parameters have changed

· rtlsupportapi.h: More references to ARM64

· RTWorkQ.h: New RtwqSetDeadline & RtwqCancelDeadline APIs

· schannel.h: New SecPkgContext_KeyingMaterialInfo, SecPkgContext_KeyingMaterial & SecPkgContext_SrtpParameters structs. These structs extend SChannel SSPI to expose SRTP attributes.

· sdoias.h/idl: New SYSTEM_TYPE_NT6_2_WORKSTATION, SYSTEM_TYPE_NT6_3_WORKSTATION, and SYSTEM_TYPE_NT10_1_WORKSTATION, SYSTEM_TYPE_NT6_1_SERVER, SYSTEM_TYPE_NT6_2_SERVER, SYSTEM_TYPE_NT6_3_SERVER & SYSTEM_TYPE_NT10_1_SERVER enum values. This header file is for Server Data Objects.

· sessdirpublictypes.h./idl: New TARGET_GRANT_ADMIN_PRIVILEGE, TARGET_INVALID, RD_FARM_* & VM_NOTIFY_STATUS_CANCELED defines. This header file is for Remote Desktop Virtualization API.

· shdispid.h: New DISPID_ENTERPRISEIDCHANGED define

· shellapi.h: SIID_MAX_ICONS enum value has changed to 178.

· ShellScalingApi.h: New SHELL_UI_COMPONENT enum. New GetDpiForShellUIComponent API. This seems to be some of the work to better support High DPI on Windows 10

· sherrors.h: New SHC_E_SHELL_COMPONENT_STARTUP_FAILURE define.

· ShDisp.h/idl: New IWebWizardHost2 interface.

· ShObjIdl.h /idl: New IVirtualDesktopManager, IAppActivationUIInfo interface. New CATINFO_*, SLR_* enum values. The IVirtualDesktopManager supports the new Virtual Desktops feature in Windows 10.

· shtypes.h: New SCALE_*_PERCENT enum values. This seems to be some of the work to better support High DPI on Windows 10

· SkyDriveSkynPartners.h\idl: The ILSCEvent2 interface has been removed.

· slpublic.h: New SL_INFO_KEY_BIOS_PKEY_DESCRIPTION define. New SL_GEN_STATE_OFFLINE enum value.

· SoftPub.h: New CONFIG_CI_ACTION_VERIFY define.

· spellcheck.h/idl: New ISpellChecker2 interface which supports removing a word from its dictionary.

· srpapi.h: New header file with SrpCreateThreadNetworkContext, SrpCloseThreadNetworkContext, SrpSetTokenEnterpriseId & SrpGetProcessFQBNAttributeValue APIs. The interfaces may be for Software Restriction Policy improvements on Windows 10 Enterprise.

· storagewmi_provider.mof: Pulls in all the new msft_* mof files.

· StrongName.h: Another .NET header file which has been moved

· sysinfoapi.h: New GetOsManufacturingMode and GetIntegratedDisplaySize APIs

· SystemMediaTransportControlsInterop.h/idl: New files with ISystemMediaTransportControlsInterop interface.

· taskschd.h: New TASK_COMPATIBILITY_V2_3 enum value. This enum value indicates that the Task Scheduler v2.3 is what windows 10 will be.

· tdh.h: New PropertyHasCustomSchema enum value. EVENT_PROPERTY_INFO struct has new customSchemaType substruct.

· TextServ.h: New TXTBIT_FLASHLASTPASSWORDCHAR & TXTBIT_ADVANCEDINPUT defines.

· TextStor.h: New TS_SD_INPUTPANEMANUALDISPLAYENABLE define.

· TimeProv.h: Removed wszW32TimeRegValueRunOnVirtualOnly define

· tlbref.h/idl: Another set of .NET headers which has been moved.

· tokenbinding.h: New header file with support for the Token Binding protocol.

· tpmvscattestation.h/idl: New header files with new TPMVSC_ATTESTATION_TYPE enum

· tpmvscmgr.h/idl: New ITpmVirtualSmartCardManager3 interface to support creation of scard cards in a TPM with Attestation.

· TxDtc.h: New IResourceManagerRejoinable interface for Distributed Transaction Coordinator.

· UIAutomationClient.h/idl: New UIA_*, AnnotationType_* defines. New IUIAutomationCustomNavigationPattern & IUIAutomationElement4 interfaces for UI Automation.

· UIAutomationCore.h/idl: New ICustomNavigationProvider for UI Automation.

· UIAutomationCoreApi.h: New IsCustomNavigationPatternAvailable_Property_GUID, PositionInSet_Property_GUID, SizeOfSet_Property_GUID, Level_Property_GUID, AnnotationTypes_Property_GUID, AnnotationObjects_Property_GUID, Value_Value_Property_GUID & CustomNavigation_Pattern_GUID defines. New CustomNavigationPattern_Navigate API.

· UIViewSettingsInterop.h/idl: New header files with IUIViewSettingsInterop interface.

· upnphost.h/idl: New IUPnPDeviceControlHttpHeaders interface.

· urlmon.h/idl: New IZoneIdentifier2 interface. New CLSID_TBAuthProtocol, FMFD_RESERVED_1, CFSTR_MIME_X_MIXED_REPLACE, CFSTR_MIME_X_JAVASCRIPT, CFSTR_MIME_TEXT_JSON, CFSTR_MIME_APPLICATION_JAVASCRIPT, INET_E_*, BINDSTATUS_SSLUX_HSTSFATALERROR, BINDSTRING_ENTERPRISE_ID, FEATURE_ALLOW_HSTS_SECURITY_ERROR & FEATURE_FORCE_HSTS_POLICY defines. This header file maps to new functionality in URL Security Zone Identifiers.

· UserEnv.h: Removal of PT_ROAMING_PREEXISTING define.

· utilapiset.h: New EncodeRemotePointer & DecodeRemotePointer APIs.

· uusbfn.h: New header file which simply includes other existing header files.

· vdserr.h: New VDS_E_* defines.

· Vdssys.h: Has been reworked quite a bit to support new Virtual Disk functionality in Windows 10 / Windows 2016. For example VHD Snapshots now seem to be supported via a new TakeSnapshotVhdSet API.

· VerError.h: Another .NET header file which has been moved

· VersionHelpers.h: New IsWindowsThresholdOrGreater & IsWindows10OrGreater APIs.

· virtdisk.h: Has been reworked quite a bit to support new Virtual Disk functionality in Windows 10 / Windows 2016.

· vsstyle.h: New WP_BORDER enum value

· vssym32.h: New TMT_* defines.

· wbcl.h: Has been reworked quite a bit to support new Trusted Platfom Module Base Services functionality in Windows 10 / Windows 2016.

· WcnDevice.h: New WCN_PASSWORD_TYPE_OOB_SPECIFIED enum value for Windows Connect Now.

· WcnTypes.h: New WCN_VALUE_* enum values for Windows Connect Now.

· WebAuthenticationCoreManagerInterop.h/idl: New header files with IWebAuthenticationCoreManagerInterop interface.

· WebServices.h: New WS_SECURITY_BEARER_KEY_TYPE_VERSION enum.

· WERAPI.h: New WER_FAULT_*, WER_SUBMIT_DISCARD_IF_QUEUED defines. New WerFileTypeEtlTrace, WerReportUploadedCab, WerStorageLocationNotFound enum value. New WER_REPORT_INFORMATION_V5 struct. This header file maps to new functionality in Windows Error Reporting.

· wheader.h: New WHEA_DISABLE_DUMMY_WRITE define.

· WinBase.h: GlobalAlloc, GlobalReAlloc, LocalAlloc, LocalReAlloc have been decorated to work with the Memory Diagnostics tools in VC 2015. Check out http://blogs.msdn.com/b/vcblog/archive/2014/06/04/native-memory-diagnostic-tools-for-visual-studio-14-ctp1.aspx. New EFS_DROP_ALTERNATE_STREAMS, ProcThreadAttributeJobList, PROCESS_CREATION_MITIGATION_POLICY_*, SYSTEM_STATUS_FLAG_POWER_SAVING_ON defines. New SystemStatusFlag member for SYSTEM_POWER_STATUS struct. New WTSGetServiceSessionId & WTSIsServerContainer APIs. These APIs could be the beginning of developer support for Docker Containers on Windows.

· winbase.inl: The various Isolation Aware functions have been refactored from this header file. For more information please see https://msdn.microsoft.com/en-us/library/aa375197.aspx

· WinBio.h: New substructs added to the WINBIO_ASYNC_RESULT struct. New WinBioEnrollSelect & WinBioMonitorPresence API. Has been reworked quite a bit to support new Windows Biometric functionality in Windows 10 / Windows 2016

· winbio_adapter.h: Has been reworked quite a bit to support new Windows Biometric functionality in Windows 10 / Windows 2016

· wincodec.h/idl: New IWICJpegFrameDecode and IWICJpegFrameEncode interface. New CLSID_WICJpegQualcommPhoneEncoder, WIC_JPEG_*, GUID_WICPixelFormat16bpp & WICBitmapInterpolationModeHighQualityCubic defines. New WICJpegIndexingOptions, WICJpegTransferMatrix & WICJpegScanType enums. New WICJpegFrameHeader & WICJpegScanHeader structs.

· wincrypt.h: new szOID_ECC_CURVE_*, X509_ECC_PARAMETERS, szOID_KP_PRIVACY_CA, szOID_ATTEST_WHQL_CRYPTO, szOID_KP_FLIGHT_SIGNING, szOID_PIN_RULES_*, szOID_EV_WHQL_CRYPTO, szOID_SITE_PIN_RULES_*, SITE_PIN_RULES_ALL_SUBDOMAINS_FLAG, szOID_RDN_TCG_PLATFORM_*, szOID_ENROLL_SCEP_*, szOID_ATTR_PLATFORM_SPECIFICATION, CRYPT_OID_USE_CURVE_NAME_FOR_ENCODE_FLAG, CRYPT_OID_USE_CURVE_PARAMETERS_FOR_ENCODE_FLAG, CMSG_SIGNED_DATA_NO_SIGN_FLAG, CERT_SCEP_GUID_PROP_ID, CERT_SERIALIZABLE_KEY_CONTEXT_PROP_ID, CERT_ISOLATED_KEY_PROP_ID, CERT_DISABLE_PIN_RULES_AUTO_UPDATE_VALUE_NAME, CERT_AUTO_UPDATE_SYNC_FROM_DIR_URL_VALUE_NAME, CERT_PIN_RULES_*, CRYPT_CREATE_NEW_CACHE_ENTRY, CRYPTNET_URL_CACHE_PRE_FETCH_PIN_RULES_CAB, CRYPT_RETRIEVE_MAX_ERROR_CONTENT_LENGTH, CERT_CHAIN_WEAK_FILE_HASH_AFTER_TIME_NAME, CERT_CHAIN_WEAK_TIMESTAMP_HASH_AFTER_TIME_NAME, CERT_CHAIN_DISABLE_*, CERT_CHAIN_AUTO_*, CERT_CHAIN_DISABLE_AUTO_FLUSH_PROCESS_NAME_LIST_VALUE_NAME, CERT_SRV_OCSP_RESP_*, CRYPTNET_CRL_PRE_FETCH_*, CERT_CHAIN_ONLY_ADDITIONAL_AND_AUTH_ROOT, CERT_CHAIN_FIND_BY_ISSUER, MICROSOFT_ROOT_CERT_CHAIN_POLICY_DISABLE_FLIGHT_ROOT_FLAG, CRYPT_STRING_BASE64URI, CRYPT_STRING_PERCENTESCAPE, PKCS12_ONLY_CERTIFICATES, PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES, PKCS12_ONLY_CERTIFICATES_PROVIDER_TYPE, PKCS12_ONLY_CERTIFICATES_PROVIDER_NAME, PKCS12_ONLY_CERTIFICATES_CONTAINER_NAME, PKCS12_DISABLE_ENCRYPT_CERTIFICATES, PKCS12_ENCRYPT_CERTIFICATES, PKCS12_EXPORT_ECC_CURVE_PARAMETERS, PKCS12_EXPORT_ECC_CURVE_OID, PKCS12_CONFIG_REGPATH, PKCS12_ENCRYPT_CERTIFICATES_VALUE_NAME, CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_READ_FLAG, CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_WRITE_FLAG, CERT_FILE_HASH_USE_TYPE & CERT_TIMESTAMP_HASH_USE_TYPE defines. CMSG_SIGNER_ENCODE_INFO struct has a new hBCryptKey member. CRYPT_RETRIEVE_AUX_INFO struct has two new members. New CERT_SERVER_OCSP_RESPONSE_OPEN_PARA struct. New PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK function callback. CertOpenServerOcspResponse API now has a new documented parameter. New CertIsWeakHash API. All told there looks like quite a bit of new functionality in the Cryptography APIs in Windows 10. Hopefully over the next few months I will get some time to update my CryptoWrappers classes to expose this new functionality.

· WinDNS.h: New DNS_CLASS_UNICAST_RESPONSE, DNS_RCLASS_UNICAST_RESPONSE, DNS_TYPE_TLSA, DNS_RTYPE_TLSA, DNS_TLSA_RECORD_LENGTH & DNS_UNKNOWN_RECORD_LENGTH defines. New DNS_TLSA_DATA & DNS_UNKNOWN_DATA structs. New DNS_TLSA_DATA and DNS_UNKNOWN_DATA members in the DNS_RECORDW/A structs.

· windows.devices.alljoyn.interop.h/idl: New header files for AllJoyn. See http://en.wikipedia.org/wiki/AllJoyn for further details

· windows.graphics.directx.direct3d11.interop.h: New header file with some helper methods for D3D on WinRT

· windows.graphics.imaging.interop.h/idl: New header files with new ISoftwareBitmapNative & ISoftwareBitmapNativeFactory interfaces for WinRT.

· Windows.h: More references to ARM64

· windows.media.core.interop.h/idl: New header files with new IAudioFrameNative, IVideoFrameNative, IAudioFrameNativeFactory & IVideoFrameNativeFactory interfaces.

· windows.ui.xaml.media.dxinterop.h/idl: New ISwapChainPanelNative2 inteface for WinRT.

· WindowsNumerics.h/inl: New header file and implementation file which supports C++ vector and matrix types. It is part of Win2D

· winefs.h: New EFS_COMPATIBILITY_VERSION_PFILE_PROTECTOR & EFS_IS_DESCRIPTOR_VERSION defines.

· wingdi.h: New DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE enum value. New DISPLAYCONFIG_DESKTOP_IMAGE_INFO & DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION structs. New DISPLAYCONFIG_DESKTOP_IMAGE_INFO sub-struct in DISPLAYCONFIG_MODE_INFO struct. New DISPLAYCONFIG_PATH_*, DISPLAYCONFIG_PATH_*, DISPLAYCONFIG_DEVICE_INFO_*, QDC_VIRTUAL_MODE_AWARE & SDC_VIRTUAL_MODE_AWARE defines. New sub-struct in DISPLAYCONFIG_PATH_SOURCE_INFO struct. New sub-struct in DISPLAYCONFIG_PATH_TARGET_INFO struct. New ScaleRgn, ScaleValues, GetDCDpiScaleValue & GetBitmapDpiScaleValue APIs. This seems to be some of the work to better support High DPI on Windows 10

· winhttp.h: New WINHTTP_OPTION_CONNECTION_FILTER & HTTP_STATUS_PERMANENT_REDIRECT defines.

· Wininet.h: New INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH, INTERNET_OPTION_ENABLE_HTTP_PROTOCOL, INTERNET_OPTION_HTTP_PROTOCOL_USED, INTERNET_OPTION_HSTS, INTERNET_OPTION_ENTERPRISE_CONTEXT, INTERNET_OPTION_CONNECTION_FILTER, INTERNET_OPTION_REFERER_TOKEN_BINDING_HOSTNAME, HTTP_PROTOCOL_FLAG_HTTP2, HTTP_QUERY_HTTP2_SETTINGS, HTTP_QUERY_STRICT_TRANSPORT_SECURITY, HTTP_QUERY_TOKEN_BINDING, HTTP_QUERY_INCLUDE_REFERER_TOKEN_BINDING_ID, HTTP_STATUS_PERMANENT_REDIRECT, INTERNET_COOKIE_HOST_ONLY, INTERNET_COOKIE_APPLY_HOST_ONLY & ERROR_HTTP_HSTS_REDIRECT_REQUIRED defines. New HttpIsHostHstsEnabled API. These changes are part of adding HTTP/2 to Internet Explorer in Windows 10 and HTTP Strict Transport Security.

· Winineti.h: New INTERNET_OPTION_ENABLE_WBOEXT, INTERNET_OPTION_SET_IN_PRIVATE, INTERNET_OPTION_DOWNLOAD_MODE_HANDLE, INTERNET_OPTION_EDGE_COOKIES, CACHE_CONFIG_DISK_SPACE_* & CACHE_HEADER_DATA_HSTS_CHANGE_COUNT defines. New INTERNET_DOWNLOAD_MODE_HANDLE struct. COOKIE_ALLOWED_SET_FLAGS & COOKIE_ALLOWED_COOKIE_FLAGS defines have been updated. New UrlCacheFreeGlobalSpace, UrlCacheGetGlobalCacheSize, AppCacheCreateAndCommitFile & UrlCacheServer APIs.

· winioctl.h: The header file has been reworked quite a bit to support changes coming to Storage in Windows 10/2016.

· winmeta.h/xml: New WINEVENT_CHANNEL_TRACELOGGING & MSG_channel_TraceLogging define. WINEVENT_KEYWORD_WDI_CONTEXT & MSG_keyword_WDIContext defines have been removed.

· WinNls.h: New LOCALE_IDIALINGCODE define which returns a country code’s dialling prefix. New LOCALE_SAM, LOCALE_SPM, LOCALE_SSHORTESTAM, LOCALE_SSHORTESTPM, DATE_MONTHDAY, CAL_PERSIAN & GEO_DIALINGCODE defines.

· winnt.h: More references to ARM64. New Product_* defines. These additions were picked up by DtWinVer v1.96. New COMPILETIME_OR_6FLAGS, DBG_REPLY_LATER, DBG_PRINTEXCEPTION_WIDE_C, CONTEXT_KERNEL_DEBUGGER, SECURITY_SID_SIZE, SECURITY_INSTALLER_GROUP_CAPABILITY_BASE, SECURITY_INSTALLER_GROUP_CAPABILITY_RID_COUNT, SECURITY_INSTALLER_CAPABILITY_RID_COUNT, DOMAIN_USER_RID_DEFAULT_ACCOUNT, DOMAIN_GROUP_RID_KEY_ADMINS, DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS, DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT, DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS, SECURITY_CAPABILITY_APP_RID, SECURITY_CAPABILITY_APPOINTMENTS, SECURITY_CAPABILITY_CONTACTS, SECURITY_AUTHENTICATION_KEY_TRUST_RID, SECURITY_AUTHENTICATION_KEY_PROPERTY_MFA_RID, SECURITY_AUTHENTICATION_KEY_PROPERTY_ATTESTATION_RID, SE_ACTIVATE_AS_USER_CAPABILITY, SE_CONSTRAINED_IMPERSONATION_CAPABILITY, SE_SESSION_IMPERSONATION_CAPABILITY, SE_MUMA_CAPABILITY, TOKEN_USER_MAX_SIZE, TOKEN_OWNER_MAX_SIZE, TOKEN_INTEGRITY_LEVEL_MAX_SIZE, TOKEN_APPCONTAINER_SID_MAX_SIZE, JOB_OBJECT_LIMIT_VIOLATION_INFORMATION_VERSION_3, JOB_OBJECT_LIMIT_*, JOB_OBJECT_CPU_RATE_CONTROL_*, JOB_OBJECT_NET_RATE_CONTROL_*, JOB_OBJECT_IO_RATE_CONTROL_*, SILO_OBJECT_*, PF_ARM_V8_INSTRUCTIONS_AVAILABLE, PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE, PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE, PF_RDTSCP_INSTRUCTION_AVAILABLE, XSTATE_*, CFG_CALL_TARGET_INFO, MEMORY_PARTITION_*, PAGE_TARGETS_*, FILE_SUPPORTS_BLOCK_REFCOUNTING, FILE_SUPPORTS_SPARSE_VDL, IO_REPARSE_TAG_WCI, IO_QOS_MAX_RESERVATION, GUID_DEEP_SLEEP_ENABLED, GUID_DISK_MAX_POWER, GUID_POWER_SAVING_STATUS, GUID_ENERGY_SAVER_SUBGROUP, GUID_ENERGY_SAVER_BATTERY_THRESHOLD, POWERBUTTON_ACTION_INDEX_TURN_OFF_THE_DISPLAY, POWERBUTTON_ACTION_VALUE_TURN_OFF_THE_DISPLAY, PROCESSOR_THROTTLE_*, *PROCESSOR_PERF_*, GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD, GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK, GUID_WIFI_IN_STANDBY, POWER_WIFI_IN_STANDBY_DISABLED, POWER_WIFI_IN_STANDBY_ENABLED, GUID_BATTERY_COUNT, DIAGNOSTIC_REASON_*, HIBERFILE_TYPE_*, IMAGE_FILE_MACHINE_ARM64, IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG, IMAGE_REL_ARM64_*, IMAGE_GUARD_*, IMAGE_DEBUG_TYPE_*, COMIMAGE_FLAGS_32BITPREFERRED, FAST_FAIL_*, DEVICEFAMILY*, REG_APP_HIVE_OPEN_READ_ONLY & SERVICE_USER* defines. XSAVE_AREA_HEADER struct has a new member. New InterlockedExchangeAdd8, InterlockedExchangeAddSizeT, InterlockedExchangeAddSizeTAcquire, InterlockedExchangeAddSizeTNoFence, InterlockedIncrementSizeT, InterlockedIncrementSizeTNoFence, InterlockedDecrementSizeT, InterlockedDecrementSizeTNoFence, ReadBooleanAcquire, ReadBooleanNoFence, WriteBooleanRelease, WriteBooleanNoFence, RtlOsDeploymentState, RtlGetDeviceFamilyInfoEnum, RtlConvertDeviceFamilyInfoToString & RtlSwitchedVVI APIs. New SE_SID, SE_TOKEN_USER, PROCESS_MITIGATION_FONT_DISABLE_POLICY, JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_EX, JOBOBJECT_LIMIT_VIOLATION_INFORMATION_EX, JOBOBJECT_NET_RATE_CONTROL_INFORMATION, JOBOBJECT_IO_RATE_CONTROL_INFORMATION, SILOOBJECT_BASIC_INFORMATION, SILOOBJECT_ROOT_DIRECTORY, SERVERSILO_STATE, SERVERSILO_BASIC_INFORMATION, HIBERFILE_BUCKET, IMAGE_LOAD_CONFIG_CODE_INTEGRITY, IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, OS_DEPLOYEMENT_STATE_VALUES structs. New SidTypeLogonSession, TokenPrivateNameSpace, ProcessFontDisablePolicy, JobObject*, SharedVirtualDiskSnapshotsSupported, PowerActionDisplayOff, POWER_INFORMATION_LEVEL & MonitorRequestReason* enum values. New WELL_KNOWN_SID_TYPE enum values. New PSECURITY_ATTRIBUTES_OPAQUE member in TOKEN_ACCESS_INFORMATION struct. New sub-struct in JOBOBJECT_CPU_RATE_CONTROL_INFORMATION struct. New SILOOBJECTINFOCLASS & HIBERFILE_BUCKET_SIZE enums. New EfficiencyClass member in PROCESSOR_RELATIONSHIP struct. New members in XSTATE_CONFIGURATION struct. New GuardCFDispatchFunctionPointer & IMAGE_LOAD_CONFIG_CODE_INTEGRITY members in IMAGE_LOAD_CONFIG_DIRECTORY struct. Removed GUID_VIDEO_FULLSCREEN_PLAYBACK, GUID_AUDIO_PLAYBACK, GUID_CS_BATTERY_SAVER_THRESHOLD, GUID_CS_BATTERY_SAVER_ACTION & GUID_CS_BATTERY_SAVER_TIMEOUT defines. New members in SYSTEM_POWER_CAPABILITIES struct. This is probably the main header file in the Windows SDK and the biggest changes in it cover things such as ARM64 support, Control Flow Guard and the probable underlying OS changes in Job Objects and a new concept of SILOs to support Docker Containers. I will look to update DtWinVer in the near future to support the new DeviceFamily.

· winreg.h: New RRF_SUBKEY_WOW6464KEY, RRF_SUBKEY_WOW6432KEY, RRF_WOW64_MASK, SHUTDOWN_SOFT_REBOOT & SHUTDOWN_MOBILE_UI defines.

· winsafer.h: New SRP_POLICY_WLDPCONFIGCI define

· winsdkver.h: Changes to _WIN32_MAXVER, _WIN32_WINDOWS_MAXVER, NTDDI_MAXVER, _WIN32_WINNT_MAXVER & WINVER_MAXVER to 0x0A00 for Windows 10.

· winspool.h: New BIDI_ACTION_GET_WITH_ARGUMENT & ERROR_BIDI_* defines.

· winsvc.h: New SERVICE_ACCEPT_USER_LOGOFF, SERVICE_TRIGGER_TYPE_AGGREGATE & SC_AGGREGATE_STORAGE_KEY defines. I will look to update CNTService in the near future to support the new service related functionality.

· winternl.h: New RtlInitStringEx & RtlInitAnsiStringEx APIs. New OBJ_IGNORE_IMPERSONATED_DEVICEMAP define.

· WinUser.h: New VK_NAVIGATION_*, VK_GAMEPAD_*, POINTER_STRUCTURES, DPISM_*, SPI_GETPENVISUALIZATION, SPI_SETPENVISUALIZATION & PENVISUALIZATION_* defines. New USAGE_PROPERTIES, POINTER_TYPE_INFO & INPUT_INJECTION_VALUE structs. Removal of SPI_GETMOUSECORNERCLIPLENGTH & SPI_GETMOUSECORNERCLIPLENGTH defines. The VK_GAMEPAD_* defines are probably because of the XBOX integration for the Windows 10 release.

· winuser.inl: Changes to handle the Isolation Aware functions. For more information please see https://msdn.microsoft.com/en-us/library/aa375197.aspx

· winuser.rh: New VK_NAVIGATION_* & VK_GAMEPAD_* defines.

· wlanapi.h: New WLAN_REASON_CODE_HOTSPOT2_PROFILE_DENIED, WLAN_REASON_CODE_HOTSPOT2_PROFILE_NOT_ALLOWED, WLAN_AVAILABLE_NETWORK_*, GUID_AEPSERVICE_WIFIDIRECT_DEVICE, DEVPKEY_WiFiDirect* & DEVPKEY_WiFi_InterfaceGuid defines. New WLAN_AVAILABLE_NETWORK_V2, WLAN_AVAILABLE_NETWORK_LIST_V2 & WLAN_CONNECTION_PARAMETERS_V2 structs. New WLAN_OPERATIONAL_STATE enum. New wlan_notification_acm_operational_state_change enum value. New WlanGetAvailableNetworkList2 & WlanConnect2 APIs.

· wmcodecdsp.h: Various new Media Foundation codecs for H.263, H.265, ALaw, MULaw, Vorbis, FLAC, MSALAC, MSAMRNB & AMRNB

· wofapi.h: New header file which supports Windows Image Boot Files and the work in Windows 10 to reduce its on disk footprint.

· workspaceruntime.h/idl: New IWorkspace3 interface.

· WS2tcpip.h: Inline gai_strerrorA and gai_strerrorW have been reworked slightly.

· Wscapi.h: wscDisableExpiredEnableDefender API has been removed

· Wuerrror.h: New WU_E_* defines. WU_E_CALL_CANCELLED_BY_HIDE, WU_E_CALL_CANCELLED_BY_INVALID define has changed value. The WU_E_HARDWARECAPABILITY_PARTIAL_RESULT define has been removed. Some of these changes reflect the enhancements being added to Windows Update in Windows 10.

· xamlOM.h/idl: New header files with new IVisualTreeServiceCallback, IVisualTreeService, IXamlDiagnostics interfaces for WinRT XAML.

· xaudio2.h: New XAUDIO2D_DLL_A, XAUDIO2D_DLL_W, XAUDIO2D_DLL, XAUDIO2_DEBUG_ENGINE, XAUDIO2_STOP_ENGINE_WHEN_IDLE & XAUDIO2_1024_QUANTUM defines. This covers new functionality in XAudio 2.9.

· xaudio2fx.h: New SideDelay member in XAUDIO2FX_REVERB_PARAMETERS struct. New XAUDIO2FX_REVERB_MIN_7POINT1_SIDE_DELAY, XAUDIO2FX_REVERB_MIN_7POINT1_REAR_DELAY, XAUDIO2FX_REVERB_MAX_7POINT1_SIDE_DELAY, XAUDIO2FX_REVERB_MAX_7POINT1_REAR_DELAY, XAUDIO2FX_REVERB_DEFAULT_7POINT1_SIDE_DELAY, XAUDIO2FX_REVERB_DEFAULT_7POINT1_REAR_DELAY, ReverbConvertI3DL2ToNative ineline function has an additional parameter and has been reworked slightly. This covers new functionality in XAudio 2.9.

· xmllite.h/idl: New IXmlWriterLite interface.

· xpsrassvc.h: New IXpsRasterizationFactory2 interface.

It looks like there’s loads of very interesting stuff in Windows 10 for native mode C++ developers to dig into. Happy coding.

Categories: Programming