Headers diff for netapi32.dll between 6.3.9600.17415-Windows 8.1 and 10.0.10586.212-Windows 10 1511 10586.494 versions



 lmaccess.h (6.3.9600.17415-Windows 8.1)   lmaccess.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 27 skipping to change at line 27
Notes: Notes:
You must include NETCONS.H before this file, since this file depends You must include NETCONS.H before this file, since this file depends
on values defined in NETCONS.H. on values defined in NETCONS.H.
--*/ --*/
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// User Class // User Class
// //
#ifndef _LMUSER_ #ifndef _LMUSER_
#define _LMUSER_ #define _LMUSER_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
skipping to change at line 1152 skipping to change at line 1152
typedef struct _NET_DISPLAY_GROUP { typedef struct _NET_DISPLAY_GROUP {
LPWSTR grpi3_name; LPWSTR grpi3_name;
LPWSTR grpi3_comment; LPWSTR grpi3_comment;
DWORD grpi3_group_id; DWORD grpi3_group_id;
DWORD grpi3_attributes; DWORD grpi3_attributes;
DWORD grpi3_next_index; DWORD grpi3_next_index;
} NET_DISPLAY_GROUP, *PNET_DISPLAY_GROUP; } NET_DISPLAY_GROUP, *PNET_DISPLAY_GROUP;
#endif // _LMLOCALGROUP_ #endif // _LMLOCALGROUP_
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM)
#pragma endregion
// //
// Access Class // Access Class
// //
#ifndef _LMACCESS_ #ifndef _LMACCESS_
#define _LMACCESS_ #define _LMACCESS_
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// Function Prototypes - Access // Function Prototypes - Access
// //
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetAccessAdd ( NetAccessAdd (
_In_opt_ LPCWSTR servername OPTIONAL, _In_opt_ LPCWSTR servername OPTIONAL,
_In_ DWORD level, _In_ DWORD level,
_In_reads_(_Inexpressible_("varies")) LPBYTE buf, _In_reads_(_Inexpressible_("varies")) LPBYTE buf,
_Out_opt_ LPDWORD parm_err OPTIONAL _Out_opt_ LPDWORD parm_err OPTIONAL
skipping to change at line 1215 skipping to change at line 1221
); );
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetAccessGetUserPerms ( NetAccessGetUserPerms (
IN LPCWSTR servername OPTIONAL, IN LPCWSTR servername OPTIONAL,
IN LPCWSTR UGname, IN LPCWSTR UGname,
IN LPCWSTR resource, IN LPCWSTR resource,
OUT LPDWORD Perms OUT LPDWORD Perms
); );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Data Structures - Access // Data Structures - Access
// //
typedef struct _ACCESS_INFO_0 { typedef struct _ACCESS_INFO_0 {
LPWSTR acc0_resource_name; LPWSTR acc0_resource_name;
}ACCESS_INFO_0, *PACCESS_INFO_0, *LPACCESS_INFO_0; }ACCESS_INFO_0, *PACCESS_INFO_0, *LPACCESS_INFO_0;
typedef struct _ACCESS_INFO_1 { typedef struct _ACCESS_INFO_1 {
LPWSTR acc1_resource_name; LPWSTR acc1_resource_name;
skipping to change at line 1468 skipping to change at line 1480
IN NET_VALIDATE_PASSWORD_TYPE ValidationType, IN NET_VALIDATE_PASSWORD_TYPE ValidationType,
IN LPVOID InputArg, IN LPVOID InputArg,
OUT LPVOID *OutputArg OUT LPVOID *OutputArg
); );
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetValidatePasswordPolicyFree( NetValidatePasswordPolicyFree(
IN LPVOID *OutputArg IN LPVOID *OutputArg
); );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM)
#pragma endregion
#endif // _LMACCESS_ #endif // _LMACCESS_
// //
// Domain Class // Domain Class
// //
#ifndef _LMDOMAIN_ #ifndef _LMDOMAIN_
#define _LMDOMAIN_ #define _LMDOMAIN_
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Function Prototypes - Domain // Function Prototypes - Domain
// //
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetGetDCName ( NetGetDCName (
_In_opt_ IN LPCWSTR servername OPTIONAL, _In_opt_ IN LPCWSTR servername OPTIONAL,
_In_opt_ IN LPCWSTR domainname OPTIONAL, _In_opt_ IN LPCWSTR domainname OPTIONAL,
_At_((LPWSTR *)bufptr, _Outptr_result_z_) LPBYTE *bufptr _At_((LPWSTR *)bufptr, _Outptr_result_z_) LPBYTE *bufptr
); );
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetGetAnyDCName ( NetGetAnyDCName (
_In_opt_ IN LPCWSTR servername OPTIONAL, _In_opt_ IN LPCWSTR servername OPTIONAL,
_In_opt_ IN LPCWSTR domainname OPTIONAL, _In_opt_ IN LPCWSTR domainname OPTIONAL,
_At_((LPWSTR *)bufptr, _Outptr_result_z_) LPBYTE *bufptr _At_((LPWSTR *)bufptr, _Outptr_result_z_) LPBYTE *bufptr
); );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM)
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
I_NetLogonControl( I_NetLogonControl(
_In_opt_ LPCWSTR ServerName OPTIONAL, _In_opt_ LPCWSTR ServerName OPTIONAL,
_In_ DWORD FunctionCode, _In_ DWORD FunctionCode,
_In_ DWORD QueryLevel, _In_ DWORD QueryLevel,
_Outptr_result_buffer_(_Inexpressible_("varies")) LPBYTE *Buffer _Outptr_result_buffer_(_Inexpressible_("varies")) LPBYTE *Buffer
); );
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
I_NetLogonControl2( I_NetLogonControl2(
skipping to change at line 1522 skipping to change at line 1546
#ifndef _NTDEF_ #ifndef _NTDEF_
typedef _Return_type_success_(return >= 0) LONG NTSTATUS, *PNTSTATUS; typedef _Return_type_success_(return >= 0) LONG NTSTATUS, *PNTSTATUS;
#endif #endif
NTSTATUS NET_API_FUNCTION NTSTATUS NET_API_FUNCTION
NetEnumerateTrustedDomains ( NetEnumerateTrustedDomains (
_In_opt_ IN LPWSTR ServerName OPTIONAL, _In_opt_ IN LPWSTR ServerName OPTIONAL,
_Outptr_ OUT LPWSTR *DomainNames _Outptr_ OUT LPWSTR *DomainNames
); );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Special Values and Constants - Domain // Special Values and Constants - Domain
// //
// //
// FunctionCode values for I_NetLogonControl. // FunctionCode values for I_NetLogonControl.
// //
// NOTE : if you change the following NETLOGON_CONTROL_* values, // NOTE : if you change the following NETLOGON_CONTROL_* values,
// change them in net\svcdlls\logonsrv\logon.idl file also. // change them in net\svcdlls\logonsrv\logon.idl file also.
// //
skipping to change at line 1545 skipping to change at line 1575
#define NETLOGON_CONTROL_SYNCHRONIZE 3 // Force synchronize on BDC #define NETLOGON_CONTROL_SYNCHRONIZE 3 // Force synchronize on BDC
#define NETLOGON_CONTROL_PDC_REPLICATE 4 // Force PDC to broadcast change #define NETLOGON_CONTROL_PDC_REPLICATE 4 // Force PDC to broadcast change
#define NETLOGON_CONTROL_REDISCOVER 5 // Force to re-discover trusted doma in DCs #define NETLOGON_CONTROL_REDISCOVER 5 // Force to re-discover trusted doma in DCs
#define NETLOGON_CONTROL_TC_QUERY 6 // Query status of specified trusted channel status #define NETLOGON_CONTROL_TC_QUERY 6 // Query status of specified trusted channel status
#define NETLOGON_CONTROL_TRANSPORT_NOTIFY 7 // Notify netlogon that a new transp ort has come online #define NETLOGON_CONTROL_TRANSPORT_NOTIFY 7 // Notify netlogon that a new transp ort has come online
#define NETLOGON_CONTROL_FIND_USER 8 // Find named user in a trusted doma in #define NETLOGON_CONTROL_FIND_USER 8 // Find named user in a trusted doma in
#define NETLOGON_CONTROL_CHANGE_PASSWORD 9 // Change machine password on a secu re channel to a trusted domain #define NETLOGON_CONTROL_CHANGE_PASSWORD 9 // Change machine password on a secu re channel to a trusted domain
#define NETLOGON_CONTROL_TC_VERIFY 10 // Verify status of specified truste d channel #define NETLOGON_CONTROL_TC_VERIFY 10 // Verify status of specified truste d channel
#define NETLOGON_CONTROL_FORCE_DNS_REG 11 // Force DNS re-registration of all registered records #define NETLOGON_CONTROL_FORCE_DNS_REG 11 // Force DNS re-registration of all registered records
#define NETLOGON_CONTROL_QUERY_DNS_REG 12 // Query the status of DNS updates #define NETLOGON_CONTROL_QUERY_DNS_REG 12 // Query the status of DNS updates
#define NETLOGON_CONTROL_QUERY_ENC_TYPES 13 // Query the supported encryption ty pes
// Debug function codes // Debug function codes
#define NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL 0xFFFB #define NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL 0xFFFB
#define NETLOGON_CONTROL_BACKUP_CHANGE_LOG 0xFFFC #define NETLOGON_CONTROL_BACKUP_CHANGE_LOG 0xFFFC
#define NETLOGON_CONTROL_TRUNCATE_LOG 0xFFFD #define NETLOGON_CONTROL_TRUNCATE_LOG 0xFFFD
#define NETLOGON_CONTROL_SET_DBFLAG 0xFFFE #define NETLOGON_CONTROL_SET_DBFLAG 0xFFFE
#define NETLOGON_CONTROL_BREAKPOINT 0xFFFF #define NETLOGON_CONTROL_BREAKPOINT 0xFFFF
// //
skipping to change at line 1702 skipping to change at line 1733
}MSA_INFO_STATE, *PMSA_INFO_STATE; }MSA_INFO_STATE, *PMSA_INFO_STATE;
typedef struct _MSA_INFO_0 { typedef struct _MSA_INFO_0 {
MSA_INFO_STATE State; MSA_INFO_STATE State;
}MSA_INFO_0, *PMSA_INFO_0, *LPMSA_INFO_0; }MSA_INFO_0, *PMSA_INFO_0, *LPMSA_INFO_0;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _LMDOMAIN_ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion #pragma endregion
#endif // _LMDOMAIN_
 End of changes. 11 change blocks. 
