Archive

Archive for the ‘Programming’ Category

TLS v1.3 support finally on Windows!

May 23, 2019 Comments off

As some of you may know I developed and maintain a set of C++ classes called SSLWrappers to encapsulate the TLS / SSL functionality exposed by Windows through it’s Schannel SSPI component. This provides the built-in TLS functionality in Windows and is roughly equivalent to the OpenSSL library in the Open-Source world. I have used Schannel and my support classes in a number of work and personal projects, and because it is built in to Windows is one less third party library you need to pull into your projects when you require low level TLS functionality. I actively use the SSLWrappers classes in my W3MFC, CPJNPOP3Connection and CPJNSMTPConnection Open-Source libraries. Chromium on Windows, Edge (as well as the newer “Edge on Chromium”), Internet Explorer and IIS all use SChannel internally for their TLS functionality. Also many of the higher level components in Windows such as WinHTTP and Windows Update internally also use Schannel for their HTTPS functionality.

The latest revision of TLS namely v1.3 was ratified as RFC 8446 back in August 2018. I have been monitoring new versions of Windows 10 client and Windows Server since mid 2018 to see when they would support TLS v1.3. The most recent references I can find from Microsoft about modernizing TLS in Windows is https://blogs.windows.com/msedgedev/2018/10/15/modernizing-tls-edge-ie11/ from October 2018 but this only makes oblique references to if / when TLS v1.3 will be available on Windows.

What I have just discovered and can now reveal today probably for the first time by anyone outside of Microsoft is that TLS v1.3 is now included inbox in Windows 10 v1903 and Windows Server 1903. By default support for TLS v1.3 is disabled in these versions of Windows but if you enable it using the expected registry values for TLS v1.3 Schannel you can get it to work.

To enable TLS v1.3 in either of these versions of Windows you should import the following registry file into your registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client]
“DisabledByDefault”=dword:00000000
“Enabled”=dword:00000001

This will enable the client side of TLS v1.3 in Windows and a reboot is not required for these changes to take effect, which is nice. If you want you can substitute the “Client” value above for “Server” and then import it also. The latter import will enable the server side of TLS v1.3 on Windows. Note that importing this .reg file on earlier versions of Windows such as Windows 10 1809 or Window Server 1809 seems to have no effect, meaning that TLS v1.3 is not supported on these earlier versions of Windows.

To test out TLS v1.3 support, you should then take the SSLWrappers sample app of mine and modify the code to include the additional line in red below at about line number 1079 and recompile:

//Create the credentials
SSLWrappers::CCachedCredentials credentials;
memset(&credentials.m_sslCredentials, 0, sizeof(credentials.m_sslCredentials));
credentials.m_sslCredentials.dwVersion = SCHANNEL_CRED_VERSION;
credentials.m_sslCredentials.grbitEnabledProtocols = SP_PROT_TLS1_3;
if (g_bManualServerCertificateValidation) //If we want to do manual server certificate validation, then ask SChannel not to do it automatically for us
  credentials.m_sslCredentials.dwFlags = SCH_CRED_MANUAL_CRED_VALIDATION;
status = credentials.Acquire(SECPKG_CRED_OUTBOUND, &credentials.m_sslCredentials);

Adding this line will force the demo app to only negotiate using TLS v1.3 and not to fall back to TLS v1.2 or lower. Then if you use the command line:

SSLWrappersDemo.exe 0 www.google.com 443

the demo app will try to make a TLS v1.3 connection to www.google.com. What you should see on Windows 10 1903 and Server 1903 is the following:

Connecting to http://www.google.com:443
Performing SSL client handshake
–SECPKG_ATTR_CONNECTION_INFO_EX_V1 details–
Version: 0x1
Protocol:
TLS v1.3
Cipher: AES
Cipher Strength: 0x100
Hash:
Hash Strength: 0x0
Exchange:
Exchange Strength: 0x0
–SECPKG_ATTR_CONNECTION_INFO details–
Protocol: TLS v1.3
Cipher: AES
Cipher strength: 256
Hash: SHA-384
Hash strength: 0
Key exchange algorithm identifier: 0x0, Class:0, Type:0, SID:0
Key exchange strength: 0
–SECPKG_ATTR_CIPHER_INFO details–
Version: 0x1
Protocol: 0x304
Cipher Suite: 0x1302
Base Cipher Suite: 0x1302
Cipher Suite: TLS_AES_256_GCM_SHA384
Cipher: AES
Cipher Length: 256
Cipher Block Length: 16
Hash:
Hash Length: 0x0
Exchange:
Exchange Min Length: 0
Exchange Max Length: 0
Certificate:
Key Type: 0x1d
–SECPKG_ATTR_APP_DATA details–
Session app data: Length:0,

 

This shows the sample app negotiating a TLS v1.3 connection to google.com using the TLS_AES-256-GCM_SHA384 cipher. FYI, TLS v1.3 has a much reduced set of supported ciphers. I have tried other TLS v1.3 servers on the Internet as documented at https://github.com/tlswg/tls13-spec/wiki/Implementations#test-servers but the only one I could get to work was www.google.com. If you try running the same modified version of the SSLWrappers demo app on earlier versions of Windows you will see it consistently failing while attempting the client TLS handshake with any TLS v1.3 server. Most of the other servers I tried failed when trying to negotiate the client TLS handshake. I also could get the client run of the demo app to connect to the server implementation of TLS v1.3 using the command line:

SSLWrappersDemo.exe 0 localhost 443

to run the server and then using the following command line to connect to that server as a client:

SSLWrappersDemo.exe 1 localhost 443

Please see the documentation for SSLWrappers on how to setup and test the code and certificates for this loopback test.

This investigation proves that Microsoft is shipping a functional TLS v1.3 implementation in their most current version of Windows client and server, but it remains to be seen when Microsoft will officially announce this support. It could even be the case that it will not be officially supported by MS until the next release of Windows 10 and Windows Server in Q3 2019. Come on Microsoft, tell us when we can start officially using TLS v1.3 on Windows.

 

Happy Coding!

Advertisement

June Dublin C/C++ User Group Presentation

June 12, 2018 Comments off

On Monday this week I did a presentation on my JSON++ library to the Dublin C/C++ User Group. The PowerPoint deck of my presentation is available here for those interested. A recording of the meetup should be available on the groups meetup page shortly.

March Dublin C++ User Group Presentation

March 6, 2018 1 comment

On Monday this week I did a presentation on using OpenStreetMap and various Microsoft technologies to the Dublin C++ User Group in Dublin. It provided an introduction to OpenStreetMap the project and then went through my OSMCtrl application which demoed a number of Microsoft Technologies such as Direct2D, Windows Animations, Windows Sensors, MFC and using WinHTTP to make web services calls. A big thanks to Mihai Todor and the fellow organisers who faciliated the meetup. The PowerPoint deck of my presentation is available here for those interested. A recording of the meetup should be available on the groups meetup page shortly.

Changes in the Windows v10.0.16232 SDK compared to Windows v10.0.15063 SDK (Part Two)

August 6, 2017 1 comment

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

Ok, let’s dive into the changes:

  • winsqlite\winsqlite3.h & winsqlite2ext.h: Win SQLITE header has been updated to SQLite v3.18.0 from 3.15.2. I will look to update Sqlite3Wrappers in the near future to support this new functionality.
  • amsi.h\idl: New AMSI_RESULT_BLOCKED_BY_ADMIN_START & AMSI_RESULT_BLOCKED_BY_ADMIN_END enum values. New AmsiResultIsBlockedByAdmin define.
  • 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_RS3 for of NTDDI_VERSION. This corresponds to Windows 10 codename “Redstone 3” aka Windows 10 Fall Creators Update.
  • AppxPackaging.h\idl: New IAppxPackageWriter3, IAppxManifestPackageId2, IAppxBundleWriter3, IAppxEncryptionFactory4 & IAppxEncryptedPackageWriter2 interfaces. New APPX_PACKAGE_WRITER_PAYLOAD_STREAM struct. New APPX_PACKAGE_ARCHITECTURE2 enum.
  • AviFmt.h: New cktypeDVFrame define.
  • bits10_1.h\idl: New Header and IDL files with new BITS functionality. Interfaces added include IBackgroundCopyCallback3, IBackgroundCopyFile6, BackgroundCopyManager10 & IBackgroundCopyCallback3. I will look to update BITSWrappers in the near future to support his new functionality.
  • BitsMsg.h: New BG_E_BLOCKED_BY_BACKGROUND_ACCESS_POLICY define.
  • CertCli.h: New CR_IN_HTTP define.
  • cfapi.h: New header file for Cloud Files API. This appears to be part of OneDrive Files On-Demand.
  • ClusApi.h: New RS3_UPGRADE_VERSION, CLUSAPI_VERSION_RS3, CLUSGRP_STATUS_OFFLINE_NOT_LOCAL_DISK_OWNER, CLUSRES_STATUS_OFFLINE_NOT_LOCAL_DISK_OWNER, CLUS_RESTYPE_NAME_SCALEOUT_MASTER, CLUS_RESTYPE_NAME_SCALEOUT_WORKER, CLUSREG_NAME_GRP_CCF_EPOCH_HIGH & CLUSREG_NAME_GRP_PLACEMENT_OPTIONS defines. New ClusGroupTypeInfrastructureFileServer, CLCTL_*, CLUSCTL_RESOURCE_* & PLACEMENT_OPTIONS_* enum values. New CLUSTER_MGMT_POINT_RESTYPE, CLUSTER_CLOUD_TYPE, CLUSTER_STORAGENODE_STATE & GRP_PLACEMENT_OPTIONS enums. New members in CREATE_CLUSTER_CONFIG & CREATE_CLUSTER_NAME_ACCOUNT structs. New CLUS_CREATE_INFRASTRUCTURE_FILESERVER_INPUT & CLUS_CREATE_INFRASTRUCTURE_FILESERVER_OUTPUT structs. New ClusterNodeReplacement, OpenClusterNodeById, RemoveClusterNameAccount, DetermineCNOResTypeFromNodelist, DetermineCNOResTypeFromCluster, DetermineClusterCloudTypeFromNodelist, DetermineClusterCloudTypeFromCluster, AddClusterStorageNode & RemoveClusterStorageNode APIs.
  • commapi.h: New OpenCommPort API.
  • d2d1_3.h: New ID2D1CommandSink5, ID2D1DeviceContext6, ID2D1Device6 & ID2D1Factory7 interfaces.
  • d3d10shader.h: New D3D10_SHADER_DEBUG_NAME_FOR_SOURCE & D3D10_SHADER_DEBUG_NAME_FOR_BINARY defines.
  • d3d12.h\idl: New ID3D12Fence1, ID3D12GraphicsCommandList2 & ID3D12Device3 interfaces. New D3D12_MAX_VIEW_INSTANCE_COUNT, D3D12_VIDEO_DECODE_MAX_ARGUMENTS, D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN, D3D12_VIDEO_PROCESS_MAX_FILTERS & D3D12_VIDEO_PROCESS_STEREO_VIEWS defines. New D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE, D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING, D3D12_FEATURE_D3D12_OPTIONS3, D3D_SHADER_MODEL_6_1, D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY, D3D12_RESOURCE_STATE_VIDEO_*, D3D12_FENCE_FLAG_NON_MONITORED, D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS, D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP & D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS enum values. New D3D12_VIEW_INSTANCING_TIER, D3D12_COMMAND_LIST_SUPPORT_FLAGS, D3D12_VIEW_INSTANCING_FLAGS & D3D12_WRITEBUFFERIMMEDIATE_MODE enums. New D3D12_FEATURE_DATA_D3D12_OPTIONS3, D3D12_VIEW_INSTANCE_LOCATION, D3D12_VIEW_INSTANCING_DESC, D3D12_WRITEBUFFERIMMEDIATE_PARAMETER structs. New function in ID3D12GraphicsCommandList1 interface.
  • d3d12sdklayers.h\idl: New ID3D12SharingContract interface. New D3D12_MESSAGE_ID_* enum values.
  • d3d12video.h\idl: New header file with D3D Video interfaces including ID3D12VideoDecoderHeap, ID3D12VideoDevice, ID3D12VideoDecoder, ID3D12VideoProcessor, ID3D12VideoDecodeCommandList & ID3D12VideoProcessCommandList interfaces.
  • d3dcommon.h\idl: New D3D_NAME_BARYCENTRICS & D3D12_NAME_BARYCENTRICS enum values.
  • d3dcompiler.h: New D3DCOMPILE_DEBUG_NAME_FOR_SOURCE & D3DCOMPILE_DEBUG_NAME_FOR_BINARY defines. New D3D_BLOB_DEBUG_NAME enum value.
  • DbgEng.h: New DEBUG_REQUEST_GET_MODULE_ARCHITECTURE, DEBUG_FORMAT_USER_SMALL_IPT_TRACE, DEBUG_DUMP_ACTIVE & DEBUG_KERNEL_ACTIVE_DUMP defines.
  • DbgHelp.h: New IMAGEHLP_EXTENDED_OPTIONS enum. New SymGetExtendedOption & SymSetExtendedOption APIs. New PSYMBOLSERVERSETHTTPAUTHHEADER function pointer. New SSRVACTION_HTTPSTATUS define.
  • DeviceCategories.h: New DEVICEDISPLAY_CATEGORY_DISPLAY_DOCK define.
  • DirectXCollision.inl: Inline C code has been extensively updated.
  • DirectXMath.h: DIRECTX_MATH_VERSION define has been updated. Inline code and defines has been updated.
  • DirectXMathMatrix.inl: Inline C code has been extensively updated.
  • DirectXMathMisc.inl: Inline C code has been extensively updated.
  • DirectXMathVector.inl: Inline C code has been extensively updated.
  • DirectXPackedVector.inl: Inline C code has been extensively updated.
  • DispatcherQueue.h: New Header file with new CreateDispatcherQueueController API.
  • dwrite.h: New DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES & DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME enum value. New DWRITE_MAKE_FONT_FEATURE_TAG define.
  • dwrite_3.h: New DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME, DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME & DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 enum values. New IDWriteFontResource, IDWriteFontFace5, IDWriteFontFaceReference1, IDWriteFontSet1, IDWriteFontCollection2, IDWriteTextFormat3, IDWriteFontSetBuilder2, IDWriteFactory6, IDWriteFontList2, IDWriteFontFamily2, IDWriteTextLayout4 & IDWriteFontFallback1 interfaces.
  • enclaveapi.h: New LoadEnclaveImageA, LoadEnclaveImageW, CallEnclave, TerminateEnclave & DeleteEnclave APIs.
  • esent.h: JET_paramMaxValueInvalid define has been updated.
  • eventman.xsd: Various elements have been updated in the XML schema.
  • evntcons.h: New EVENT_HEADER_EXT_TYPE_CONTROL_GUID & EVENT_HEADER_FLAG_DECODE_GUID define. New EtwProviderTraitDecodeGuid enum value.
  • FaxComEx.h: bstrGROUPNAME_ALLDEVICES define has been updated.
  • FhCfg.h\idl: IFhTarget, IFhScopeIterator, IFhConfigMgr & IFhReassociation interfaces have been marked deprecated.
  • FhStatus.h: New FH_STATE_BACKUP_NOT_SUPPORTED define.
  • FhSvcCtl.h: FhServiceOpenPipe, FhServiceClosePipe, FhServiceStartBackup, FhServiceStopBackup, FhServiceReloadConfiguration, FhServiceBlockBackup & FhServiceUnblockBackup APIs have been marked deprecated.
  • fwpmu.h: New FWPM_CONDITION_RESERVED*, FWPM_CALLOUT_HTTP_TEMPLATE_SSL_HANDSHAKE & FWPM_TUNNEL_FLAG_SITE_TO_SITE defines. New FwpmProviderContextAdd3, FwpmProviderContextGetById3, FwpmProviderContextGetByKey3, FwpmProviderContextEnum3 & FwpmIPsecTunnelAdd3 APIs.
  • fwpsu.h: New FWPS_LAYER_INBOUND_RESERVED2 enum value. New FWPS_FIELDS_INBOUND_RESERVED2 enum. New FWPS_CALLOUT_CLASSIFY_FN3 & FWPS_CALLOUT_NOTIFY_FN3 function pointers.
  • gamemonitor.h: New GAME_MONITORING_PERMISSION_STATE enum. New GetGameMonitoringPermissionState API.
  • gamingdeviceinformation.h: New Header file which provides a new GetGamingDeviceModelInformation API.
  • gamingtcui.h: New ShowGameInfoUI, ShowGameInfoUIForUser, ShowFindFriendsUI, ShowFindFriendsUIForUser, ShowCustomizeUserProfileUI, ShowCustomizeUserProfileUIForUser, ShowUserSettingsUI & ShowUserSettingsUIForUser APIs.
  • Icm.h: New CPST_STANDARD_DISPLAY_COLOR_MODE & CPST_EXTENDED_DISPLAY_COLOR_MODE enum values. New ET_STANDARDDISPLAYCOLOR 0x00020000 & ET_EXTENDEDDISPLAYCOLOR defines.
  • icu.h: A New header file which includes ICU functionality in Windows. This update was mentioned in https://visualstudiomagazine.com/articles/2017/02/08/windows-dev-day-win10-creator-update.aspx.
  • icucommon.h: Message added to indicate that this header file is deprecated in favour of new icu.h header file.
  • icui18n.h: Message added to indicate that this header file is deprecated in favour of new icu.h header file.
  • IE12Plugin.h: New IAudioSessionSite interface.
  • ImageHlp.h: New IMAGEHLP_EXTENDED_OPTIONS enum. New SymGetExtendedOption & SymSetExtendedOption APIs. New PSYMBOLSERVERSETHTTPAUTHHEADER function pointer. New SSRVACTION_HTTPSTATUS define.
  • iphlpapi.h: New GetTcpStatisticsEx2 & GetUdpStatisticsEx2 APIs.
  • iwscapi.h: New IWscProduct2 interface.
  • LMShare.h: New STYPE_RESERVED5, SHI1005_FLAGS_DISABLE_CLIENT_BUFFERING & SHI1005_FLAGS_IDENTITY_REMOTING defines.
  • LMUse.h: New USE_FLAG_GLOBAL_MAPPING, USE_LEVEL, USE_FLAGS_PARMNUM, USE_AUTHIDENTITY_PARMNUM, USE_SD_PARMNUM, USE_OPTIONS_PARMNUM, CREATE_REQUIRE_CONNECTION_INTEGRITY & CREATE_REQUIRE_CONNECTION_PRIVACY defines. New USE_INFO_5 struct.
  • lmuseflg.h: New FORCE_LEVEL define.
  • MDMRegistration.h: New MENROLL_E_USER_CANCELED, DEVICEREGISTRATIONTYPE_MDM_ONLY 0, DEVICEREGISTRATIONTYPE_MAM 5, DEVICEREGISTRATIONTYPE_MDM_DEVICEWIDE_WITH_AAD 6 & DEVICEREGISTRATIONTYPE_MDM_USERSPECIFIC_WITH_AAD defines. New MANAGEMENT_REGISTRATION_INFO struct. New REGISTRATION_INFORMATION_CLASS enum. New GetDeviceRegistrationInfo & RegisterDeviceWithManagementUsingAADCredentials API.
  • mfapi.h: New MFSampleExtension_Encryption_ProtectionScheme, MFSampleExtension_Encryption_CryptByteBlock, MFSampleExtension_Encryption_SkipByteBlock, MF_CAPTURE_METADATA_FIRST_SCANLINE_START_TIME_QPC, MF_CAPTURE_METADATA_LAST_SCANLINE_END_TIME_QPC, MF_CAPTURE_METADATA_SCANLINE_TIME_QPC_ACCURACY, MF_CAPTURE_METADATA_SCANLINE_DIRECTION, MFCAPTURE_METADATA_SCAN_RIGHT_LEFT, MFCAPTURE_METADATA_SCAN_BOTTOM_TOP, MFCAPTURE_METADATA_SCANLINE_VERTICAL, MFT_CATEGORY_VIDEO_RENDERER_EFFECT, MFT_ENUM_VIDEO_RENDERER_EXTENSION_PROFILE, MFVideoFormat_VP10, MFVideoFormat_AV1, MFSampleExtension_ForwardedDecodeUnits, MFSampleExtension_TargetGlobalLuminance, MFSampleExtension_ForwardedDecodeUnitType., MF_MT_FORWARD_CUSTOM_NALU, MF_MT_FORWARD_CUSTOM_SEI & MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE defines. New MFSampleEncryptionProtectionScheme enum. New MF_CUSTOM_DECODE_UNIT_TYPE enum.
  • Mferror.h: New MF_TYPE_ERR define.
  • mfidl.h\idl: New IMFSensorProcessActivity, IMFSensorActivityReport, IMFSensorActivitiesReport, IMFSensorActivitiesReportCallback & IMFSensorActivityMonitor interfaces. New MF_MPEG4SINK_MINIMUM_PROPERTIES_SIZE define. New MF_RESOLUTION_ENABLE_STORE_PLUGINS, MF_MEDIAKEYSESSION_TYPE_PERSISTENT_USAGE_RECORD, MF_MEDIAKEY_STATUS_RELEASED, MF_MEDIAKEY_STATUS_OUTPUT_RESTRICTED enum values.
  • mfmediaengine.h\idl: New IMFMediaSourceExtensionLiveSeekableRange interface.
  • microsoft.diagnostics.appanalysis.h: File has been generated using new MIDLRT compiler.
  • minidumpapiset.h: New IptTraceStream, ThreadNamesStream, MiniDumpWithIptTrace & MiniDumpValidTypeFlags enum values. New MINIDUMP_THREAD_NAME & MINIDUMP_THREAD_NAME_LIST structs.
  • minwinbase.h: New READ_DIRECTORY_NOTIFY_INFORMATION_CLASS enum. New PENCLAVE_ROUTINE function pointer.
  • MSClus.h: New ClusGroupTypeInfrastructureFileServer, CLCTL_*, CLUSCTL_RESOURCE_* & CLUSCTL_GROUP_* enum values. New CLUSTER_MGMT_POINT_RESTYPE, CLUSTER_CLOUD_TYPE & CLUSTER_STORAGENODE_STATE enums.
  • msft_associations.mof: New member of MSFT_StorageNodeToStorageEnclosure class.
  • msft_disk.mof: New method of MSFT_Disk class.
  • msft_healthaction.mof: New members of MSFT_HealthAction class.
  • msft_physicaldisk.mof: New member of MSFT_PhysicalDisk class.
  • msft_storagediagnoseresult.mof: New member of MSFT_StorageDiagnoseResult class.
  • msft_storageenclosure.mof: New members of MSFT_StorageEnclosure class.
  • msft_storagehealth.mof: New member of MSFT_StorageHealth class.
  • msft_storagepool.mof: New members of MSFT_StoragePool class.
  • msft_storagetier.mof: New members of MSFT_StorageTier class.
  • msft_virtualdisk.mof: New members of MSFT_VirtualDisk class.
  • MsHtmcid.h: New IDM_FOLLOWLINKN_INPRIVATE, IDM_FOLLOWLINKT_INPRIVATE, IDM_ADDPDFNOTE, IDM_OPENPDFNOTE, IDM_EDITPDFHIGHLIGHT, IDM_PINKHIGHLIGHT, IDM_BLUEHIGHLIGHT, IDM_GREENHIGHLIGHT, IDM_YELLOWHIGHLIGHT & IDM_NONEHIGHLIGHT defines.
  • ncrypt.h: New NCRYPTBUFFER_ISOLATED_KEY_ATTESTATION_CLAIM_RESTRICTIONS, NCRYPT_CLAIM_ISOLATED_KEY_ATTESTATION_STATEMENT, NCRYPT_ISOLATED_KEY_FLAG_CREATED_IN_ISOLATION, NCRYPT_ISOLATED_KEY_FLAG_IMPORT_ONLY, NCRYPT_PUBLIC_KEY_ATTESTED_ATTRIBUTES_V1, NCRYPT_PUBLIC_KEY_ATTESTED_ATTRIBUTES_CURRENT_VERSION, NCRYPT_PUBLIC_KEY_ATTESTATION_STATEMENT_V1, NCRYPT_PUBLIC_KEY_ATTESTATION_STATEMENT_CURRENT_VERSION, NCRYPT_ISOLATED_KEY_ATTESTATION_CLAIM_RESTRICTIONS_V1, NCRYPT_ISOLATED_KEY_ATTESTATION_CLAIM_RESTRICTIONS_CURRENT_VERSION, NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_V1, NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_CURRENT_VERSION, NCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY, NCRYPT_PCP_TPM2BNAME_PROPERTY, NCRYPT_ALLOW_KEY_IMPORT_FLAG, NCRYPT_TPM_LOADABLE_KEY_BLOB_MIN_SIZE, NCRYPT_TPM_LOADABLE_KEY_BLOB, NCRYPT_TPM_LOADABLE_KEY_BLOB_MAGIC & NCRYPT_ISOLATED_KEY_ENVELOPE_BLOB defines. New NCRYPT_PUBLIC_KEY_ATTESTED_ATTRIBUTES, NCRYPT_PUBLIC_KEY_ATTESTATION_STATEMENT, NCRYPT_ISOLATED_KEY_ATTESTATION_CLAIM_RESTRICTIONS, NCRYPT_EXPORTED_ISOLATED_KEY_HEADER, NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE & NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER structs. I will look to update CryptoWrappers in the near future to support this new functionality.
  • Npapi.h: WNNC_CF_MAXIMUM define has been updated.
  • ntenclv.h: New Header file to support Software Enclaves Kernel API.
  • ProcessSnapshot.h: New PSS_CAPTURE_IPT_TRACE enum value.
  • processthreadsapi.h: New ThreadPowerThrottling, ProcessReservedValue1, ProcessTelemetryCoverageInfo & ProcessProtectionLevelInfo enum values. New THREAD_POWER_THROTTLING_STATE & PROCESS_PROTECTION_LEVEL_INFORMATION structs. New PROCESS_POWER_THROTTLING_VALID_FLAGS define.
  • propkey.h: New FILEOFFLINEAVAILABILITYSTATUS_PARTIAL, FILEOFFLINEAVAILABILITYSTATUS_COMPLETE, FILEOFFLINEAVAILABILITYSTATUS_COMPLETE_PINNED, FILEOFFLINEAVAILABILITYSTATUS_EXCLUDED, FILEOFFLINEAVAILABILITYSTATUS_FOLDER_EMPTY, PKEY_LastSyncWarning, PKEY_Devices_Aep_Bluetooth_LastSeenTime, PKEY_Devices_SchematicName & SFGAOSTR_PLACEHOLDER defines.
  • RegStr.h: New CONFIGFLAG_NEEDS_CLASS_CONFIG define.
  • Resapi.h: New LPGROUP_CALLBACK_EX function pointer. New ResUtilsDeleteKeyTree, ResUtilEnumGroups, ResUtilEnumGroupsEx, ResUtilDupGroup, ResUtilGetClusterGroupType, ResUtilGetCoreGroup, ResUtilResourceDepEnum, ResUtilDupResource & ResUtilGetClusterId APIs.
  • ShlObj_core.h: New KF_FLAG_NO_PACKAGE_REDIRECTION enum value.
  • Shlwapi.h: ASSOCDATA_QUERYCLASSSTORE enum value has been redefined to ASSOCDATA_UNUSED1.
  • ShObjIdl_core.h\idl: New SFGAO_PLACEHOLDER define. New STS_HASWARNING, STS_EXCLUDED, STS_INCOMPLETE, PS_CLOUDFILE_PLACEHOLDER & PS_DEFAULT enum values.
  • sqlext.h: New SQL_ATTR_APPLICATION_KEY & SQL_API_SQLPRIVATEDRIVERS defines.
  • tdh.h: New TDH_OUTTYPE_CODE_POINTER & TEMPLATE_CONTROL_GUID enum values. New members in TRACE_EVENT_INFO struct.
  • UIAutomationClient.h\idl: New IUIAutomationNotificationEventHandler, IUIAutomationSelectionPattern2 & IUIAutomation5 interfaces. New UIA_SelectionPattern2Id, UIA_NotificationEventId, UIA_IsSelectionPattern2AvailablePropertyId, UIA_Selection2FirstSelectedItemPropertyId, UIA_Selection2LastSelectedItemPropertyId, UIA_Selection2CurrentSelectedItemPropertyId & UIA_Selection2ItemCountPropertyId defines.
  • UIAutomationCore.h\idl: New ISelectionProvider2 interface. New NotificationProcessing & NotificationKind enums.
  • UIAutomationCoreApi.h: New Notification_Event_GUID, IsSelectionPattern2Available_Property_GUID, Selection2_FirstSelectedItem_Property_GUID, Selection2_LastSelectedItem_Property_GUID, Selection2_CurrentSelectedItem_Property_GUID, Selection2_ItemCount_Property_GUID & Selection_Pattern2_GUID define. New EventArgsType_Notification enum value. New UiaRaiseNotificationEvent API.
  • usbuser.h: New USB_HC_FEATURE_TIME_SYNC_API define.
  • UserConsentVerifierInterop.h\idl: New header file with new IUserConsentVerifierInterop interface.
  • vdssys.h: New CREATE_VIRTUAL_DISK_VERSION_4, CREATE_VIRTUAL_DISK_FLAG_PMEM_COMPATIBLE & MIRROR_VIRTUAL_DISK_FLAG_SKIP_MIRROR_ACTIVATION enum values. New members in CREATE_VIRTUAL_DISK_PARAMETERS struct.
  • virtdisk.h: New CREATE_VIRTUAL_DISK_VERSION_4, CREATE_VIRTUAL_DISK_FLAG_PMEM_COMPATIBLE & MIRROR_VIRTUAL_DISK_FLAG_SKIP_MIRROR_ACTIVATION enum values. New members in CREATE_VIRTUAL_DISK_PARAMETERS struct.
  • wbcl.h: New SIPAEV_EFI_VARIABLE_AUTHORITY, SIPAEVENTTYPE_KSR, SIPAEVENT_KSR_AGGREGATION, SIPAEVENT_KSR_SIGNED_MEASUREMENT_AGGREGATION & SIPAEVENT_KSR_SIGNATURE, SIPAKSRHDRSIGNATURE defines. New SIPAEVENT_KSR_SIGNATURE_PAYLOAD struct.
  • WDBGEXTS.H: New DBG_DUMP_FIELD_UTF32_STRING define.
  • WerApi.h: New WER_MAX_LOCAL_DUMP_SUBPATH_LENGTH define. New WerRegisterAppLocalDump & WerUnregisterAppLocalDump APIs.
  • WinBase.h: New PROTECTION_LEVEL_WINTCB_LIGHT, PROTECTION_LEVEL_WINDOWS, PROTECTION_LEVEL_WINDOWS_LIGHT, PROTECTION_LEVEL_ANTIMALWARE_LIGHT, PROTECTION_LEVEL_LSA_LIGHT, PROTECTION_LEVEL_WINTCB, PROTECTION_LEVEL_CODEGEN_LIGHT, PROTECTION_LEVEL_AUTHENTICODE, PROTECTION_LEVEL_PPL_APP, PROTECTION_LEVEL_NONE, PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_MASK, PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_DEFER, PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_ON, PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_OFF, PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_RESERVED, PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE & FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE defines. New OpenCommPort & ReadDirectoryChangesExW APIs.
  • winbio_adapter.h: New PIBIO_SENSOR_QUERY_PRIVATE_SENSOR_TYPE_FN, PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN, PIBIO_FRAMEWORK_LOCK_AND_VALIDATE_SECURE_BUFFER_FN & PIBIO_FRAMEWORK_RELEASE_SECURE_BUFFER_FN function pointers. New WINBIO_SENSOR_INTERFACE_VERSION_5, WINBIO_ENGINE_INTERFACE_VERSION_5 & WINBIO_FRAMEWORK_INTERFACE_VERSION_6_0 defines. New members in WINBIO_SENSOR_INTERFACE, WINBIO_ENGINE_INTERFACE & WINBIO_FRAMEWORK_INTERFACE structs. Parameters to PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN, WbioSensorAsyncImportSecureBuffer & WbioFrameworkVsmSensorAsyncImportSecureBuffer have changed. New WbioSensorQueryPrivateSensorType, WbioEngineAcceptPrivateSensorTypeInfo, WbioFrameworkVsmSensorPushDataToEngine, WbioFrameworkLockAndValidateSecureBuffer & WbioFrameworkReleaseSecureBuffer APIs.
  • wincrypt.h: New szOID_ENCLAVE_SIGNING, szOID_CT_CERT_SCTLIST & PKCS12_VIRTUAL_ISOLATION_KEY defines.
  • WinDNS.h: New DNS_CONNECTION_NAME_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_CURRENT_VERSION, DNS_CONNECTION_PROXY_INFO_SERVER_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_FRIENDLY_NAME_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_USERNAME_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_PASSWORD_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_EXCEPTION_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_EXTRA_INFO_MAX_LENGTH, DNS_CONNECTION_PROXY_INFO_FLAG_DISABLED, DNS_CONNECTION_PROXY_INFO_FLAG_BYPASSLOCAL & DNS_CONNECTION_POLICY_ENTRY_ONDEMAND defines. New DNS_CONNECTION_PROXY_TYPE, DNS_CONNECTION_PROXY_INFO_SWITCH enums. New DNS_CONNECTION_PROXY_INFO, DNS_CONNECTION_PROXY_INFO_EX, DNS_CONNECTION_PROXY_ELEMENT, DNS_CONNECTION_PROXY_LIST, DNS_CONNECTION_NAME, DNS_CONNECTION_NAME_LIST, DNS_CONNECTION_IFINDEX_ENTRY, DNS_CONNECTION_IFINDEX_LIST & DNS_CONNECTION_POLICY_ENTRY, DNS_CONNECTION_POLICY_ENTRY_LIST structs. New DnsConnectionGetProxyInfoForHostUrl, DnsConnectionFreeProxyInfoEx, DnsConnectionGetProxyInfo, DnsConnectionFreeProxyInfo, DnsConnectionSetProxyInfo, DnsConnectionDeleteProxyInfo, DnsConnectionGetProxyList, DnsConnectionFreeProxyList, DnsConnectionGetNameList, DnsConnectionFreeNameList, DnsConnectionUpdateIfIndexTable, DnsConnectionSetPolicyEntries & DnsConnectionDeletePolicyEntries APIs. New DNS_CONNECTION_POLICY_TAG enum.
  • windows.graphics.printing.workflow.native.h\idl: New IPrintWorkflowConfigurationNative interface.
  • Windows.h: New _CHPE_X86_ARM64_ define. This is part of Windows 10 on ARM.
  • winenclave.h: New header file to support Windows software enclaves. This will be the Windows projection for Intel Software Guard Extension Enclaves.
  • winenclaveapi.h: New header file to support Windows software enclaves. New EnclaveGetPlatformHealthReportSize, EnclaveGetPlatformHealthReport , EnclaveGetAttestationReportSize , EnclaveGetAttestationReport , EnclaveVerifyAttestationReport , EnclaveGetSealedDataSize , EnclaveSealData , EnclaveGetUnsealedDataSize & EnclaveUnsealData APIs. This will be the Windows projection for Intel Software Guard Extension Enclaves.
  • wingdi.h: New members in DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO struct.
  • WinInet.h: INTERNET_ERROR_LAST define has been updated.
  • Winineti.h: New INTERNET_OPTION_CANCEL_CACHE_WRITE, INTERNET_OPTION_AUTH_SCHEME_SELECTED, INTERNET_OPTION_NOCACHE_WRITE_IN_PRIVATE & ERROR_INTERNET_DISALLOW_INPRIVATE defines. COOKIE_ALLOWED_COOKIE_FLAGS, HTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE defines have been updated.
  • winioctl.h: New FILE_DEVICE_SDFXHCI, IOCTL_STORAGE_DIAGNOSTIC, IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS, IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE, STORAGE_TIER_FLAG_SMR, DeviceDsmAction_ReportZones, DeviceDsmAction_OpenZone, DeviceDsmAction_FinishZone, DeviceDsmAction_CloseZone, DeviceDsmAction_ResetWritePointer, DeviceDsmAction_GetRangeErrorInfo, DeviceDsmAction_WriteZeroes, DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1, DEVICE_STORAGE_NO_ERRORS, STORAGE_HW_FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT, FSCTL_QUERY_REFS_SMR_VOLUME_INFO, FSCTL_SET_REFS_SMR_VOLUME_GC_PARAMETERS, FSCTL_SET_REFS_FILE_STRICTLY_SEQUENTIAL, FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX, FSCTL_QUERY_BAD_RANGES, FSCTL_SET_DAX_ALLOC_ALIGNMENT_HINT, CSV_QUERY_MDS_PATH_V2_VERSION_1, CSV_QUERY_MDS_PATH_FLAG_STORAGE_ON_THIS_NODE_IS_CONNECTED, CSV_QUERY_MDS_PATH_FLAG_CSV_DIRECT_IO_ENABLED, CSV_QUERY_MDS_PATH_FLAG_SMB_BYPASS_CSV_ENABLED, FILE_STORAGE_TIER_FLAG_SMR, DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC, REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V1, REFS_SMR_VOLUME_GC_PARAMETERS_VERSION_V1, STREAMS_INVALID_ID, STREAMS_MAX_ID & STREAMS_ASSOCIATE_ID_CLEAR, STREAMS_ASSOCIATE_ID_SET defines. New StorageDeviceZonedDeviceProperty, StorageDeviceUnsafeShutdownCount, ProtocolTypeUfs, DiskOpReasonLostWritePersistence, DiskOpReasonDataPersistenceLossImminent, DiskOpReasonWritePersistenceLossImminent & CsvControlGetCsvFsMdsPathV2 enum values. New STORAGE_PROTOCOL_UFS_DATA_TYPE, STORAGE_ZONED_DEVICE_TYPES, STORAGE_ZONE_TYPES, STORAGE_ZONE_GROUP, STORAGE_ZONED_DEVICE_DESCRIPTOR, STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT, DEVICE_DSM_REPORT_ZONES_PARAMETERS, STORAGE_ZONE_DESCRIPTOR, DEVICE_DSM_REPORT_ZONES_DATA, DEVICE_STORAGE_RANGE_ATTRIBUTES, DEVICE_DSM_RANGE_ERROR_INFO, STORAGE_DIAGNOSTIC_REQUEST, STORAGE_DIAGNOSTIC_DATA, PHYSICAL_ELEMENT_STATUS_REQUEST, PHYSICAL_ELEMENT_STATUS_DESCRIPTOR, PHYSICAL_ELEMENT_STATUS, REMOVE_ELEMENT_AND_TRUNCATE_REQUEST, STORAGE_HW_FIRMWARE_DOWNLOAD_V2, CSV_QUERY_MDS_PATH_V2, DUPLICATE_EXTENTS_DATA_EX, DUPLICATE_EXTENTS_DATA_EX32, REFS_SMR_VOLUME_INFO_OUTPUT, REFS_SMR_VOLUME_GC_PARAMETERS, STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER, STREAMS_ASSOCIATE_ID_INPUT_BUFFER, STREAMS_QUERY_ID_OUTPUT_BUFFER, QUERY_BAD_RANGES_INPUT_RANGE, QUERY_BAD_RANGES_INPUT, QUERY_BAD_RANGES_OUTPUT_RANGE, QUERY_BAD_RANGES_OUTPUT & SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT structs. New STORAGE_ZONE_CONDITION, STORAGE_ZONES_ATTRIBUTES, STORAGE_DIAGNOSTIC_LEVEL, STORAGE_DIAGNOSTIC_TARGET_TYPE, REFS_SMR_VOLUME_GC_STATE, REFS_SMR_VOLUME_GC_ACTION & REFS_SMR_VOLUME_GC_METHOD enums. New members in NTFS_STATISTICS_EX struct.
  • winmeta.h\xml: New WINEVENT_CHANNEL_PROVIDERMETADATA & MSG_channel_ProviderMetadata defines.
  • winnetwk.h: New CONNECT_REQUIRE_INTEGRITY & CONNECT_REQUIRE_PRIVACY defines.
  • WinNls.h: A lot of the NLS APIs in this header file have been marked as deprecated. New GetGeoInfoEx, EnumSystemGeoNames, GetUserDefaultGeoName & SetUserGeoName APIs.
  • winnt.h: New PRODUCT_SERVERRDS define. It’s not clear what SKU this define us for but I will look to add support to DtWinVer once it becomes clear what this value means. A lot of the NLS APIs in this header file have been marked as deprecated. UNREFERENCED_PARAMETER, DBG_UNREFERENCED_PARAMETER & DBG_UNREFERENCED_LOCAL_VARIABLE defines have been updated. New members in ARM64_NT_CONTEXT, PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY, PROCESS_MITIGATION_IMAGE_LOAD_POLICY, IMAGE_LOAD_CONFIG_DIRECTORY32, IMAGE_LOAD_CONFIG_DIRECTORY64, IMAGE_HOT_PATCH_INFO & IMAGE_HOT_PATCH_BASE structs. New InterlockedIncrementRelease64, InterlockedIncrementNoFence64, InterlockedDecrementAcquire64, InterlockedDecrementRelease64, InterlockedDecrementNoFence64, DOMAIN_USER_RID_WDAG_ACCOUNT, SECURITY_PROCESS_PROTECTION_LEVEL_AUTHENTICODE_RID, ENCLAVE_VBS_FLAG_DEBUG, TREE_CONNECT_ATTRIBUTE_PRIVACY, TREE_CONNECT_ATTRIBUTE_INTEGRITY, TREE_CONNECT_ATTRIBUTE_GLOBAL, FILE_SUPPORTS_POSIX_UNLINK_RENAME, IO_REPARSE_TAG_WCI_1, IO_REPARSE_TAG_CLOUD_*, GUID_LEGACY_RTC_MITIGATION, GUID_PROCESSOR_THREAD_SCHEDULING_POLICY, GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY, POWER_CONNECTIVITY_IN_STANDBY_SYSTEM_MANAGED, IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY, IMAGE_ENCLAVE_LONG_ID_LENGTH, IMAGE_ENCLAVE_SHORT_ID_LENGTH, IMAGE_ENCLAVE_POLICY_DEBUGGABLE, IMAGE_ENCLAVE_CONFIG64, PIMAGE_ENCLAVE_CONFIG64, IMAGE_ENCLAVE_CONFIG32, PIMAGE_ENCLAVE_CONFIG32, IMAGE_ENCLAVE_IMPORT_MATCH_NONE, IMAGE_ENCLAVE_IMPORT_MATCH_UNIQUE_ID, IMAGE_ENCLAVE_IMPORT_MATCH_AUTHOR_ID, IMAGE_ENCLAVE_IMPORT_MATCH_FAMILY_ID, IMAGE_ENCLAVE_IMPORT_MATCH_IMAGE_ID, FAST_FAIL_INVALID_IAT, FAST_FAIL_HEAP_METADATA_CORRUPTION, FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION, FAST_FAIL_LOW_LABEL_ACCESS_DENIED, RTL_CORRELATION_VECTOR_STRING_LENGTH, RTL_CORRELATION_VECTOR_VERSION_1, RTL_CORRELATION_VECTOR_VERSION_2, RTL_CORRELATION_VECTOR_VERSION_CURRENT, RTL_CORRELATION_VECTOR_V1_PREFIX_LENGTH, RTL_CORRELATION_VECTOR_V1_LENGTH, RTL_CORRELATION_VECTOR_V2_PREFIX_LENGTH, RTL_CORRELATION_VECTOR_V2_LENGTH, CORRELATION_VECTOR, TraceLoggingCORRELATION_VECTOR, IMAGE_POLICY_METADATA_VERSION, IMAGE_POLICY_SECTION_NAME, IMAGE_POLICY_METADATA_NAME, IMAGE_POLICY_*, DEVICEFAMILYDEVICEFORM_XBOX_ONE, DEVICEFAMILYDEVICEFORM_XBOX_ONE_S, DEVICEFAMILYDEVICEFORM_XBOX_ONE_SCORPIO & DEVICEFAMILYDEVICEFORM_XBOX_ONE_SCORPIO_DEVKIT defines. New TokenChildProcessFlags, ProcessSystemCallFilterPolicy, ProcessPayloadRestrictionPolicy, ProcessChildProcessPolicy & MonitorRequestReasonUser* enum values. New PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY, PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY, PROCESS_MITIGATION_CHILD_PROCESS_POLICY, ENCLAVE_CREATE_INFO_VBS, ENCLAVE_INIT_INFO_VBS, FILE_NOTIFY_EXTENDED_INFORMATION, IMAGE_ENCLAVE_CONFIG32, IMAGE_ENCLAVE_CONFIG64, IMAGE_ENCLAVE_IMPORT, CORRELATION_VECTOR, IMAGE_POLICY_ENTRY & IMAGE_POLICY_METADATA structs. New ENCLAVE_TARGET_FUNCTION function pointer. New RtlInitializeCorrelationVector, RtlIncrementCorrelationVector, RtlExtendCorrelationVector & RtlValidateCorrelationVector APIs. New IMAGE_POLICY_ENTRY_TYPE & IMAGE_POLICY_ID enums. DEVICEFAMILYDEVICEFORM_MAX define has been updated.
  • winnt.rh: A lot of the NLS APIs in this header file have been marked as deprecated.
  • winternl.h: New KPRIORITY define. New CLIENT_ID & SYSTEM_THREAD_INFORMATION structs. New members in SYSTEM_PROCESS_INFORMATION struct.
  • winusb.h: New USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION, USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION & USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION structs. New WinUsb_StartTrackingForTimeSync, WinUsb_GetCurrentFrameNumberAndQpc & WinUsb_StopTrackingForTimeSync APIs. I will look to update WinUSBWrappers in the near future to support this new functionality.
  • WinUser.h: New EnableMouseInPointerForThread API. New IDC_PIN, IDC_PERSON, SPI_GETCARETTIMEOUT & SPI_SETCARETTIMEOUT defines.
  • wlanapi.h: New WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_OVERWRITE_EXISTING & DEVPKEY_InfraCast_HostName_ResolutionMode defines.
  • wmcodecdsp.h: New MEDIASUBTYPE_DTS_HD_HRA define.
  • wow64apiset.h: New Wow64SetThreadDefaultGuestMachine, IsWow64Process2 & IsWow64GuestMachineSupported APIs.
  • wslapi.h: New Header file to support managing distributions in the Windows subsystem for Linux.
  • wuapi.h\idl: New uoRollback enum value.
  • wuerror.h: New WU_E_UPDATE_NOT_APPROVED & WU_E_SIH_POST_REBOOT_INSTALL_FAILED defines.