5 lines changed or deleted 38 lines changed or added


 lmapibuf.h (6.3.9600.17415-Windows 8.1)   lmapibuf.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 32 skipping to change at line 32
--*/ --*/
#ifndef _LMAPIBUF_ #ifndef _LMAPIBUF_
#define _LMAPIBUF_ #define _LMAPIBUF_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// //
// Function Prototypes // Function Prototypes
// //
_Success_( return == 0 ) _Success_( return == 0 )
skipping to change at line 71 skipping to change at line 71
_Outptr_result_bytebuffer_(NewByteCount) LPVOID * NewBuffer _Outptr_result_bytebuffer_(NewByteCount) LPVOID * NewBuffer
); );
_Success_( return == 0 ) _Success_( return == 0 )
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetApiBufferSize( NetApiBufferSize(
_In_ LPVOID Buffer, _In_ LPVOID Buffer,
_Out_ LPDWORD ByteCount _Out_ LPDWORD ByteCount
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// The following private function will go away eventually. // The following private function will go away eventually.
// Call NetApiBufferAllocate instead. // Call NetApiBufferAllocate instead.
// //
_Success_( return == 0 ) _Success_( return == 0 )
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetapipBufferAllocate ( // Internal Function NetapipBufferAllocate ( // Internal Function
_In_ DWORD ByteCount, _In_ DWORD ByteCount,
_Outptr_result_bytebuffer_(ByteCount) LPVOID * Buffer _Outptr_result_bytebuffer_(ByteCount) LPVOID * Buffer
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY STEM) */
#pragma endregion #pragma endregion
#endif // _LMAPIBUF_ #endif // _LMAPIBUF_
 End of changes. 4 change blocks. 
3 lines changed or deleted 16 lines changed or added


 lmdfs.h (6.3.9600.17415-Windows 8.1)   lmdfs.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 32 skipping to change at line 32
--*/ --*/
#ifndef _LMDFS_ #ifndef _LMDFS_
#define _LMDFS_ #define _LMDFS_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// //
// DFS Volume state // DFS Volume state
// //
#define DFS_VOLUME_STATES 0xF #define DFS_VOLUME_STATES 0xF
skipping to change at line 872 skipping to change at line 872
// //
// Flags accepted by NetDfsMove // Flags accepted by NetDfsMove
// //
// //
// This indicates that if a colliding link is found it should be replaced // This indicates that if a colliding link is found it should be replaced
// //
#define DFS_MOVE_FLAG_REPLACE_IF_EXISTS 0x00000001 #define DFS_MOVE_FLAG_REPLACE_IF_EXISTS 0x00000001
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetDfsRename( NetDfsRename(
_In_ LPWSTR Path, // Current Win32 path in a Dfs _In_ LPWSTR Path, // Current Win32 path in a Dfs
_In_ LPWSTR NewPath // New Win32 path in the same Dfs _In_ LPWSTR NewPath // New Win32 path in the same Dfs
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetDfsAddRootTarget( NetDfsAddRootTarget(
_In_ LPWSTR pDfsPath, _In_ LPWSTR pDfsPath,
_In_opt_ LPWSTR pTargetPath, _In_opt_ LPWSTR pTargetPath,
_In_ ULONG MajorVersion, _In_ ULONG MajorVersion,
_In_opt_ LPWSTR pComment, _In_opt_ LPWSTR pComment,
_In_ ULONG Flags _In_ ULONG Flags
); );
// //
skipping to change at line 998 skipping to change at line 1010
ULONGLONG StandaloneDfsCapabilities; ULONGLONG StandaloneDfsCapabilities;
} DFS_SUPPORTED_NAMESPACE_VERSION_INFO, *PDFS_SUPPORTED_NAMESPACE_VERSION_INFO; } DFS_SUPPORTED_NAMESPACE_VERSION_INFO, *PDFS_SUPPORTED_NAMESPACE_VERSION_INFO;
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetDfsGetSupportedNamespaceVersion( NetDfsGetSupportedNamespaceVersion(
_In_ DFS_NAMESPACE_VERSION_ORIGIN Origin, _In_ DFS_NAMESPACE_VERSION_ORIGIN Origin,
_In_opt_ PWSTR pName, _In_opt_ PWSTR pName,
_Outptr_ PDFS_SUPPORTED_NAMESPACE_VERSION_INFO *ppVersionInfo _Outptr_ PDFS_SUPPORTED_NAMESPACE_VERSION_INFO *ppVersionInfo
); );
#ifndef _DFSFSCTL_
#define FSCTL_DFS_GET_PKT_ENTRY_STATE CTL_CODE(FSCTL_DFS_BASE, 2031, METHO
D_BUFFERED, FILE_ANY_ACCESS)
// FSCTL_DFS_GET_PKT_ENTRY_STATE Input Buffer
// All the strings appear in Buffer in the same order as the length fields. The
strings
// are not NULL terminated. The length values are in bytes.
typedef struct {
USHORT DfsEntryPathLen;
USHORT ServerNameLen;
USHORT ShareNameLen;
ULONG Level;
WCHAR Buffer[1];
} DFS_GET_PKT_ENTRY_STATE_ARG, *PDFS_GET_PKT_ENTRY_STATE_ARG;
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY STEM) */
#pragma endregion #pragma endregion
#endif // _LMDFS_ #endif // _LMDFS_
 End of changes. 5 change blocks. 