So, there are not too many Win32 changes in this revision of Windows 10 compared to other release but it’s nice to see the Windows SDK updates. Happy coding.

Categories: Programming

Changes in the Windows v10.0.16232 SDK compared to Windows v10.0.15063 SDK (Part One)

July 16, 2017 Comments off

This is a comparison of the differences between the Windows 10 SDK (v10.0.15063) which corresponds to Windows 10 version 1703 and the pre-release version (v10.0.16232) SDK which will correspond to Windows 10 “Redstone 3” aka Windows 10 Fall Creators Update. This will highlight any interesting new Windows API changes which are available in the Fall Creators Update. 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.

Ok, let’s dive into the changes:

  • Some 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 header files contain code which is protected by a NTDDI_WIN10_RS3 define and some header files have comments that they need to start using this define. This define value is used by the SDK to protect features only available in “Redstone 3” aka Windows 10 Fall Creators Update.
  • afunix.h: New header files for AF_UNIX socket address family.
  • bthdef.h: New BDIF_BR_SECURE_CONNECTION_PAIRED & BDIF_LE_SECURE_CONNECTION_PAIRED defines.
  • bugcodes.h: New KERNEL_PARTITION_REFERENCE_VIOLATION, CALL_HAS_NOT_RETURNED_WATCHDOG_TIMEOUT_LIVEDUMP, DRIPS_SW_HW_DIVERGENCE_LIVEDUMP, EXRESOURCE_TIMEOUT_LIVEDUMP, INVALID_CALLBACK_STACK_ADDRESS, INVALID_KERNEL_STACK_ADDRESS, HARDWARE_WATCHDOG_TIMEOUT, ACPI_FIRMWARE_WATCHDOG_TIMEOUT & TELEMETRY_ASSERTS_LIVEDUMP defines.
  • cfg.h: New CM_PROB_CONSOLE_LOCKED, CM_PROB_NEED_CLASS_CONFIG, NUM_CM_PROB_V8 & NUM_CM_PROB NUM_CM_PROB_V8 defines.
  • common.ver: BUILD_MACHINE_TAG define has been updated.
  • d3dukmdt.h: New DXGKDDI_INTERFACE_VERSION_WDDM2_3, D3D_UMD_INTERFACE_VERSION_WDDM2_3_1 & D3D_UMD_INTERFACE_VERSION_WDDM2_3 defines. DXGKDDI_INTERFACE_VERSION, D3D_UMD_INTERFACE_VERSION has been updated. New DXGKVGPU_ESCAPE_TYPE_*, D3DDDI_COLOR_SPACE* enum values. New DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG &DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE, DXGKVGPU_ESCAPE_INITIALIZE, DXGKVGPU_ESCAPE_RELEASE, D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE & D3DKMDT_3x4_COLORSPACE_TRANSFORM structs. New members in D3DDDI_ALLOCATIONINFO2, D3DDDI_CREATECONTEXTFLAGS & D3DDDI_GAMMARAMP_TYPE structs.
  • devguid.h: New GUID_DEVCLASS_CAMERA, GUID_DEVCLASS_SCMDISK, GUID_DEVCLASS_SCMVOLUME, GUID_DEVCLASS_SMRDISK, GUID_DEVCLASS_SMRVOLUME & GUID_DEVCLASS_SOFTWARECOMPONENT defines.
  • devioctl.h: New FILE_DEVICE_SDFXHCI define.
  • devpkey.h: New DEVPKEY_Device_Reported, DEVPKEY_Device_Legacy & DEVPKEY_DeviceInterface_SchematicName defines.
  • driverspecs.h: SAL_internal_kernel_driver, SAL_kernel, SAL_nokernel, SAL_driver & SAL_nodriver defines have been updated.
  • dxgi1_6.h\idl: New DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES, DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES & DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE enum values.
  • dxgicommon.h\idl: New DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709, DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020, DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709, DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 & DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 enum values.
  • evntprov.h: New EVENT_FILTER_TYPE_STACKWALK_NAME & EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW defines. New EVENT_FILTER_LEVEL_KW struct. This file has also been extensively updated with new comments.
  • evntrace.h: New EVENT_TRACE_TYPE_CONFIG_PROCESSOR define. New TraceProviderBinaryTracking, TraceMaxLoggersQuery, enum values. New ETW_PROCESS_HANDLE_INFO_TYPE & ETW_TRACE_PARTITION_INFORMATION structs. New QueryTraceProcessingHandle API.
  • fwpmtypes.h\idl: New FWPM_PROVIDER_CONTEXT3 struct. New FWPM_FILTER_FLAG_IPSEC_NO_ACQUIRE_INITIATE define. New members in FWPM_STATISTICS0 struct.
  • fwpstypes.h\idl: New FWPS_FILTER_FLAG_IPSEC_NO_ACQUIRE_INITIATE define. New FWPS_FILTER3 struct.
  • fwpvi.h: New FWPM_PROVIDER_CONTEXT FWPM_PROVIDER_CONTEXT3, FWPS_FILTER FWPS_FILTER3, IPSEC_TUNNEL_POLICY IPSEC_TUNNEL_POLICY3, IPSEC_TRAFFIC_SELECTOR IPSEC_TRAFFIC_SELECTOR0, IPSEC_TRAFFIC_SELECTOR_POLICY IPSEC_TRAFFIC_SELECTOR_POLICY0, FwpmProviderContextAdd, FwpmProviderContextGetById, FwpmProviderContextGetByKey, FwpmProviderContextEnum, FwpmIPsecTunnelAdd, FWPS_CALLOUT_CLASSIFY_FN, FWPS_CALLOUT_NOTIFY_FN & FwpsCalloutRegister defines.
  • hidusage.h: New HID_USAGE_CONSUMER_AL_SEARCH define.
  • hvsocket.h: New HVSOCKET_CONNECTED_SUSPEND, HV_GUID_VSOCK_TEMPLATE defines. IOCTL_HVSOCKET_UPDATE_ADDRESS_INFO define has been removed.
  • hwn.h: A new header file for “Hardware Notification Services”.
  • iketypes.h\idl: New IKEEXT_CIPHER_AES_GCM_128_16ICV & IKEEXT_CIPHER_AES_GCM_256_16ICV enum values. New IKEEXT_POLICY_FLAG_SITE_TO_SITE define.
  • ipsectypes.h\idl: New IPSEC_TRAFFIC_SELECTOR0, IPSEC_TRAFFIC_SELECTOR_POLICY0 & IPSEC_TUNNEL_POLICY3 structs. New IPSEC_POLICY_FLAG_SITE_TO_SITE_TUNNEL define.
  • ks386.inc: Various miscellaneous changes to X86 assembler code.
  • kxamd64.inc: Various miscellaneous changes to X64 assembler code.
  • ksarm.h: New header with various defines for ARM
  • ksmedia.h: New KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOTEMPORALDENOISING enum value. New KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_AUTO, KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_OFF & KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_ON defines.
  • kxamd64.inc: Various miscellaneous changes to X64 assembler code.
  • kxarm.h: New header with various defines for ARM
  • kxarmunw.h: New header with various defines for ARM
  • mstcpip.h: New TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS define.
  • netiodef.h: New FALLBACK_INDEX enum
  • ntdddisk.h: New __WRAPPED__ define.
  • ntddndis.h: New defines to support NDIS 6.8 functionality included with Windows 10 Fall Creators Update
  • ntddscsi.h: New IOCTL_SCSI_MINIPORT_DIAGNOSTIC, STORAGE_DIAGNOSTIC_STATUS_* & FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT defines. New MP_STORAGE_DIAGNOSTIC_LEVEL & MP_STORAGE_DIAGNOSTIC_TARGET_TYPE enums. New STORAGE_DIAGNOSTIC_MP_REQUEST struct. New member in STORAGE_FIRMWARE_DOWNLOAD_V2 struct.
  • ntddstor.h: New IOCTL_STORAGE_DIAGNOSTIC, IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS, IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE, STORAGE_TIER_FLAG_SMR, DeviceDsmAction_*, DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1, DEVICE_STORAGE_NO_ERRORS & STORAGE_HW_FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT defines. New StorageDeviceZonedDeviceProperty, StorageDeviceUnsafeShutdownCount, ProtocolTypeUfs, DiskOpReasonLostWritePersistence, DiskOpReasonDataPersistenceLossImminent & DiskOpReasonWritePersistenceLossImminent enum values. New STORAGE_PROTOCOL_UFS_DATA_TYPE, STORAGE_ZONE_CONDITION, STORAGE_ZONES_ATTRIBUTES, STORAGE_DIAGNOSTIC_LEVEL & STORAGE_DIAGNOSTIC_TARGET_TYPE enums. New STORAGE_ZONED_DEVICE_TYPES, STORAGE_ZONE_TYPES, STORAGE_ZONE_GROUP, STORAGE_ZONED_DEVICE_DESCRIPTOR, STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT, DEVICE_DSM_REPORT_ZONES_PARAMETERS, STORAGE_ZONE_DESCRIPTOR, DEVICE_DSM_REPORT_ZONES_DATA, DEVICE_STORAGE_RANGE_ATTRIBUTES, DEVICE_DSM_RANGE_ERROR_INFO, STORAGE_DIAGNOSTIC_REQUEST, STORAGE_DIAGNOSTIC_DATA, PHYSICAL_ELEMENT_STATUS_REQUEST, PHYSICAL_ELEMENT_STATUS_DESCRIPTOR, PHYSICAL_ELEMENT_STATUS, REMOVE_ELEMENT_AND_TRUNCATE_REQUEST & STORAGE_HW_FIRMWARE_DOWNLOAD_V2 structs. Fix for a small spelling mistake.
  • ntddvol.h: New CSV_FILECACHE_IO_TYPE enum. New CSV_FILECACHE_IO_CONTEXT, CSV_FILECACHE_IO_RANGE & CSV_CACHE_CALLBACK_V3_INPUT structs. New CSV_FILECACHE_HANDLE_CACHE_MISS_V2, CSV_FILECACHE_COMPLETE_CACHE_IO_V2, CSV_FILECACHE_FILE_CLOSE, CSV_FILECACHE_HANDLE_CACHE_IO_V2, CSV_FILECACHE_COMPLETE_CACHE_MISS_V2, CSV_FILECACHE_FILE_SET_EXTENSION, CSV_FILECACHE_FILE_GET_EXTENSION & CSV_FILECACHE_CLEANUP_CACHE function pointers. New CSV_CACHE_CALLBACK_V3_OUTPUT struct.
  • ntdef.h: The concept of LCID and LANGID’s has been marked as deprecated in this header file. New PRODUCT_SERVERRDSH define. This new define refers to a new SKU which was mentioned at https://twitter.com/h0x0d/status/862967975069966336. It is not clear what SKU this refers to but I will add support for this to DtWinVer when more information is available for this. UNREFERENCED_PARAMETER, DBG_UNREFERENCED_PARAMETER & DBG_UNREFERENCED_LOCAL_VARIABLE defines have been updated.
  • ntstatus.h: New STATUS_CONTEXT_STOWED_EXCEPTION, STATUS_PARTITION_TERMINATING, STATUS_ENCLAVE_NOT_TERMINATED, STATUS_ENCLAVE_IS_TERMINATING, STATUS_SMB1_NOT_AVAILABLE, STATUS_EXECUTABLE_MEMORY_WRITE, STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE, STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE, STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE, STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION, STATUS_CLOUD_FILE_ALREADY_CONNECTED, STATUS_CLOUD_FILE_NOT_SUPPORTED, STATUS_CLOUD_FILE_INVALID_REQUEST, STATUS_CLOUD_FILE_READ_ONLY_VOLUME, STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY, STATUS_CLOUD_FILE_VALIDATION_FAILED, STATUS_CLOUD_FILE_AUTHENTICATION_FAILED, STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES, STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE, STATUS_CLOUD_FILE_UNSUCCESSFUL, STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT, STATUS_CLOUD_FILE_IN_USE, STATUS_CLOUD_FILE_PINNED, STATUS_CLOUD_FILE_REQUEST_ABORTED, STATUS_CLOUD_FILE_REPARSE_DATA_INVALID, STATUS_CLOUD_FILE_ACCESS_DENIED , STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINK & STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT defines. STATUS_STRICT_RFG_VIOLATION, STATUS_RFG_ACCESS_VIOLATION, STATUS_RFG_ATTACHED_ACCESS_VIOLATION & STATUS_RFG_ATTACHED_ACCESS_VIOLATION_TRIGGERED defines have been removed.
  • pwn.h: New header file for “Pulse Width Modulator (PWN) IOCTL interface.
  • scsi.h: New REPORT_TIMESTAMP, SET_TIMESTAMP, CLOSE_ZONE, FINISH_ZONE, OPEN_ZONE, RESET_WRITER_POINTER, REPORT_ZONES, GET_PHYSICAL_ELEMENT_STATUS, REMOVE_ELEMENT_AND_TRUNCATE, VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE, RT_PARAMETER_DATA, ST_PARAMETER_DATA, ZONE_DESCRIPTIOR, REPORT_ZONES_DATA, SES_DOWNLOAD_MICROCODE_STATE, SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR, SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE, PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR & PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA structs. New SCSIOP_ZBC_OUT, SCSIOP_ZBC_IN, SCSIOP_GET_PHYSICAL_ELEMENT_STATUS, SCSIOP_REMOVE_ELEMENT_AND_TRUNCATE, SERVICE_ACTION_OVERWRITE, SERVICE_ACTION_BLOCK_ERASE, SERVICE_ACTION_CRYPTO_ERASE, SERVICE_ACTION_EXIT_FAILURE, SERVICE_ACTION_CLOSE_ZONE, SERVICE_ACTION_FINISH_ZONE, SERVICE_ACTION_OPEN_ZONE, SERVICE_ACTION_RESET_WRITE_POINTER, SERVICE_ACTION_REPORT_ZONES, REPORT_ZONES_OPTION_LIST_ALL_ZONES, REPORT_ZONES_OPTION_LIST_EMPTY_ZONES, REPORT_ZONES_OPTION_LIST_IMPLICITLY_OPENED_ZONES, REPORT_ZONES_OPTION_LIST_EXPLICITLY_OPENED_ZONES, REPORT_ZONES_OPTION_LIST_CLOSED_ZONES, REPORT_ZONES_OPTION_LIST_FULL_ZONES, REPORT_ZONES_OPTION_LIST_READ_ONLY_ZONES, REPORT_ZONES_OPTION_LIST_OFFLINE_ZONES, REPORT_ZONES_OPTION_LIST_RWP_ZONES, REPORT_ZONES_OPTION_LIST_NON_SEQUENTIAL_WRITE_RESOURCES_ACTIVE_ZONES, REPORT_ZONES_OPTION_LIST_NOT_WRITE_POINTER_ZONES, SERVICE_ACTION_GET_PHYSICAL_ELEMENT_STATUS, SERVICE_ACTION_REMOVE_ELEMENT_AND_TRUNCATE, SERVICE_ACTION_REPORT_TIMESTAMP, HOST_MANAGED_ZONED_BLOCK_DEVICE, ZONED_CAPABILITIES_NOT_REPORTED, ZONED_CAPABILITIES_HOST_AWARE, ZONED_CAPABILITIES_DEVICE_MANAGED, VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS, RC_BASIS_LAST_LBA_NOT_SEQUENTIAL_WRITE_REQUIRED_ZONES, RC_BASIS_LAST_LBA_ON_LOGICAL_UNIT, ZONE_TYPE_CONVENTIONAL, ZONE_TYPE_SEQUENTIAL_WRITE_REQUIRED, ZONE_TYPE_SEQUENTIAL_WRITE_PREFERRED, ZONE_CONDITION_NOT_WRITE_POINTER, ZONE_CONDITION_EMPTY, ZONE_CONDITION_IMPLICITLY_OPENED, ZONE_CONDITION_EXPLICITLY_OPENED, ZONE_CONDITION_CLOSED, ZONE_CONDITION_READ_ONLY, ZONE_CONDITION_FULL, ZONE_CONDITION_OFFLINE, ZONES_TYPE_AND_LENGTH_MAY_DIFFERENT, ZONES_TYPE_SAME_LENGTH_SAME, ZONES_TYPE_SAME_LAST_ZONE_LENGTH_DIFFERENT, ZONES_TYPE_MAY_DIFFERENT_LENGTH_SAME, REVERSE_BYTES_QUAD REVERSE_BYTES_8, SES_DIAGNOSTIC_PAGE_DOWNLOAD_MICROCODE, GET_PHYSICAL_ELEMENT_STATUS_REPORT_TYPE_PHYSICAL_ELEMENT, GET_PHYSICAL_ELEMENT_STATUS_REPORT_TYPE_STORAGE_ELEMENT, GET_PHYSICAL_ELEMENT_STATUS_ALL, GET_PHYSICAL_ELEMENT_STATUS_FILTER_NEED_ATTENTION, PHYSICAL_ELEMENT_TYPE_STORAGE_ELEMENT, PHYSICAL_ELEMENT_HEALTH_NOT_REPORTED, PHYSICAL_ELEMENT_HEALTH_MANUFACTURER_SPECIFICATION_LIMIT, PHYSICAL_ELEMENT_HEALTH_RESERVED_LOWER_BOUNDARY, PHYSICAL_ELEMENT_HEALTH_RESERVED_UPPER_BOUNDARY, PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_COMPLETED_WITH_ERROR, PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_IN_PROGRESS & PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_COMPLETED_SUCCESS defines. New elements in VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE & READ_CAPACITY16_DATA structs. Various REVERSE_* defines have been updated.
  • sdkddkver.: New NTDDI_WIN10_RS3 define.
  • sensorsdef.h: New DEVPKEY_LightSensor_AutoBrightnessPreferred, DEVPKEY_LightSensor_ColorCapable, DEVPKEY_Sensor_ProximityTypePKEY_SensorData_IsValid, PKEY_SensorData_TimestampQPC & PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference defines. New PROXIMITY_TYPE enum.
  • srb.h: New SRB_FUNCTION_GET_DUMP_INFO & SRB_FUNCTION_FREE_DUMP_INFO defines.
  • Sspi.h: New SECPKG_CRED_ATTR_PAC_BYPASS define.
  • tcpmib.h: Enum values in TCP_RTO_ALGORITHM have been re-sequenced. New MIB_TCPSTATS2 struct.
  • TraceLoggingProvider.h: New TraceLoggingCodePointer, TraceLoggingCodePointerFixedArray & TraceLoggingCodePointerArray defines. New enum value in TlgOut_t. _TlgDefineProvider_functionWrapperBegin define has been updated.
  • udpmib.h: New MIB_UDPSTATS2 struct.
  • usb.h: New URB_FUNCTION_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS, USBD_PF_VIDEO_PRIORITY, USBD_PF_VOICE_PRIORITY & USBD_PF_INTERACTIVE_PRIORITY defines. USBD_PF_VALID_MASK define has been updated. New USBD_ENDPOINT_OFFLOAD_MODE enum. New USBD_ENDPOINT_OFFLOAD_INFORMATION & _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS structs. New member in URB struct.
  • usbioctl.h: New IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS, IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE , IOCTL_USB_START_TRACKING_FOR_TIME_SYNC, IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC, IOCTL_USB_GET_DEVICE_CHARACTERISTICS, USB_TRANSPORT_CHARACTERISTICS_VERSION_1, USB_TRANSPORT_CHARACTERISTICS_LATENCY_AVAILABLE, USB_TRANSPORT_CHARACTERISTICS_BANDWIDTH_AVAILABLE, USB_REGISTER_FOR_TRANSPORT_LATENCY_CHANGE, USB_REGISTER_FOR_TRANSPORT_BANDWIDTH_CHANGE, USB_CHANGE_REGISTRATION_HANDLE, USB_DEVICE_CHARACTERISTICS_VERSION_1 & USB_DEVICE_CHARACTERISTICS_MAXIMUM_PATH_DELAYS_AVAILABLE defines. New USB_TRANSPORT_CHARACTERISTICS, USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION, USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION, USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATIO, USB_DEVICE_CHARACTERISTICS, USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION, USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION & USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION structs.
  • usbiodef.h: New USB_IDLE_NOTIFICATION_EX, USB_GET_TRANSPORT_CHARACTERISTICS, USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, USB_START_TRACKING_FOR_TIME_SYNC, USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, USB_STOP_TRACKING_FOR_TIME_SYNC, USB_GET_DEVICE_CHARACTERISTICS & GUID_DEVINTERFACE_USB_BILLBOARD defines.
  • winbio_err.h: New WINBIO_E_ENROLLMENT_CANCELED_BY_SUSPEND define.
  • winbio_ioctl.h: Various IOCTL_* defines have been updated. New IOCTL_BIOMETRIC_GET_PRIVATE_SENSOR_TYPE define. New WINBIO_PRIVATE_SENSOR_TYPE_INFO struct.
  • winbio_types.h: New WINBIO_MAX_PRIVATE_SENSOR_TYPE_INFO_BUFFER_SIZE defines.
  • winerror.h: New ERROR_CLOUD_*, ERROR_SMB1_NOT_AVAILABLE, ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION, ERROR_CAPAUTHZ_*, ERROR_PARTITION_TERMINATING, ERROR_ENCLAVE_NOT_TERMINATED, ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME, ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE, ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF, ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED, ERROR_PACKAGES_REPUTATION_CHECK_FAILED, ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT , RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER, RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER, APPX_E_INVALID_APPINSTALLER, ERROR_VMCOMPUTE_INVALID_LAYER, ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED, WHV_E_*, HNS_*, STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED, DWRITE_E_* & UTC_E_* defines. ERROR_STRICT_RFG_VIOLATION & ERROR_RFG_ACCESS_VIOLATION defines have been removed.
  • ws2def.h: New MSG_ERRQUEUE define.
  • ws2ipdef.h: New IP_MTU, IP_NRT_INTERFACE, IP_RECVERR, IPV6_MTU, IPV6_NRT_INTERFACE, IPV6_RECVERR, TCP_KEEPIDLE & TCP_KEEPINTVL defines. New IN_RECVERR struct.
  • WTypesbase.h\idl: New CLSCTX_ACTIVATE_X86_SERVER, CLSCTX_RESERVED6, CLSCTX_ACTIVATE_ARM32_SERVER enum values. These enum values are part of Windows 10 on ARM.

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. Happy coding.

Categories: Programming

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

February 28, 2017 Comments off

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