3 lines changed or deleted 33 lines changed or added


 lmerrlog.h (6.3.9600.17415-Windows 8.1)   lmerrlog.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 685 skipping to change at line 685
*An error occurred while updating the logon or logoff information for %1. *An error occurred while updating the logon or logoff information for %1.
*/ */
#define NELOG_NetlogonSyncError (ERRLOG_BASE + 126) #define NELOG_NetlogonSyncError (ERRLOG_BASE + 126)
/* /*
*An error occurred while synchronizing with primary domain controller %1 *An error occurred while synchronizing with primary domain controller %1
*/ */
#define NELOG_NetlogonRequireSignOrSealError (ERRLOG_BASE + 127) #define NELOG_NetlogonRequireSignOrSealError (ERRLOG_BASE + 127)
/* /*
* The session setup to the Windows NT or Windows 2000 Domain Controller %1 f or the domain %2 * The session setup to the Windows Domain Controller %1 for the domain %2
* failed because %1 does not support signing or sealing the Netlogon * failed because %1 does not support signing or sealing the Netlogon
* session. * session.
* *
* Either upgrade the Domain controller or set the RequireSignOrSeal * Either upgrade the Domain controller or set the RequireSignOrSeal
* registry entry on this machine to 0. * registry entry on this machine to 0.
*/ */
// //
// UPS service specific error log messages from 130 to 135 // UPS service specific error log messages from 130 to 135
// //
skipping to change at line 977 skipping to change at line 977
* *
* %n%nADDITIONAL INFO * %n%nADDITIONAL INFO
* %nIf this computer is a domain controller for the specified domain, it * %nIf this computer is a domain controller for the specified domain, it
* sets up the secure session to the primary domain controller emulator in t he specified * sets up the secure session to the primary domain controller emulator in t he specified
* domain. Otherwise, this computer sets up the secure session to any domain controller * domain. Otherwise, this computer sets up the secure session to any domain controller
* in the specified domain. * in the specified domain.
*/ */
#define NELOG_NetlogonAuthNoTrustLsaSecret (ERRLOG2_BASE + 20) #define NELOG_NetlogonAuthNoTrustLsaSecret (ERRLOG2_BASE + 20)
/* /*
* The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * The session setup to the Windows Domain Controller %1 for the domain %2
* failed because the computer %3 does not have a local security database ac count. * failed because the computer %3 does not have a local security database ac count.
*/ */
#define NELOG_NetlogonAuthNoTrustSamAccount (ERRLOG2_BASE + 21) #define NELOG_NetlogonAuthNoTrustSamAccount (ERRLOG2_BASE + 21)
/* /*
* The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * The session setup to the Windows Domain Controller %1 for the domain %2
* failed because the Domain Controller did not have an account %4 * failed because the Domain Controller did not have an account %4
* needed to set up the session by this computer %3. * needed to set up the session by this computer %3.
* *
* %n%nADDITIONAL DATA * %n%nADDITIONAL DATA
* %nIf this computer is a member of or a Domain Controller in the specified domain, the * %nIf this computer is a member of or a Domain Controller in the specified domain, the
* aforementioned account is a computer account for this computer in the spe cified domain. * aforementioned account is a computer account for this computer in the spe cified domain.
* Otherwise, the account is an interdomain trust account with the specified domain. * Otherwise, the account is an interdomain trust account with the specified domain.
*/ */
#define NELOG_NetlogonServerAuthFailed (ERRLOG2_BASE + 22) #define NELOG_NetlogonServerAuthFailed (ERRLOG2_BASE + 22)
skipping to change at line 1299 skipping to change at line 1299
/* /*
* Service failed to initialize from its restored database. Service * Service failed to initialize from its restored database. Service
* will not start. * will not start.
*/ */
// //
// More Netlogon and RPL service events // More Netlogon and RPL service events
// //
#define NELOG_NetlogonSessionTypeWrong (ERRLOG2_BASE + 70) #define NELOG_NetlogonSessionTypeWrong (ERRLOG2_BASE + 70)
/* /*
* The session setup to the Windows NT or Windows 2000 Domain Controller %1 from computer * The session setup to the Windows Domain Controller %1 from computer
* %2 using account %4 failed. %2 is declared to be a BDC in domain %3. * %2 using account %4 failed. %2 is declared to be a BDC in domain %3.
* However, %2 tried to connect as either a DC in a trusted domain, * However, %2 tried to connect as either a DC in a trusted domain,
* a member workstation in domain %3, or as a server in domain %3. * a member workstation in domain %3, or as a server in domain %3.
* Use the Active Directory Users and Computers tool or Server Manager to re move the BDC account for %2. * Use the Active Directory Users and Computers tool or Server Manager to re move the BDC account for %2.
*/ */
#define NELOG_RplUpgradeDBTo40 (ERRLOG2_BASE + 71) #define NELOG_RplUpgradeDBTo40 (ERRLOG2_BASE + 71)
/* /*
* The Remoteboot database was in NT 3.5 / NT 3.51 format and NT is * The Remoteboot database was in NT 3.5 / NT 3.51 format and NT is
* attempting to convert it to NT 4.0 format. The JETCONV converter * attempting to convert it to NT 4.0 format. The JETCONV converter
* will write to the Application event log when it is finished. * will write to the Application event log when it is finished.
skipping to change at line 1439 skipping to change at line 1439
* controller or by restarting Net Logon service on the domain controller. * controller or by restarting Net Logon service on the domain controller.
*/ */
#define NELOG_NetlogonDynamicDnsFailure (ERRLOG2_BASE + 82) #define NELOG_NetlogonDynamicDnsFailure (ERRLOG2_BASE + 82)
/* /*
* Dynamic registration or deregistration of one or more DNS records failed with the following error: %n%1 * Dynamic registration or deregistration of one or more DNS records failed with the following error: %n%1
*/ */
#define NELOG_NetlogonRpcCallCancelled (ERRLOG2_BASE + 83) #define NELOG_NetlogonRpcCallCancelled (ERRLOG2_BASE + 83)
/* /*
* The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * The session setup to the Windows Domain Controller %1 for the domain %2
* is not responsive. The current RPC call from Netlogon on \\%3 to %1 has been cancelled. * is not responsive. The current RPC call from Netlogon on \\%3 to %1 has been cancelled.
*/ */
#define NELOG_NetlogonDcSiteCovered (ERRLOG2_BASE + 84) #define NELOG_NetlogonDcSiteCovered (ERRLOG2_BASE + 84)
/* /*
* Site '%2' does not have any Domain Controllers for domain '%3'. * Site '%2' does not have any Domain Controllers for domain '%3'.
* Domain Controllers in site '%1' have been automatically * Domain Controllers in site '%1' have been automatically
* selected to cover site '%2' for domain '%3' based on configured * selected to cover site '%2' for domain '%3' based on configured
* Directory Server replication costs. * Directory Server replication costs.
*/ */
 End of changes. 5 change blocks. 
5 lines changed or deleted 5 lines changed or added


 lmjoin.h (6.3.9600.17415-Windows 8.1)   lmjoin.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 32 skipping to change at line 32
--*/ --*/
#ifndef __LMJOIN_H__ #ifndef __LMJOIN_H__
#define __LMJOIN_H__ #define __LMJOIN_H__
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Types of name that can be validated // Types of name that can be validated
// //
typedef enum _NETSETUP_NAME_TYPE { typedef enum _NETSETUP_NAME_TYPE {
NetSetupUnknown = 0, NetSetupUnknown = 0,
NetSetupMachine, NetSetupMachine,
NetSetupWorkgroup, NetSetupWorkgroup,
NetSetupDomain, NetSetupDomain,
NetSetupNonExistentDomain, NetSetupNonExistentDomain,
skipping to change at line 67 skipping to change at line 67
// //
typedef enum _NETSETUP_JOIN_STATUS { typedef enum _NETSETUP_JOIN_STATUS {
NetSetupUnknownStatus = 0, NetSetupUnknownStatus = 0,
NetSetupUnjoined, NetSetupUnjoined,
NetSetupWorkgroupName, NetSetupWorkgroupName,
NetSetupDomainName NetSetupDomainName
} NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS; } NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// Flags to determine the behavior of the join/unjoin APIs // Flags to determine the behavior of the join/unjoin APIs
// //
#define NETSETUP_JOIN_DOMAIN 0x00000001 // If not present, workgroup is joined #define NETSETUP_JOIN_DOMAIN 0x00000001 // If not present, workgroup is joined
#define NETSETUP_ACCT_CREATE 0x00000002 // Do the server side account cr eation/rename #define NETSETUP_ACCT_CREATE 0x00000002 // Do the server side account cr eation/rename
#define NETSETUP_ACCT_DELETE 0x00000004 // Delete the account when a dom ain is left #define NETSETUP_ACCT_DELETE 0x00000004 // Delete the account when a dom ain is left
#define NETSETUP_WIN9X_UPGRADE 0x00000010 // Invoked during upgrade of Win dows 9x to #define NETSETUP_WIN9X_UPGRADE 0x00000010 // Invoked during upgrade of Win dows 9x to
// Windows NT // Windows NT
#define NETSETUP_DOMAIN_JOIN_IF_JOINED 0x00000020 // Allow the client to join a new domain #define NETSETUP_DOMAIN_JOIN_IF_JOINED 0x00000020 // Allow the client to join a new domain
// even if it is already joined to a domain // even if it is already joined to a domain
skipping to change at line 294 skipping to change at line 300
NET_API_STATUS NET_API_STATUS
NET_API_FUNCTION NET_API_FUNCTION
NetValidateName( NetValidateName(
_In_opt_ LPCWSTR lpServer, _In_opt_ LPCWSTR lpServer,
_In_ LPCWSTR lpName, _In_ LPCWSTR lpName,
_In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpAccount,
_In_opt_ LPCWSTR lpPassword, _In_opt_ LPCWSTR lpPassword,
_In_ NETSETUP_NAME_TYPE NameType _In_ NETSETUP_NAME_TYPE NameType
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Determines whether a workstation is joined to a domain or not // Determines whether a workstation is joined to a domain or not
// //
NET_API_STATUS NET_API_STATUS
NET_API_FUNCTION NET_API_FUNCTION
NetGetJoinInformation( NetGetJoinInformation(
_In_opt_ LPCWSTR lpServer, _In_opt_ LPCWSTR lpServer,
_Outptr_ LPWSTR *lpNameBuffer, _Outptr_ LPWSTR *lpNameBuffer,
_Out_ PNETSETUP_JOIN_STATUS BufferType _Out_ PNETSETUP_JOIN_STATUS BufferType
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// Determines the list of OUs that the client can create a machine account in // Determines the list of OUs that the client can create a machine account in
// //
NET_API_STATUS NET_API_STATUS
NET_API_FUNCTION NET_API_FUNCTION
NetGetJoinableOUs( NetGetJoinableOUs(
_In_ LPCWSTR lpServer, _In_ LPCWSTR lpServer,
_In_ LPCWSTR lpDomain, _In_ LPCWSTR lpDomain,
_In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpAccount,
_In_opt_ LPCWSTR lpPassword, _In_opt_ LPCWSTR lpPassword,
skipping to change at line 382 skipping to change at line 400
NetEnumerateComputerNames( NetEnumerateComputerNames(
_In_opt_ LPCWSTR Server, _In_opt_ LPCWSTR Server,
_In_ NET_COMPUTER_NAME_TYPE NameType, _In_ NET_COMPUTER_NAME_TYPE NameType,
_In_ ULONG Reserved, _In_ ULONG Reserved,
_Out_ PDWORD EntryCount, _Out_ PDWORD EntryCount,
_Outptr_result_buffer_(*EntryCount) LPWSTR **ComputerNames _Outptr_result_buffer_(*EntryCount) LPWSTR **ComputerNames
); );
#endif // (_WIN32_WINNT >= 0x0501) #endif // (_WIN32_WINNT >= 0x0501)
#ifdef __cplusplus #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
}
#endif #pragma region Deskotp Family or Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP)
#if(_WIN32_WINNT >= _WIN32_WINNT_WIN10)
//
// AAD join type
//
typedef enum _DSREG_JOIN_TYPE{
DSREG_UNKNOWN_JOIN = 0,
DSREG_DEVICE_JOIN = 1,
DSREG_WORKPLACE_JOIN = 2
} DSREG_JOIN_TYPE, *PDSREG_JOIN_TYPE;
typedef struct _DSREG_USER_INFO
{
LPWSTR pszUserEmail;
LPWSTR pszUserKeyId;
LPWSTR pszUserKeyName;
} DSREG_USER_INFO, *PDSREG_USER_INFO;
//
// The following type definition must be kept
// in sync with wincrypt.h
//
#ifndef __WINCRYPT_H__
typedef const struct _CERT_CONTEXT *PCCERT_CONTEXT;
#endif // __WINCRYPT_H__
typedef struct _DSREG_JOIN_INFO
{
DSREG_JOIN_TYPE joinType;
PCCERT_CONTEXT pJoinCertificate;
LPWSTR pszDeviceId;
LPWSTR pszIdpDomain;
LPWSTR pszTenantId;
LPWSTR pszJoinUserEmail;
LPWSTR pszTenantDisplayName;
LPWSTR pszMdmEnrollmentUrl;
LPWSTR pszMdmTermsOfUseUrl;
LPWSTR pszMdmComplianceUrl;
LPWSTR pszUserSettingSyncUrl;
DSREG_USER_INFO *pUserInfo;
} DSREG_JOIN_INFO, *PDSREG_JOIN_INFO;
#endif // _WIN32_WINNT >= _WIN32_WINNT_WIN10
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_AP
P) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= _WIN32_WINNT_WIN10)
HRESULT
NET_API_FUNCTION
NetGetAadJoinInformation(
_In_opt_ LPCWSTR pcszTenantId,
_Outptr_result_maybenull_ PDSREG_JOIN_INFO *ppJoinInfo
);
VOID
NET_API_FUNCTION
NetFreeAadJoinInformation(
_In_opt_ PDSREG_JOIN_INFO pJoinInfo
);
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN10)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion #pragma endregion
#ifdef __cplusplus
}
#endif
#endif // __LMJOIN_H__ #endif // __LMJOIN_H__
 End of changes. 7 change blocks. 
6 lines changed or deleted 107 lines changed or added


 lmremutl.h (6.3.9600.17415-Windows 8.1)   lmremutl.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 30 skipping to change at line 30
--*/ --*/
#ifndef _LMREMUTL_ #ifndef _LMREMUTL_
#define _LMREMUTL_ #define _LMREMUTL_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// //
// Type Definitions // Type Definitions
// //
#ifndef DESC_CHAR_UNICODE #ifndef DESC_CHAR_UNICODE
skipping to change at line 72 skipping to change at line 72
_Outptr_result_bytebuffer_(sizeof(TIME_OF_DAY_INFO)) LPBYTE *BufferPtr _Outptr_result_bytebuffer_(sizeof(TIME_OF_DAY_INFO)) LPBYTE *BufferPtr
); );
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetRemoteComputerSupports( NetRemoteComputerSupports(
IN LPCWSTR UncServerName OPTIONAL, // Must start with "\\". IN LPCWSTR UncServerName OPTIONAL, // Must start with "\\".
IN DWORD OptionsWanted, // Set SUPPORTS_ bits wanted. IN DWORD OptionsWanted, // Set SUPPORTS_ bits wanted.
OUT LPDWORD OptionsSupported // Supported features, masked. OUT LPDWORD OptionsSupported // Supported features, masked.
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
NET_API_STATUS NET_API_STATUS
__cdecl __cdecl
RxRemoteApi( RxRemoteApi(
IN DWORD ApiNumber, IN DWORD ApiNumber,
_In_ IN LPCWSTR UncServerName, // Required, with \\name. _In_ IN LPCWSTR UncServerName, // Required, with \\name.
_In_ IN LPDESC ParmDescString, _In_ IN LPDESC ParmDescString,
_In_opt_ IN LPDESC DataDesc16 OPTIONAL, _In_opt_ IN LPDESC DataDesc16 OPTIONAL,
_In_opt_ IN LPDESC DataDesc32 OPTIONAL, _In_opt_ IN LPDESC DataDesc32 OPTIONAL,
_In_opt_ IN LPDESC DataDescSmb OPTIONAL, _In_opt_ IN LPDESC DataDescSmb OPTIONAL,
_In_opt_ IN LPDESC AuxDesc16 OPTIONAL, _In_opt_ IN LPDESC AuxDesc16 OPTIONAL,
_In_opt_ IN LPDESC AuxDesc32 OPTIONAL, _In_opt_ IN LPDESC AuxDesc32 OPTIONAL,
_In_opt_ IN LPDESC AuxDescSmb OPTIONAL, _In_opt_ IN LPDESC AuxDescSmb OPTIONAL,
IN DWORD Flags, IN DWORD Flags,
... // rest of API's arguments ... // rest of API's arguments
); );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// Data Structures // Data Structures
// //
typedef struct _TIME_OF_DAY_INFO { typedef struct _TIME_OF_DAY_INFO {
DWORD tod_elapsedt; DWORD tod_elapsedt;
DWORD tod_msecs; DWORD tod_msecs;
DWORD tod_hours; DWORD tod_hours;
DWORD tod_mins; DWORD tod_mins;
DWORD tod_secs; DWORD tod_secs;
skipping to change at line 134 skipping to change at line 146
// //
#define NO_PERMISSION_REQUIRED 0x00000001 // set if use NULL session #define NO_PERMISSION_REQUIRED 0x00000001 // set if use NULL session
#define ALLOCATE_RESPONSE 0x00000002 // set if RxRemoteApi allocates response buffer #define ALLOCATE_RESPONSE 0x00000002 // set if RxRemoteApi allocates response buffer
#define USE_SPECIFIC_TRANSPORT 0x80000000 #define USE_SPECIFIC_TRANSPORT 0x80000000
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY STEM) */
#pragma endregion #pragma endregion
#endif //_LMREMUTL_ #endif //_LMREMUTL_
 End of changes. 4 change blocks. 
3 lines changed or deleted 16 lines changed or added


 lmshare.h (6.3.9600.17415-Windows 8.1)   lmshare.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 30 skipping to change at line 30
User Mode - Win32 User Mode - Win32
Notes: Notes:
You must include <windef.h> and <lmcons.h> before this file. You must include <windef.h> and <lmcons.h> before this file.
--*/ --*/
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
// //
// SHARE API // SHARE API
// //
#ifndef _LMSHARE_ #ifndef _LMSHARE_
#define _LMSHARE_ #define _LMSHARE_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
skipping to change at line 638 skipping to change at line 638
#define PERM_FILE_READ 0x1 // user has read access #define PERM_FILE_READ 0x1 // user has read access
#define PERM_FILE_WRITE 0x2 // user has write access #define PERM_FILE_WRITE 0x2 // user has write access
#define PERM_FILE_CREATE 0x4 // user has create access #define PERM_FILE_CREATE 0x4 // user has create access
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _LMFILE_ #endif // _LMFILE_
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY STEM) */
#pragma endregion #pragma endregion
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added


 lmwksta.h (6.3.9600.17415-Windows 8.1)   lmwksta.h (10.0.10586.212-Windows 10 1511 10586.494) 
skipping to change at line 35 skipping to change at line 35
--*/ --*/
#ifndef _LMWKSTA_ #ifndef _LMWKSTA_
#define _LMWKSTA_ #define _LMWKSTA_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <lmcons.h> #include <lmcons.h>
#include <lmuseflg.h> // Deletion force level flags #include <lmuseflg.h> // Deletion force level flags
#if _MSC_VER >= 1200
#pragma warning(push)
#pragma warning(disable:4820) // padding added after data member
#endif
// //
// Function Prototypes // Function Prototypes
// //
NET_API_STATUS NET_API_FUNCTION NET_API_STATUS NET_API_FUNCTION
NetWkstaGetInfo ( NetWkstaGetInfo (
_In_opt_ LMSTR servername OPTIONAL, _In_opt_ LMSTR servername OPTIONAL,
_In_ DWORD level, _In_ DWORD level,
_Outptr_opt_result_buffer_(_Inexpressible_("size varies with level")) OUT LP BYTE *bufptr _Outptr_opt_result_buffer_(_Inexpressible_("size varies with level")) OUT LP BYTE *bufptr
); );
skipping to change at line 542 skipping to change at line 547
// //
// One of these values indicates the parameter within an information // One of these values indicates the parameter within an information
// structure that is invalid when ERROR_INVALID_PARAMETER is returned by // structure that is invalid when ERROR_INVALID_PARAMETER is returned by
// NetWkstaTransportAdd. // NetWkstaTransportAdd.
// //
#define TRANSPORT_QUALITYOFSERVICE_PARMNUM 201 #define TRANSPORT_QUALITYOFSERVICE_PARMNUM 201
#define TRANSPORT_NAME_PARMNUM 202 #define TRANSPORT_NAME_PARMNUM 202
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY STEM) */
#pragma endregion #pragma endregion
#endif // _LMWKSTA_ #endif // _LMWKSTA_
 End of changes. 4 change blocks. 
3 lines changed or deleted 12 lines changed or added

This html diff was produced by rfcdiff 1.41.