| sspi.h (6.3.9600.17415-Windows 8.1) | | sspi.h (10.0.10586.0-Windows 10 1511 10586.494) |
| | |
| skipping to change at line 32 | | skipping to change at line 32 |
| // end_ntifs | | // end_ntifs |
| | |
| #if _MSC_VER > 1000 | | #if _MSC_VER > 1000 |
| #pragma once | | #pragma once |
| #endif | | #endif |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C" { | | extern "C" { |
| #endif | | #endif |
| | |
|
| #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) |
| | |
| // | | // |
| // Determine environment: | | // Determine environment: |
| // | | // |
| | |
| #ifdef SECURITY_WIN32 | | #ifdef SECURITY_WIN32 |
| #define ISSP_LEVEL 32 | | #define ISSP_LEVEL 32 |
| #define ISSP_MODE 1 | | #define ISSP_MODE 1 |
| #endif // SECURITY_WIN32 | | #endif // SECURITY_WIN32 |
| | |
| | |
| skipping to change at line 287 | | skipping to change at line 287 |
| #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000 // Package can deleg
ate | | #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000 // Package can deleg
ate |
| #define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000 // Package supports
restricted callers | | #define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000 // Package supports
restricted callers |
| #define SECPKG_FLAG_NEGO_EXTENDER 0x00100000 // this package exte
nds SPNEGO, there is at most one | | #define SECPKG_FLAG_NEGO_EXTENDER 0x00100000 // this package exte
nds SPNEGO, there is at most one |
| #define SECPKG_FLAG_NEGOTIABLE2 0x00200000 // this package is n
egotiated under the NegoExtender | | #define SECPKG_FLAG_NEGOTIABLE2 0x00200000 // this package is n
egotiated under the NegoExtender |
| #define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000 // this package rece
ives all calls from appcontainer apps | | #define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000 // this package rece
ives all calls from appcontainer apps |
| #define SECPKG_FLAG_APPCONTAINER_CHECKS 0x00800000 // this package rece
ives calls from appcontainer apps | | #define SECPKG_FLAG_APPCONTAINER_CHECKS 0x00800000 // this package rece
ives calls from appcontainer apps |
| // if the following
checks succeed | | // if the following
checks succeed |
| // 1. Caller has dom
ain auth capability or | | // 1. Caller has dom
ain auth capability or |
| // 2. Target is a pr
oxy server or | | // 2. Target is a pr
oxy server or |
| // 3. The caller has
supplied creds | | // 3. The caller has
supplied creds |
|
| | #define SECPKG_FLAG_CREDENTIAL_ISOLATION_ENABLED 0x01000000 // this package is r
unning with Credential Guard enabled |
| | |
| #define SECPKG_ID_NONE 0xFFFF | | #define SECPKG_ID_NONE 0xFFFF |
| | |
| // | | // |
| // Extended Call Flags that currently contains | | // Extended Call Flags that currently contains |
| // Appcontainer related information about the caller. | | // Appcontainer related information about the caller. |
| // Packages can query for these | | // Packages can query for these |
| // via an LsaFunction GetExtendedCallFlags | | // via an LsaFunction GetExtendedCallFlags |
| // | | // |
| | |
| #define SECPKG_CALLFLAGS_APPCONTAINER 0x00000001 | | #define SECPKG_CALLFLAGS_APPCONTAINER 0x00000001 |
| #define SECPKG_CALLFLAGS_APPCONTAINER_AUTHCAPABLE 0x00000002 | | #define SECPKG_CALLFLAGS_APPCONTAINER_AUTHCAPABLE 0x00000002 |
| #define SECPKG_CALLFLAGS_FORCE_SUPPLIED 0x00000004 | | #define SECPKG_CALLFLAGS_FORCE_SUPPLIED 0x00000004 |
|
| | #define SECPKG_CALLFLAGS_APPCONTAINER_UPNCAPABLE 0x00000008 |
| | |
| // | | // |
| // SecBuffer | | // SecBuffer |
| // | | // |
| // Generic memory descriptors for buffers passed in to the security | | // Generic memory descriptors for buffers passed in to the security |
| // API | | // API |
| // | | // |
| | |
| typedef struct _SecBuffer { | | typedef struct _SecBuffer { |
| unsigned long cbBuffer; // Size of the buffer, in bytes | | unsigned long cbBuffer; // Size of the buffer, in bytes |
| | |
| skipping to change at line 348 | | skipping to change at line 350 |
| #define SECBUFFER_PADDING 9 // non-data padding | | #define SECBUFFER_PADDING 9 // non-data padding |
| #define SECBUFFER_STREAM 10 // whole encrypted message | | #define SECBUFFER_STREAM 10 // whole encrypted message |
| #define SECBUFFER_MECHLIST 11 | | #define SECBUFFER_MECHLIST 11 |
| #define SECBUFFER_MECHLIST_SIGNATURE 12 | | #define SECBUFFER_MECHLIST_SIGNATURE 12 |
| #define SECBUFFER_TARGET 13 // obsolete | | #define SECBUFFER_TARGET 13 // obsolete |
| #define SECBUFFER_CHANNEL_BINDINGS 14 | | #define SECBUFFER_CHANNEL_BINDINGS 14 |
| #define SECBUFFER_CHANGE_PASS_RESPONSE 15 | | #define SECBUFFER_CHANGE_PASS_RESPONSE 15 |
| #define SECBUFFER_TARGET_HOST 16 | | #define SECBUFFER_TARGET_HOST 16 |
| #define SECBUFFER_ALERT 17 | | #define SECBUFFER_ALERT 17 |
| #define SECBUFFER_APPLICATION_PROTOCOLS 18 // Lists of application protocol IDs
, one per negotiation extension | | #define SECBUFFER_APPLICATION_PROTOCOLS 18 // Lists of application protocol IDs
, one per negotiation extension |
|
| | #define SECBUFFER_SRTP_PROTECTION_PROFILES 19 // List of SRTP protection p |
| | rofiles, in descending order of preference |
| | #define SECBUFFER_SRTP_MASTER_KEY_IDENTIFIER 20 // SRTP master key identifie |
| | r |
| | #define SECBUFFER_TOKEN_BINDING 21 // Supported Token Binding p |
| | rotocol version and key parameters |
| | |
| #define SECBUFFER_ATTRMASK 0xF0000000 | | #define SECBUFFER_ATTRMASK 0xF0000000 |
| #define SECBUFFER_READONLY 0x80000000 // Buffer is read-on
ly, no checksum | | #define SECBUFFER_READONLY 0x80000000 // Buffer is read-on
ly, no checksum |
| #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000 // Buffer is read-on
ly, and checksummed | | #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000 // Buffer is read-on
ly, and checksummed |
| #define SECBUFFER_RESERVED 0x60000000 // Flags reserved to
security system | | #define SECBUFFER_RESERVED 0x60000000 // Flags reserved to
security system |
| | |
| typedef struct _SEC_NEGOTIATION_INFO { | | typedef struct _SEC_NEGOTIATION_INFO { |
| unsigned long Size; // Size of this structure | | unsigned long Size; // Size of this structure |
| unsigned long NameLength; // Length of name hint | | unsigned long NameLength; // Length of name hint |
| SEC_WCHAR * Name; // Name hint | | SEC_WCHAR * Name; // Name hint |
| | |
| skipping to change at line 390 | | skipping to change at line 395 |
| SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt; // Protocol negotiati
on extension type to use with this list of protocols | | SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt; // Protocol negotiati
on extension type to use with this list of protocols |
| unsigned short ProtocolListSize; // Size in bytes of t
he protocol ID list | | unsigned short ProtocolListSize; // Size in bytes of t
he protocol ID list |
| unsigned char ProtocolList[ANYSIZE_ARRAY]; // 8-bit length-prefi
xed application protocol IDs, most preferred first | | unsigned char ProtocolList[ANYSIZE_ARRAY]; // 8-bit length-prefi
xed application protocol IDs, most preferred first |
| } SEC_APPLICATION_PROTOCOL_LIST, *PSEC_APPLICATION_PROTOCOL_LIST; | | } SEC_APPLICATION_PROTOCOL_LIST, *PSEC_APPLICATION_PROTOCOL_LIST; |
| | |
| typedef struct _SEC_APPLICATION_PROTOCOLS { | | typedef struct _SEC_APPLICATION_PROTOCOLS { |
| unsigned long ProtocolListsSize; // Size in bytes
of the protocol ID lists array | | unsigned long ProtocolListsSize; // Size in bytes
of the protocol ID lists array |
| SEC_APPLICATION_PROTOCOL_LIST ProtocolLists[ANYSIZE_ARRAY]; // Array of prot
ocol ID lists | | SEC_APPLICATION_PROTOCOL_LIST ProtocolLists[ANYSIZE_ARRAY]; // Array of prot
ocol ID lists |
| } SEC_APPLICATION_PROTOCOLS, *PSEC_APPLICATION_PROTOCOLS; | | } SEC_APPLICATION_PROTOCOLS, *PSEC_APPLICATION_PROTOCOLS; |
| | |
|
| | typedef struct _SEC_SRTP_PROTECTION_PROFILES { |
| | unsigned short ProfilesSize; // Size in bytes of the SRTP pro |
| | tection profiles array |
| | unsigned short ProfilesList[ANYSIZE_ARRAY]; // Array of SRTP protection prof |
| | iles |
| | } SEC_SRTP_PROTECTION_PROFILES, *PSEC_SRTP_PROTECTION_PROFILES; |
| | |
| | typedef struct _SEC_SRTP_MASTER_KEY_IDENTIFIER { |
| | unsigned char MasterKeyIdentifierSize; // Size in bytes of the S |
| | RTP master key identifier |
| | unsigned char MasterKeyIdentifier[ANYSIZE_ARRAY]; // SRTP master key identi |
| | fier |
| | } SEC_SRTP_MASTER_KEY_IDENTIFIER, *PSEC_SRTP_MASTER_KEY_IDENTIFIER; |
| | |
| | typedef struct _SEC_TOKEN_BINDING { |
| | unsigned char MajorVersion; // Supported major version of th |
| | e Token Binding protocol |
| | unsigned char MinorVersion; // Supported minor version of th |
| | e Token Binding protocol |
| | unsigned short KeyParametersSize; // Size in bytes of the Token Bi |
| | nding key parameter IDs array |
| | unsigned char KeyParameters[ANYSIZE_ARRAY]; // Token Binding key parameter I |
| | Ds, most preferred first |
| | } SEC_TOKEN_BINDING, *PSEC_TOKEN_BINDING; |
| | |
| // | | // |
| // Data Representation Constant: | | // Data Representation Constant: |
| // | | // |
| #define SECURITY_NATIVE_DREP 0x00000010 | | #define SECURITY_NATIVE_DREP 0x00000010 |
| #define SECURITY_NETWORK_DREP 0x00000000 | | #define SECURITY_NETWORK_DREP 0x00000000 |
| | |
| // | | // |
| // Credential Use Flags | | // Credential Use Flags |
| // | | // |
| #define SECPKG_CRED_INBOUND 0x00000001 | | #define SECPKG_CRED_INBOUND 0x00000001 |
| | |
| skipping to change at line 687 | | skipping to change at line 709 |
| #define SECPKG_ATTR_DTLS_MTU 34 | | #define SECPKG_ATTR_DTLS_MTU 34 |
| #define SECPKG_ATTR_DATAGRAM_SIZES SECPKG_ATTR_STREAM_SIZES | | #define SECPKG_ATTR_DATAGRAM_SIZES SECPKG_ATTR_STREAM_SIZES |
| | |
| #define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128 | | #define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128 |
| | |
| // | | // |
| // win8.1 or greater | | // win8.1 or greater |
| // | | // |
| #define SECPKG_ATTR_APPLICATION_PROTOCOL 35 | | #define SECPKG_ATTR_APPLICATION_PROTOCOL 35 |
| | |
|
| | // |
| | // win10 or greater |
| | // |
| | #define SECPKG_ATTR_NEGOTIATED_TLS_EXTENSIONS 36 |
| | #define SECPKG_ATTR_IS_LOOPBACK 37 // indicates authentication to localhost |
| | |
| typedef struct _SecPkgContext_SubjectAttributes { | | typedef struct _SecPkgContext_SubjectAttributes { |
| void* AttributeInfo; // contains a PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION st
ructure | | void* AttributeInfo; // contains a PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION st
ructure |
| } SecPkgContext_SubjectAttributes, *PSecPkgContext_SubjectAttributes; | | } SecPkgContext_SubjectAttributes, *PSecPkgContext_SubjectAttributes; |
| | |
| #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1 | | #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1 |
| #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2 | | #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2 |
| | |
| // | | // |
| // types of credentials, used by SECPKG_ATTR_PROMPTING_NEEDED | | // types of credentials, used by SECPKG_ATTR_PROMPTING_NEEDED |
| // | | // |
| | |
| skipping to change at line 1060 | | skipping to change at line 1088 |
| #define MAX_PROTOCOL_ID_SIZE 0xff | | #define MAX_PROTOCOL_ID_SIZE 0xff |
| | |
| typedef struct _SecPkgContext_ApplicationProtocol | | typedef struct _SecPkgContext_ApplicationProtocol |
| { | | { |
| SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS ProtoNegoStatus; // Application
protocol negotiation status | | SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS ProtoNegoStatus; // Application
protocol negotiation status |
| SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt; // Protocol neg
otiation extension type corresponding to this protocol ID | | SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt; // Protocol neg
otiation extension type corresponding to this protocol ID |
| unsigned char ProtocolIdSize; // Size in byte
s of the application protocol ID | | unsigned char ProtocolIdSize; // Size in byte
s of the application protocol ID |
| unsigned char ProtocolId[MAX_PROTOCOL_ID_SIZE]; // Byte string
representing the negotiated application protocol ID | | unsigned char ProtocolId[MAX_PROTOCOL_ID_SIZE]; // Byte string
representing the negotiated application protocol ID |
| } SecPkgContext_ApplicationProtocol, *PSecPkgContext_ApplicationProtocol; | | } SecPkgContext_ApplicationProtocol, *PSecPkgContext_ApplicationProtocol; |
| | |
|
| | typedef struct _SecPkgContext_NegotiatedTlsExtensions |
| | { |
| | unsigned long ExtensionsCount; // Number of ne |
| | gotiated TLS extensions. |
| | _Field_size_(ExtensionsCount) unsigned short * Extensions; // Pointer to a |
| | rray of 2-byte TLS extension IDs (allocated by IANA). |
| | } SecPkgContext_NegotiatedTlsExtensions, * PSecPkgContext_NegotiatedTlsExtension |
| | s; |
| | |
| // begin_ntifs | | // begin_ntifs |
| | |
| typedef void | | typedef void |
| (SEC_ENTRY * SEC_GET_KEY_FN) ( | | (SEC_ENTRY * SEC_GET_KEY_FN) ( |
| void * Arg, // Argument passed in | | void * Arg, // Argument passed in |
| void * Principal, // Principal ID | | void * Principal, // Principal ID |
| unsigned long KeyVer, // Key Version | | unsigned long KeyVer, // Key Version |
| void * * Key, // Returned ptr to key | | void * * Key, // Returned ptr to key |
| SECURITY_STATUS * Status // returned status | | SECURITY_STATUS * Status // returned status |
| ); | | ); |
| | |
| skipping to change at line 1228 | | skipping to change at line 1262 |
| PTimeStamp); | | PTimeStamp); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define AddCredentials AddCredentialsW | | #define AddCredentials AddCredentialsW |
| #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_W | | #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_W |
| #else | | #else |
| #define AddCredentials AddCredentialsA | | #define AddCredentials AddCredentialsA |
| #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_A | | #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_A |
| #endif | | #endif |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| | //////////////////////////////////////////////////////////////////////// |
| | /// |
| | /// Asynchronous interface. Kernel-only (for now). |
| | /// |
| | //////////////////////////////////////////////////////////////////////// |
| | |
| | #if ISSP_MODE == 0 // For Kernel mode |
| | |
| | typedef struct _SspiAsyncContext SspiAsyncContext; |
| | |
| | // |
| | // Callback used for notifying completion of an async SSPI call. |
| | // |
| | typedef void (*SspiAsyncNotifyCallback)( |
| | _In_ SspiAsyncContext* Handle, |
| | _In_opt_ PVOID CallbackData |
| | ); |
| | |
| | // |
| | // Return a newly initialized context. |
| | // |
| | SspiAsyncContext* SspiCreateAsyncContext(); |
| | |
| | // |
| | // Free up a context. |
| | // |
| | void SspiFreeAsyncContext( |
| | _In_opt_ SspiAsyncContext* Handle |
| | ); |
| | |
| | // |
| | // Mark an async context for reuse. Only the context state is altered. |
| | // Client notification info, such as callback, is left alone |
| | // |
| | // If the context is invalid or currently in use, an error will be returned. |
| | // |
| | NTSTATUS SspiReinitAsyncContext( |
| | _Inout_ SspiAsyncContext* Handle |
| | ); |
| | |
| | // |
| | // Installs a callback which will be notified on async call completion. |
| | // |
| | SECURITY_STATUS SspiSetAsyncNotifyCallback( |
| | _In_ SspiAsyncContext* Context, |
| | _In_ SspiAsyncNotifyCallback Callback, |
| | _In_opt_ void* CallbackData |
| | ); |
| | |
| | // |
| | // Determines if the given async context requires notification on completion |
| | // of the call. |
| | // |
| | BOOLEAN SspiAsyncContextRequiresNotify( |
| | _In_ SspiAsyncContext* AsyncContext |
| | ); |
| | |
| | // |
| | // Gets the current status of an async call. Until the call is completed, |
| | // status will be SEC_I_ASYNC_CALL_PENDING. |
| | // |
| | SECURITY_STATUS SspiGetAsyncCallStatus( |
| | _In_ SspiAsyncContext* Handle |
| | ); |
| | |
| | SECURITY_STATUS SspiAcquireCredentialsHandleAsyncW( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | #if ISSP_MODE == 0 |
| | _In_opt_ PSECURITY_STRING pszPrincipal, // Name of principal |
| | _In_ PSECURITY_STRING pszPackage, // Name of package |
| | #else |
| | _In_opt_ LPWSTR pszPrincipal, // Name of principal |
| | _In_ LPWSTR pszPackage, // Name of package |
| | #endif |
| | _In_ unsigned long fCredentialUse, // Flags indicating use |
| | _In_opt_ void * pvLogonId, // Pointer to logon ID |
| | _In_opt_ void * pAuthData, // Package specific data |
| | _In_opt_ SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() f |
| | unc |
| | _In_opt_ void * pvGetKeyArgument, // Value to pass to GetK |
| | ey() |
| | _In_ PCredHandle phCredential, // (out) Cred Handle |
| | _In_opt_ PTimeStamp ptsExpiry // (out) Lifetime (optio |
| | nal) |
| | ); |
| | |
| | SECURITY_STATUS SspiAcquireCredentialsHandleAsyncA( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_opt_ LPSTR pszPrincipal, // Name of principal |
| | _In_ LPSTR pszPackage, // Name of package |
| | _In_ unsigned long fCredentialUse, // Flags indicating use |
| | _In_opt_ void * pvLogonId, // Pointer to logon ID |
| | _In_opt_ void * pAuthData, // Package specific data |
| | _In_opt_ SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() f |
| | unc |
| | _In_opt_ void * pvGetKeyArgument, // Value to pass to GetK |
| | ey() |
| | _In_ PCredHandle phCredential, // (out) Cred Handle |
| | _In_opt_ PTimeStamp ptsExpiry // (out) Lifetime (optio |
| | nal) |
| | ); |
| | |
| | SECURITY_STATUS SspiInitializeSecurityContextAsyncW( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_opt_ PCredHandle phCredential, // Cred to base context |
| | _In_opt_ PCtxtHandle phContext, // Existing context (OPT |
| | ) |
| | #if ISSP_MODE == 0 |
| | _In_opt_ PSECURITY_STRING pszTargetName, // Name of target |
| | #else |
| | _In_opt_ LPWSTR pszTargetName, // Name of target |
| | #endif |
| | _In_ unsigned long fContextReq, // Context Requirements |
| | _In_ unsigned long Reserved1, // Reserved, MBZ |
| | _In_ unsigned long TargetDataRep, // Data rep of target |
| | _In_opt_ PSecBufferDesc pInput, // Input Buffers |
| | _In_ unsigned long Reserved2, // Reserved, MBZ |
| | _In_opt_ PCtxtHandle phNewContext, // (out) New Context han |
| | dle |
| | _In_opt_ PSecBufferDesc pOutput, // (inout) Output Buffer |
| | s |
| | _In_ unsigned long * pfContextAttr, // (out) Context attrs |
| | _In_opt_ PTimeStamp ptsExpiry // (out) Life span (OPT) |
| | ); |
| | |
| | SECURITY_STATUS SspiInitializeSecurityContextAsyncA( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_opt_ PCredHandle phCredential, // Cred to base context |
| | _In_opt_ PCtxtHandle phContext, // Existing context (OPT |
| | ) |
| | _In_opt_ LPSTR pszTargetName, // Name of target |
| | _In_ unsigned long fContextReq, // Context Requirements |
| | _In_ unsigned long Reserved1, // Reserved, MBZ |
| | _In_ unsigned long TargetDataRep, // Data rep of target |
| | _In_opt_ PSecBufferDesc pInput, // Input Buffers |
| | _In_ unsigned long Reserved2, // Reserved, MBZ |
| | _In_opt_ PCtxtHandle phNewContext, // (out) New Context han |
| | dle |
| | _In_opt_ PSecBufferDesc pOutput, // (inout) Output Buffer |
| | s |
| | _In_ unsigned long * pfContextAttr, // (out) Context attrs |
| | _In_opt_ PTimeStamp ptsExpiry // (out) Life span (OPT) |
| | ); |
| | |
| | SECURITY_STATUS SspiAcceptSecurityContextAsync( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_opt_ PCredHandle phCredential, // Cred to base context |
| | _In_opt_ PCtxtHandle phContext, // Existing context (OPT) |
| | _In_opt_ PSecBufferDesc pInput, // Input buffer |
| | _In_ unsigned long fContextReq, // Context Requirements |
| | _In_ unsigned long TargetDataRep, // Target Data Rep |
| | _In_opt_ PCtxtHandle phNewContext, // (out) New context handl |
| | e |
| | _In_opt_ PSecBufferDesc pOutput, // (inout) Output buffers |
| | _In_ unsigned long* pfContextAttr, // (out) Context attribute |
| | s |
| | _In_opt_ PTimeStamp ptsExpiry // (out) Life span (OPT) |
| | ); |
| | |
| | SECURITY_STATUS SspiFreeCredentialsHandleAsync( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_ PCredHandle phCredential // Handle to free |
| | ); |
| | |
| | SECURITY_STATUS SspiDeleteSecurityContextAsync( |
| | _Inout_ SspiAsyncContext* AsyncContext, |
| | _In_ PCtxtHandle phContext // Context to delete |
| | ); |
| | |
| | #ifdef UNICODE |
| | # define SspiAcquireCredentialsHandleAsync SspiAcquireCredentialsHandleAsyncW |
| | # define SspiInitializeSecurityContextAsync SspiInitializeSecurityContextAsyn |
| | cW |
| | #else |
| | # define SspiAcquireCredentialsHandleAsync SspiAcquireCredentialsHandleAsyncA |
| | # define SspiInitializeSecurityContextAsync SspiInitializeSecurityContextAsyn |
| | c |
| | #endif |
| | |
| | #endif |
| | |
| | #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) |
| | |
| //////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////// |
| /// | | /// |
| /// Password Change Functions | | /// Password Change Functions |
| /// | | /// |
| //////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////// |
| | |
| #if ISSP_MODE != 0 | | #if ISSP_MODE != 0 |
| | |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| ChangeAccountPasswordW( | | ChangeAccountPasswordW( |
| | |
| skipping to change at line 1487 | | skipping to change at line 1698 |
| _In_ unsigned long ulAttribute, // Attribute to query | | _In_ unsigned long ulAttribute, // Attribute to query |
| _Out_ void * pBuffer // Buffer for attributes | | _Out_ void * pBuffer // Buffer for attributes |
| ); | | ); |
| | |
| typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
| (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)( |
| PCtxtHandle, | | PCtxtHandle, |
| unsigned long, | | unsigned long, |
| void *); | | void *); |
| | |
|
| | SECURITY_STATUS SEC_ENTRY |
| | QueryContextAttributesExW( |
| | _In_ PCtxtHandle phContext, // Context to query |
| | _In_ unsigned long ulAttribute, // Attribute to query |
| | _Out_writes_bytes_(cbBuffer) void * pBuffer, // Buffer for attributes |
| | _In_ unsigned long cbBuffer // Length of buffer |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_EX_FN_W)( |
| | PCtxtHandle, |
| | unsigned long, |
| | void *, |
| | unsigned long); |
| | |
| // end_ntifs | | // end_ntifs |
| | |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| QueryContextAttributesA( | | QueryContextAttributesA( |
| _In_ PCtxtHandle phContext, // Context to query | | _In_ PCtxtHandle phContext, // Context to query |
| _In_ unsigned long ulAttribute, // Attribute to query | | _In_ unsigned long ulAttribute, // Attribute to query |
| _Out_ void * pBuffer // Buffer for attributes | | _Out_ void * pBuffer // Buffer for attributes |
| ); | | ); |
| | |
| typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
| (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)( |
| PCtxtHandle, | | PCtxtHandle, |
| unsigned long, | | unsigned long, |
| void *); | | void *); |
| | |
|
| | SECURITY_STATUS SEC_ENTRY |
| | QueryContextAttributesExA( |
| | _In_ PCtxtHandle phContext, // Context to query |
| | _In_ unsigned long ulAttribute, // Attribute to query |
| | _Out_writes_bytes_(cbBuffer) void * pBuffer, // Buffer for attributes |
| | _In_ unsigned long cbBuffer // Length of buffer |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_EX_FN_A)( |
| | PCtxtHandle, |
| | unsigned long, |
| | void *, |
| | unsigned long); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| # define QueryContextAttributes QueryContextAttributesW // ntifs | | # define QueryContextAttributes QueryContextAttributesW // ntifs |
| # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W // ntifs | | # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W // ntifs |
|
| | # define QueryContextAttributesEx QueryContextAttributesExW // ntifs |
| | # define QUERY_CONTEXT_ATTRIBUTES_EX_FN QUERY_CONTEXT_ATTRIBUTES_EX_FN_W // nti |
| | fs |
| #else | | #else |
| # define QueryContextAttributes QueryContextAttributesA | | # define QueryContextAttributes QueryContextAttributesA |
| # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A | | # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A |
|
| | # define QueryContextAttributesEx QueryContextAttributesExA |
| | # define QUERY_CONTEXT_ATTRIBUTES_EX_FN QUERY_CONTEXT_ATTRIBUTES_EX_FN_A |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
| // begin_ntifs | | // begin_ntifs |
| | |
| #if (OSVER(NTDDI_VERSION) > NTDDI_WIN2K) | | #if (OSVER(NTDDI_VERSION) > NTDDI_WIN2K) |
| | |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| SetContextAttributesW( | | SetContextAttributesW( |
| _In_ PCtxtHandle phContext, // Context to Set | | _In_ PCtxtHandle phContext, // Context to Set |
| _In_ unsigned long ulAttribute, // Attribute to Set | | _In_ unsigned long ulAttribute, // Attribute to Set |
| | |
| skipping to change at line 1572 | | skipping to change at line 1817 |
| _In_ unsigned long ulAttribute, // Attribute to query | | _In_ unsigned long ulAttribute, // Attribute to query |
| _Inout_ void * pBuffer // Buffer for attributes | | _Inout_ void * pBuffer // Buffer for attributes |
| ); | | ); |
| | |
| typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
| (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)( |
| PCredHandle, | | PCredHandle, |
| unsigned long, | | unsigned long, |
| void *); | | void *); |
| | |
|
| | SECURITY_STATUS SEC_ENTRY |
| | QueryCredentialsAttributesExW( |
| | _In_ PCredHandle phCredential, // Credential to query |
| | _In_ unsigned long ulAttribute, // Attribute to query |
| | _Inout_updates_bytes_(cbBuffer) void * pBuffer, // Buffer for attributes |
| | _In_ unsigned long cbBuffer // Length of buffer |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W)( |
| | PCredHandle, |
| | unsigned long, |
| | void *, |
| | unsigned long); |
| | |
| // end_ntifs | | // end_ntifs |
| | |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| QueryCredentialsAttributesA( | | QueryCredentialsAttributesA( |
| _In_ PCredHandle phCredential, // Credential to query | | _In_ PCredHandle phCredential, // Credential to query |
| _In_ unsigned long ulAttribute, // Attribute to query | | _In_ unsigned long ulAttribute, // Attribute to query |
| _Inout_ void * pBuffer // Buffer for attributes | | _Inout_ void * pBuffer // Buffer for attributes |
| ); | | ); |
| | |
| typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
| (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)( |
| PCredHandle, | | PCredHandle, |
| unsigned long, | | unsigned long, |
| void *); | | void *); |
| | |
|
| | SECURITY_STATUS SEC_ENTRY |
| | QueryCredentialsAttributesExA( |
| | _In_ PCredHandle phCredential, // Credential to query |
| | _In_ unsigned long ulAttribute, // Attribute to query |
| | _Inout_updates_bytes_(cbBuffer) void * pBuffer, // Buffer for attributes |
| | _In_ unsigned long cbBuffer // Length of buffer |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A)( |
| | PCredHandle, |
| | unsigned long, |
| | void *, |
| | unsigned long); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| # define QueryCredentialsAttributes QueryCredentialsAttributesW // n
tifs | | # define QueryCredentialsAttributes QueryCredentialsAttributesW // n
tifs |
| # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W // n
tifs | | # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W // n
tifs |
|
| | # define QueryCredentialsAttributesEx QueryCredentialsAttributesExW // n |
| | tifs |
| | # define QUERY_CREDENTIALS_ATTRIBUTES_EX_FN QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_ |
| | W // ntifs |
| #else | | #else |
| # define QueryCredentialsAttributes QueryCredentialsAttributesA | | # define QueryCredentialsAttributes QueryCredentialsAttributesA |
| # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A | | # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A |
|
| | # define QueryCredentialsAttributesEx QueryCredentialsAttributesExA |
| | # define QUERY_CREDENTIALS_ATTRIBUTES_EX_FN QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_ |
| | A |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
| // begin_ntifs | | // begin_ntifs |
| | |
| #if NTDDI_VERSION > NTDDI_WS03 | | #if NTDDI_VERSION > NTDDI_WS03 |
| | |
| KSECDDDECLSPEC | | KSECDDDECLSPEC |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| SetCredentialsAttributesW( | | SetCredentialsAttributesW( |
| _In_ PCredHandle phCredential, // Credential to Set | | _In_ PCredHandle phCredential, // Credential to Set |
| | |
| skipping to change at line 1805 | | skipping to change at line 2084 |
| PSecPkgInfoA *); | | PSecPkgInfoA *); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| # define QuerySecurityPackageInfo QuerySecurityPackageInfoW // n
tifs | | # define QuerySecurityPackageInfo QuerySecurityPackageInfoW // n
tifs |
| # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W // n
tifs | | # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W // n
tifs |
| #else | | #else |
| # define QuerySecurityPackageInfo QuerySecurityPackageInfoA | | # define QuerySecurityPackageInfo QuerySecurityPackageInfoA |
| # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A | | # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| typedef enum _SecDelegationType { | | typedef enum _SecDelegationType { |
| SecFull, | | SecFull, |
| SecService, | | SecService, |
| SecTree, | | SecTree, |
| SecDirectory, | | SecDirectory, |
| SecObject | | SecObject |
| } SecDelegationType, * PSecDelegationType; | | } SecDelegationType, * PSecDelegationType; |
| | |
| SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
| DelegateSecurityContext( | | DelegateSecurityContext( |
| | |
| skipping to change at line 1826 | | skipping to change at line 2111 |
| #if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
| PSECURITY_STRING pTarget, // IN Target path | | PSECURITY_STRING pTarget, // IN Target path |
| #else | | #else |
| _In_ LPSTR pszTarget, | | _In_ LPSTR pszTarget, |
| #endif | | #endif |
| SecDelegationType DelegationType, // IN Type of delegation | | SecDelegationType DelegationType, // IN Type of delegation |
| PTimeStamp pExpiry, // IN OPTIONAL time limit | | PTimeStamp pExpiry, // IN OPTIONAL time limit |
| PSecBuffer pPackageParameters, // IN OPTIONAL package specific | | PSecBuffer pPackageParameters, // IN OPTIONAL package specific |
| PSecBufferDesc pOutput); // OUT Token for applycontroltoken. | | PSecBufferDesc pOutput); // OUT Token for applycontroltoken. |
| | |
|
| | #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) |
| | |
| /////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
| //// | | //// |
| //// Proxies | | //// Proxies |
| //// | | //// |
| /////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Proxies are only available on NT platforms | | // Proxies are only available on NT platforms |
| // | | // |
| | |
| | |
| skipping to change at line 1911 | | skipping to change at line 2202 |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| # define ImportSecurityContext ImportSecurityContextW // ntifs | | # define ImportSecurityContext ImportSecurityContextW // ntifs |
| # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_W // ntifs | | # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_W // ntifs |
| #else | | #else |
| # define ImportSecurityContext ImportSecurityContextA | | # define ImportSecurityContext ImportSecurityContextA |
| # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_A | | # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_A |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // begin_ntifs | | // begin_ntifs |
| | |
| #if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
| KSECDDDECLSPEC | | KSECDDDECLSPEC |
| NTSTATUS | | NTSTATUS |
| NTAPI | | NTAPI |
| SecMakeSPN( | | SecMakeSPN( |
| IN PUNICODE_STRING ServiceClass, | | IN PUNICODE_STRING ServiceClass, |
| IN PUNICODE_STRING ServiceName, | | IN PUNICODE_STRING ServiceName, |
| IN PUNICODE_STRING InstanceName OPTIONAL, | | IN PUNICODE_STRING InstanceName OPTIONAL, |
| | |
| skipping to change at line 2009 | | skipping to change at line 2306 |
| _In_ ULONG SidBufferSize, | | _In_ ULONG SidBufferSize, |
| _Inout_opt_ PULONG SidSize OPTIONAL | | _Inout_opt_ PULONG SidSize OPTIONAL |
| ); | | ); |
| | |
| #endif // Greater than XP | | #endif // Greater than XP |
| | |
| #endif | | #endif |
| | |
| // end_ntifs | | // end_ntifs |
| | |
|
| | #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) |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| //// | | //// |
| //// Fast access for RPC: | | //// Fast access for RPC: |
| //// | | //// |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| #define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW" | | #define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW" |
| #define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA" | | #define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA" |
| #define SECURITY_ENTRYPOINTW SEC_TEXT("InitSecurityInterfaceW") // ntifs | | #define SECURITY_ENTRYPOINTW SEC_TEXT("InitSecurityInterfaceW") // ntifs |
| #define SECURITY_ENTRYPOINTA SEC_TEXT("InitSecurityInterfaceA") | | #define SECURITY_ENTRYPOINTA SEC_TEXT("InitSecurityInterfaceA") |
| | |
| skipping to change at line 2080 | | skipping to change at line 2383 |
| | |
| #if NTDDI_VERSION > NTDDI_WS03SP1 | | #if NTDDI_VERSION > NTDDI_WS03SP1 |
| // Fields below this are available in OSes after W2k3SP1 | | // Fields below this are available in OSes after W2k3SP1 |
| SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW; | | SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW; |
| #endif | | #endif |
| #if ISSP_MODE != 0 | | #if ISSP_MODE != 0 |
| CHANGE_PASSWORD_FN_W ChangeAccountPasswordW; | | CHANGE_PASSWORD_FN_W ChangeAccountPasswordW; |
| #else | | #else |
| void * Reserved9; | | void * Reserved9; |
| #endif | | #endif |
|
| | #if NTDDI_VERSION > NTDDI_WINBLUE |
| | // Fields below this are available in OSes after Windows 8.1 |
| | QUERY_CONTEXT_ATTRIBUTES_EX_FN_W QueryContextAttributesExW; |
| | QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W QueryCredentialsAttributesExW; |
| | #endif |
| } SecurityFunctionTableW, * PSecurityFunctionTableW; | | } SecurityFunctionTableW, * PSecurityFunctionTableW; |
| | |
| // end_ntifs | | // end_ntifs |
| | |
| typedef struct _SECURITY_FUNCTION_TABLE_A { | | typedef struct _SECURITY_FUNCTION_TABLE_A { |
| unsigned long dwVersion; | | unsigned long dwVersion; |
| ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; | | ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; |
| QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; | | QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; |
| ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; | | ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; |
| FREE_CREDENTIALS_HANDLE_FN FreeCredentialHandle; | | FREE_CREDENTIALS_HANDLE_FN FreeCredentialHandle; |
| | |
| skipping to change at line 2119 | | skipping to change at line 2427 |
| QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; | | QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; |
| ENCRYPT_MESSAGE_FN EncryptMessage; | | ENCRYPT_MESSAGE_FN EncryptMessage; |
| DECRYPT_MESSAGE_FN DecryptMessage; | | DECRYPT_MESSAGE_FN DecryptMessage; |
| SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA; | | SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA; |
| SET_CREDENTIALS_ATTRIBUTES_FN_A SetCredentialsAttributesA; | | SET_CREDENTIALS_ATTRIBUTES_FN_A SetCredentialsAttributesA; |
| #if ISSP_MODE != 0 | | #if ISSP_MODE != 0 |
| CHANGE_PASSWORD_FN_A ChangeAccountPasswordA; | | CHANGE_PASSWORD_FN_A ChangeAccountPasswordA; |
| #else | | #else |
| void * Reserved9; | | void * Reserved9; |
| #endif | | #endif |
|
| | #if NTDDI_VERSION > NTDDI_WINBLUE |
| | // Fields below this are available in OSes after Windows 8.1 |
| | QUERY_CONTEXT_ATTRIBUTES_EX_FN_A QueryContextAttributesExA; |
| | QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A QueryCredentialsAttributesExA; |
| | #endif |
| } SecurityFunctionTableA, * PSecurityFunctionTableA; | | } SecurityFunctionTableA, * PSecurityFunctionTableA; |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| # define SecurityFunctionTable SecurityFunctionTableW // ntifs | | # define SecurityFunctionTable SecurityFunctionTableW // ntifs |
| # define PSecurityFunctionTable PSecurityFunctionTableW // ntifs | | # define PSecurityFunctionTable PSecurityFunctionTableW // ntifs |
| #else | | #else |
| # define SecurityFunctionTable SecurityFunctionTableA | | # define SecurityFunctionTable SecurityFunctionTableA |
| # define PSecurityFunctionTable PSecurityFunctionTableA | | # define PSecurityFunctionTable PSecurityFunctionTableA |
| #endif // !UNICODE | | #endif // !UNICODE |
| | |
| | |
| skipping to change at line 2143 | | skipping to change at line 2456 |
| | |
| // Function table has all routines through SetContextAttributes | | // Function table has all routines through SetContextAttributes |
| #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2 // ntifs |
| | |
| // Function table has all routines through SetCredentialsAttributes | | // Function table has all routines through SetCredentialsAttributes |
| #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3 // ntifs |
| | |
| // Function table has all routines through ChangeAccountPassword | | // Function table has all routines through ChangeAccountPassword |
| #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4 4 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4 4 // ntifs |
| | |
|
| | // Function table has all routines through QueryCredentialsAttributesEx |
| | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_5 5 // ntifs |
| | |
| PSecurityFunctionTableA SEC_ENTRY | | PSecurityFunctionTableA SEC_ENTRY |
| InitSecurityInterfaceA( | | InitSecurityInterfaceA( |
| void | | void |
| ); | | ); |
| | |
| typedef PSecurityFunctionTableA | | typedef PSecurityFunctionTableA |
| (SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void); | | (SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void); |
| | |
| // begin_ntifs | | // begin_ntifs |
| | |
| | |
| skipping to change at line 2613 | | skipping to change at line 2929 |
| #define SSPIPFC_CREDPROV_DO_NOT_LOAD 0x00000004 | | #define SSPIPFC_CREDPROV_DO_NOT_LOAD 0x00000004 |
| | |
| // | | // |
| // Credential providers along with UI Dialog will be hosted in a separate | | // Credential providers along with UI Dialog will be hosted in a separate |
| // broker process. | | // broker process. |
| // | | // |
| #define SSPIPFC_USE_CREDUIBROKER 0x00000008 | | #define SSPIPFC_USE_CREDUIBROKER 0x00000008 |
| | |
| #define SSPIPFC_VALID_FLAGS (SSPIPFC_CREDPROV_DO_NOT_SAVE | SSPIPFC_NO_CHECKBOX
| SSPIPFC_CREDPROV_DO_NOT_LOAD | SSPIPFC_USE_CREDUIBROKER) | | #define SSPIPFC_VALID_FLAGS (SSPIPFC_CREDPROV_DO_NOT_SAVE | SSPIPFC_NO_CHECKBOX
| SSPIPFC_CREDPROV_DO_NOT_LOAD | SSPIPFC_USE_CREDUIBROKER) |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| #ifndef _SSPIPFC_NONE_ // the public view | | #ifndef _SSPIPFC_NONE_ // the public view |
| | |
| // Use SspiFreeAuthIdentity() to free the buffer returned | | // Use SspiFreeAuthIdentity() to free the buffer returned |
| // in ppAuthIdentity. | | // in ppAuthIdentity. |
| | |
| unsigned long | | unsigned long |
| SEC_ENTRY | | SEC_ENTRY |
| SspiPromptForCredentialsW( | | SspiPromptForCredentialsW( |
| _In_ PCWSTR pszTargetName, | | _In_ PCWSTR pszTargetName, |
| #ifdef _CREDUI_INFO_DEFINED | | #ifdef _CREDUI_INFO_DEFINED |
| | |
| skipping to change at line 2688 | | skipping to change at line 3010 |
| } SEC_WINNT_AUTH_PACKED_CREDENTIALS, *PSEC_WINNT_AUTH_PACKED_CREDENTIALS; | | } SEC_WINNT_AUTH_PACKED_CREDENTIALS, *PSEC_WINNT_AUTH_PACKED_CREDENTIALS; |
| | |
| // {28BFC32F-10F6-4738-98D1-1AC061DF716A} | | // {28BFC32F-10F6-4738-98D1-1AC061DF716A} |
| static const GUID SEC_WINNT_AUTH_DATA_TYPE_PASSWORD = | | static const GUID SEC_WINNT_AUTH_DATA_TYPE_PASSWORD = |
| { 0x28bfc32f, 0x10f6, 0x4738, { 0x98, 0xd1, 0x1a, 0xc0, 0x61, 0xdf, 0x71, 0x6
a } }; | | { 0x28bfc32f, 0x10f6, 0x4738, { 0x98, 0xd1, 0x1a, 0xc0, 0x61, 0xdf, 0x71, 0x6
a } }; |
| | |
| // {235F69AD-73FB-4dbc-8203-0629E739339B} | | // {235F69AD-73FB-4dbc-8203-0629E739339B} |
| static const GUID SEC_WINNT_AUTH_DATA_TYPE_CERT = | | static const GUID SEC_WINNT_AUTH_DATA_TYPE_CERT = |
| { 0x235f69ad, 0x73fb, 0x4dbc, { 0x82, 0x3, 0x6, 0x29, 0xe7, 0x39, 0x33, 0x9b
} }; | | { 0x235f69ad, 0x73fb, 0x4dbc, { 0x82, 0x3, 0x6, 0x29, 0xe7, 0x39, 0x33, 0x9b
} }; |
| | |
|
| | // {10A47879-5EBF-4B85-BD8D-C21BB4F49C8A} |
| | static const GUID SEC_WINNT_AUTH_DATA_TYPE_NGC = |
| | { 0x10a47879, 0x5ebf, 0x4b85, { 0xbd, 0x8d, 0xc2, 0x1b, 0xb4, 0xf4, 0x9c, 0x8 |
| | a } }; |
| | |
| typedef struct _SEC_WINNT_AUTH_DATA_PASSWORD { | | typedef struct _SEC_WINNT_AUTH_DATA_PASSWORD { |
| SEC_WINNT_AUTH_BYTE_VECTOR UnicodePassword; | | SEC_WINNT_AUTH_BYTE_VECTOR UnicodePassword; |
| } SEC_WINNT_AUTH_DATA_PASSWORD, PSEC_WINNT_AUTH_DATA_PASSWORD; | | } SEC_WINNT_AUTH_DATA_PASSWORD, PSEC_WINNT_AUTH_DATA_PASSWORD; |
| | |
| // | | // |
| // smartcard cred data | | // smartcard cred data |
| // | | // |
| // {68FD9879-079C-4dfe-8281-578AADC1C100} | | // {68FD9879-079C-4dfe-8281-578AADC1C100} |
| | |
| static const GUID SEC_WINNT_AUTH_DATA_TYPE_CSP_DATA = | | static const GUID SEC_WINNT_AUTH_DATA_TYPE_CSP_DATA = |
| { 0x68fd9879, 0x79c, 0x4dfe, { 0x82, 0x81, 0x57, 0x8a, 0xad, 0xc1, 0xc1, 0x0
} }; | | { 0x68fd9879, 0x79c, 0x4dfe, { 0x82, 0x81, 0x57, 0x8a, 0xad, 0xc1, 0xc1, 0x0
} }; |
| | |
| typedef struct _SEC_WINNT_AUTH_CERTIFICATE_DATA { | | typedef struct _SEC_WINNT_AUTH_CERTIFICATE_DATA { |
| unsigned short cbHeaderLength; | | unsigned short cbHeaderLength; |
| unsigned short cbStructureLength; | | unsigned short cbStructureLength; |
| SEC_WINNT_AUTH_BYTE_VECTOR Certificate; | | SEC_WINNT_AUTH_BYTE_VECTOR Certificate; |
| } SEC_WINNT_AUTH_CERTIFICATE_DATA, *PSEC_WINNT_AUTH_CERTIFICATE_DATA; | | } SEC_WINNT_AUTH_CERTIFICATE_DATA, *PSEC_WINNT_AUTH_CERTIFICATE_DATA; |
| | |
|
| | typedef struct _SEC_WINNT_AUTH_NGC_DATA { |
| | LUID LogonId; |
| | unsigned long Flags; |
| | SEC_WINNT_AUTH_BYTE_VECTOR CspInfo; |
| | SEC_WINNT_AUTH_BYTE_VECTOR UserIdKeyAuthTicket; |
| | SEC_WINNT_AUTH_BYTE_VECTOR DecryptionKeyName; |
| | SEC_WINNT_AUTH_BYTE_VECTOR DecryptionKeyAuthTicket; |
| | } SEC_WINNT_AUTH_NGC_DATA, *PSEC_WINNT_AUTH_NGC_DATA; |
| | |
| typedef struct _SEC_WINNT_CREDUI_CONTEXT_VECTOR | | typedef struct _SEC_WINNT_CREDUI_CONTEXT_VECTOR |
| { | | { |
| ULONG CredUIContextArrayOffset; // offset starts at the beginning of | | ULONG CredUIContextArrayOffset; // offset starts at the beginning of |
| // this structure, and each element is a SEC_WINNT_AUTH_BYTE_VECTOR that | | // this structure, and each element is a SEC_WINNT_AUTH_BYTE_VECTOR that |
| // describes the flat CredUI context returned by SpGetCredUIContext() | | // describes the flat CredUI context returned by SpGetCredUIContext() |
| USHORT CredUIContextCount; | | USHORT CredUIContextCount; |
| } SEC_WINNT_CREDUI_CONTEXT_VECTOR, *PSEC_WINNT_CREDUI_CONTEXT_VECTOR; | | } SEC_WINNT_CREDUI_CONTEXT_VECTOR, *PSEC_WINNT_CREDUI_CONTEXT_VECTOR; |
| | |
| typedef struct _SEC_WINNT_AUTH_SHORT_VECTOR | | typedef struct _SEC_WINNT_AUTH_SHORT_VECTOR |
| { | | { |
| | |
| skipping to change at line 2795 | | skipping to change at line 3130 |
| SECURITY_STATUS | | SECURITY_STATUS |
| SEC_ENTRY | | SEC_ENTRY |
| SspiUnmarshalCredUIContext( | | SspiUnmarshalCredUIContext( |
| _In_reads_bytes_(MarshaledCredUIContextLength) PUCHAR MarshaledCredUIContext
, | | _In_reads_bytes_(MarshaledCredUIContextLength) PUCHAR MarshaledCredUIContext
, |
| _In_ ULONG MarshaledCredUIContextLength, | | _In_ ULONG MarshaledCredUIContextLength, |
| _Outptr_ PSEC_WINNT_CREDUI_CONTEXT* CredUIContext | | _Outptr_ PSEC_WINNT_CREDUI_CONTEXT* CredUIContext |
| ); | | ); |
| | |
| #endif // _SEC_WINNT_AUTH_TYPES | | #endif // _SEC_WINNT_AUTH_TYPES |
| | |
|
| | #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) |
| | |
| SECURITY_STATUS | | SECURITY_STATUS |
| SEC_ENTRY | | SEC_ENTRY |
| SspiPrepareForCredRead( | | SspiPrepareForCredRead( |
| _In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity, | | _In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity, |
| _In_ PCWSTR pszTargetName, | | _In_ PCWSTR pszTargetName, |
| _Out_ PULONG pCredmanCredentialType, | | _Out_ PULONG pCredmanCredentialType, |
| _Outptr_ PCWSTR* ppszCredmanTargetName | | _Outptr_ PCWSTR* ppszCredmanTargetName |
| ); | | ); |
| | |
| SECURITY_STATUS | | SECURITY_STATUS |
| | |
| skipping to change at line 2971 | | skipping to change at line 3312 |
| // | | // |
| | |
| SECURITY_STATUS | | SECURITY_STATUS |
| SEC_ENTRY | | SEC_ENTRY |
| SspiUnmarshalAuthIdentity( | | SspiUnmarshalAuthIdentity( |
| _In_ unsigned long AuthIdentityLength, | | _In_ unsigned long AuthIdentityLength, |
| _In_reads_bytes_(AuthIdentityLength) char* AuthIdentityByteArray, | | _In_reads_bytes_(AuthIdentityLength) char* AuthIdentityByteArray, |
| _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity | | _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| BOOLEAN | | BOOLEAN |
| SEC_ENTRY | | SEC_ENTRY |
| SspiIsPromptingNeeded( | | SspiIsPromptingNeeded( |
| _In_ unsigned long ErrorOrNtStatus | | _In_ unsigned long ErrorOrNtStatus |
| ); | | ); |
| | |
|
| | #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) |
| | |
| SECURITY_STATUS | | SECURITY_STATUS |
| SEC_ENTRY | | SEC_ENTRY |
| SspiGetTargetHostName( | | SspiGetTargetHostName( |
| _In_ PCWSTR pszTargetName, | | _In_ PCWSTR pszTargetName, |
| _Outptr_ PWSTR* pszHostName | | _Outptr_ PWSTR* pszHostName |
| ); | | ); |
| | |
| SECURITY_STATUS | | SECURITY_STATUS |
| SEC_ENTRY | | SEC_ENTRY |
| SspiExcludePackage( | | SspiExcludePackage( |
| | |
| skipping to change at line 3061 | | skipping to change at line 3414 |
| DeleteSecurityPackageW( | | DeleteSecurityPackageW( |
| _In_ LPWSTR pszPackageName | | _In_ LPWSTR pszPackageName |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define DeleteSecurityPackage DeleteSecurityPackageW | | #define DeleteSecurityPackage DeleteSecurityPackageW |
| #else | | #else |
| #define DeleteSecurityPackage DeleteSecurityPackageA | | #define DeleteSecurityPackage DeleteSecurityPackageA |
| #endif | | #endif |
| | |
|
| #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ | | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY
STEM) */ |
| #pragma endregion | | #pragma endregion |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| } // extern "C" | | } // extern "C" |
| #endif | | #endif |
| | |
| // begin_ntifs | | // begin_ntifs |
| #endif // __SSPI_H__ | | #endif // __SSPI_H__ |
| // end_ntifs | | // end_ntifs |
| | |
| End of changes. 30 change blocks. |
| 3 lines changed or deleted | | 396 lines changed or added |
|
| wincred.h (6.3.9600.17415-Windows 8.1) | | wincred.h (10.0.10586.0-Windows 10 1511 10586.494) |
| | |
| skipping to change at line 24 | | skipping to change at line 24 |
| Author: | | Author: |
| | |
| Revision History: | | Revision History: |
| | |
| --*/ | | --*/ |
| | |
| #ifndef _WINCRED_H_ | | #ifndef _WINCRED_H_ |
| #define _WINCRED_H_ | | #define _WINCRED_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) |
| | |
| #if !defined(_ADVAPI32_) | | #if !defined(_ADVAPI32_) |
| #define WINADVAPI DECLSPEC_IMPORT | | #define WINADVAPI DECLSPEC_IMPORT |
| #else | | #else |
| #define WINADVAPI | | #define WINADVAPI |
| #endif | | #endif |
| | |
| #if !defined(CREDUIAPI) | | #if !defined(CREDUIAPI) |
| #if !defined(_CREDUI_) | | #if !defined(_CREDUI_) |
| #define CREDUIAPI EXTERN_C DECLSPEC_IMPORT | | #define CREDUIAPI EXTERN_C DECLSPEC_IMPORT |
| | |
| skipping to change at line 379 | | skipping to change at line 379 |
| #define CRED_FLAGS_OWF_CRED_BLOB 0x0008 | | #define CRED_FLAGS_OWF_CRED_BLOB 0x0008 |
| #define CRED_FLAGS_REQUIRE_CONFIRMATION 0x0010 | | #define CRED_FLAGS_REQUIRE_CONFIRMATION 0x0010 |
| | |
| // | | // |
| // Valid only for return and only with CredReadDomainCredentials(). | | // Valid only for return and only with CredReadDomainCredentials(). |
| // Indicates credential was returned due to wildcard match | | // Indicates credential was returned due to wildcard match |
| // of targetname with credential. | | // of targetname with credential. |
| // | | // |
| | |
| #define CRED_FLAGS_WILDCARD_MATCH 0x0020 | | #define CRED_FLAGS_WILDCARD_MATCH 0x0020 |
|
| #define CRED_FLAGS_VALID_FLAGS 0xF03F // Mask of all valid flags | | |
| | // |
| | // Valid only for return |
| | // Indicates that the credential is VSM protected |
| | // |
| | |
| | #define CRED_FLAGS_VSM_PROTECTED 0x0040 |
| | |
| | #define CRED_FLAGS_NGC_CERT 0x0080 |
| | |
| | // |
| | // Mask of all valid flags |
| | // |
| | |
| | #define CRED_FLAGS_VALID_FLAGS 0xF0FF |
| | |
| // | | // |
| // Bit mask for only those flags which can be passed to the credman | | // Bit mask for only those flags which can be passed to the credman |
| // APIs. | | // APIs. |
| // | | // |
| | |
|
| #define CRED_FLAGS_VALID_INPUT_FLAGS 0xF01F | | #define CRED_FLAGS_VALID_INPUT_FLAGS 0xF09F |
| | |
| // | | // |
| // Values of the Credential Type field. | | // Values of the Credential Type field. |
| // | | // |
| #define CRED_TYPE_GENERIC 1 | | #define CRED_TYPE_GENERIC 1 |
| #define CRED_TYPE_DOMAIN_PASSWORD 2 | | #define CRED_TYPE_DOMAIN_PASSWORD 2 |
| #define CRED_TYPE_DOMAIN_CERTIFICATE 3 | | #define CRED_TYPE_DOMAIN_CERTIFICATE 3 |
| #define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD 4 | | #define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD 4 |
| #define CRED_TYPE_GENERIC_CERTIFICATE 5 | | #define CRED_TYPE_GENERIC_CERTIFICATE 5 |
| #define CRED_TYPE_DOMAIN_EXTENDED 6 | | #define CRED_TYPE_DOMAIN_EXTENDED 6 |
| | |
| skipping to change at line 493 | | skipping to change at line 507 |
| // | | // |
| // Value of the Flags field in CREDENTIAL_TARGET_INFORMATION | | // Value of the Flags field in CREDENTIAL_TARGET_INFORMATION |
| // | | // |
| | |
| #define CRED_TI_SERVER_FORMAT_UNKNOWN 0x0001 // Don't know if server name is
DNS or netbios format | | #define CRED_TI_SERVER_FORMAT_UNKNOWN 0x0001 // Don't know if server name is
DNS or netbios format |
| #define CRED_TI_DOMAIN_FORMAT_UNKNOWN 0x0002 // Don't know if domain name is
DNS or netbios format | | #define CRED_TI_DOMAIN_FORMAT_UNKNOWN 0x0002 // Don't know if domain name is
DNS or netbios format |
| #define CRED_TI_ONLY_PASSWORD_REQUIRED 0x0004 // Server only requires a passwo
rd and not a username | | #define CRED_TI_ONLY_PASSWORD_REQUIRED 0x0004 // Server only requires a passwo
rd and not a username |
| #define CRED_TI_USERNAME_TARGET 0x0008 // TargetName is username | | #define CRED_TI_USERNAME_TARGET 0x0008 // TargetName is username |
| #define CRED_TI_CREATE_EXPLICIT_CRED 0x0010 // When creating a cred, create
one named TargetInfo->TargetName | | #define CRED_TI_CREATE_EXPLICIT_CRED 0x0010 // When creating a cred, create
one named TargetInfo->TargetName |
| #define CRED_TI_WORKGROUP_MEMBER 0x0020 // Indicates the machine is a me
mber of a workgroup | | #define CRED_TI_WORKGROUP_MEMBER 0x0020 // Indicates the machine is a me
mber of a workgroup |
|
| | #define CRED_TI_DNSTREE_IS_DFS_SERVER 0x0040 // used to tell credman that the
DNSTreeName could be DFS server |
| #define CRED_TI_VALID_FLAGS 0xF07F | | #define CRED_TI_VALID_FLAGS 0xF07F |
| | |
| // | | // |
| // A credential target | | // A credential target |
| // | | // |
| | |
| typedef struct _CREDENTIAL_TARGET_INFORMATIONA { | | typedef struct _CREDENTIAL_TARGET_INFORMATIONA { |
| LPSTR TargetName; | | LPSTR TargetName; |
| LPSTR NetbiosServerName; | | LPSTR NetbiosServerName; |
| LPSTR DnsServerName; | | LPSTR DnsServerName; |
| | |
| skipping to change at line 912 | | skipping to change at line 927 |
| _In_ DWORD Type, | | _In_ DWORD Type, |
| _Reserved_ DWORD Flags | | _Reserved_ DWORD Flags |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define CredDelete CredDeleteW | | #define CredDelete CredDeleteW |
| #else | | #else |
| #define CredDelete CredDeleteA | | #define CredDelete CredDeleteA |
| #endif // UNICODE | | #endif // UNICODE |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| WINADVAPI | | WINADVAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredRenameW ( | | CredRenameW ( |
| _In_ LPCWSTR OldTargetName, | | _In_ LPCWSTR OldTargetName, |
| _In_ LPCWSTR NewTargetName, | | _In_ LPCWSTR NewTargetName, |
| _In_ DWORD Type, | | _In_ DWORD Type, |
| _Reserved_ DWORD Flags | | _Reserved_ DWORD Flags |
| ); | | ); |
| | |
| | |
| skipping to change at line 938 | | skipping to change at line 959 |
| _In_ DWORD Type, | | _In_ DWORD Type, |
| _Reserved_ DWORD Flags | | _Reserved_ DWORD Flags |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define CredRename CredRenameW | | #define CredRename CredRenameW |
| #else | | #else |
| #define CredRename CredRenameA | | #define CredRename CredRenameA |
| #endif // UNICODE | | #endif // UNICODE |
| | |
|
| | #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) |
| | |
| // | | // |
| // Values of flags to CredGetTargetInfo | | // Values of flags to CredGetTargetInfo |
| // | | // |
| | |
| #define CRED_ALLOW_NAME_RESOLUTION 0x1 | | #define CRED_ALLOW_NAME_RESOLUTION 0x1 |
| | |
| WINADVAPI | | WINADVAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredGetTargetInfoW ( | | CredGetTargetInfoW ( |
| | |
| skipping to change at line 1023 | | skipping to change at line 1050 |
| #define CredUnmarshalCredential CredUnmarshalCredentialA | | #define CredUnmarshalCredential CredUnmarshalCredentialA |
| #endif // UNICODE | | #endif // UNICODE |
| | |
| WINADVAPI | | WINADVAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredIsMarshaledCredentialW( | | CredIsMarshaledCredentialW( |
| _In_ LPCWSTR MarshaledCredential | | _In_ LPCWSTR MarshaledCredential |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| WINADVAPI | | WINADVAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredIsMarshaledCredentialA( | | CredIsMarshaledCredentialA( |
| _In_ LPCSTR MarshaledCredential | | _In_ LPCSTR MarshaledCredential |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define CredIsMarshaledCredential CredIsMarshaledCredentialW | | #define CredIsMarshaledCredential CredIsMarshaledCredentialW |
| #else | | #else |
| | |
| skipping to change at line 1058 | | skipping to change at line 1091 |
| _Inout_ DWORD* pcchMaxPassword | | _Inout_ DWORD* pcchMaxPassword |
| ); | | ); |
| | |
| CREDUIAPI | | CREDUIAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredUnPackAuthenticationBufferA( | | CredUnPackAuthenticationBufferA( |
| _In_ DWORD dwFlags, | | _In_ DWORD dwFlags, |
| _In_reads_bytes_(cbAuthBuffer) PVOID pAuthBuffer, | | _In_reads_bytes_(cbAuthBuffer) PVOID pAuthBuffer, |
| _In_ DWORD cbAuthBuffer, | | _In_ DWORD cbAuthBuffer, |
|
| _Out_writes_opt_(*pcchMaxUserName) LPSTR pszUserName, | | _Out_writes_opt_(*pcchlMaxUserName) LPSTR pszUserName, |
| _Inout_ DWORD* pcchlMaxUserName, | | _Inout_ DWORD* pcchlMaxUserName, |
| _Out_writes_opt_(*pcchMaxDomainName) LPSTR pszDomainName, | | _Out_writes_opt_(*pcchMaxDomainName) LPSTR pszDomainName, |
| _Inout_opt_ DWORD* pcchMaxDomainName, | | _Inout_opt_ DWORD* pcchMaxDomainName, |
| _Out_writes_opt_(*pcchMaxPassword) LPSTR pszPassword, | | _Out_writes_opt_(*pcchMaxPassword) LPSTR pszPassword, |
| _Inout_ DWORD* pcchMaxPassword | | _Inout_ DWORD* pcchMaxPassword |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define CredUnPackAuthenticationBuffer CredUnPackAuthenticationBufferW | | #define CredUnPackAuthenticationBuffer CredUnPackAuthenticationBufferW |
| #else | | #else |
| | |
| skipping to change at line 1100 | | skipping to change at line 1133 |
| _Out_writes_bytes_opt_(*pcbPackedCredentials) PBYTE pPackedCredentials, | | _Out_writes_bytes_opt_(*pcbPackedCredentials) PBYTE pPackedCredentials, |
| _Inout_ DWORD* pcbPackedCredentials | | _Inout_ DWORD* pcbPackedCredentials |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define CredPackAuthenticationBuffer CredPackAuthenticationBufferW | | #define CredPackAuthenticationBuffer CredPackAuthenticationBufferW |
| #else | | #else |
| #define CredPackAuthenticationBuffer CredPackAuthenticationBufferA | | #define CredPackAuthenticationBuffer CredPackAuthenticationBufferA |
| #endif //UNICODE | | #endif //UNICODE |
| | |
|
| | #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) |
| | |
| _Success_(return) | | _Success_(return) |
| WINADVAPI | | WINADVAPI |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CredProtectW( | | CredProtectW( |
| _In_ BOOL fAsSelf, | | _In_ BOOL fAsSelf, |
| _In_reads_(cchCredentials) LPWSTR pszCredentials, | | _In_reads_(cchCredentials) LPWSTR pszCredentials, |
| _In_ DWORD cchCredentials, | | _In_ DWORD cchCredentials, |
| _Out_writes_to_(*pcchMaxChars, *pcchMaxChars) LPWSTR pszProtectedCredentials
, | | _Out_writes_to_(*pcchMaxChars, *pcchMaxChars) LPWSTR pszProtectedCredentials
, |
| _Inout_ DWORD* pcchMaxChars, | | _Inout_ DWORD* pcchMaxChars, |
| | |
| skipping to change at line 1223 | | skipping to change at line 1262 |
| _Out_writes_(MaximumPersistCount) LPDWORD MaximumPersist | | _Out_writes_(MaximumPersistCount) LPDWORD MaximumPersist |
| ); | | ); |
| | |
| WINADVAPI | | WINADVAPI |
| VOID | | VOID |
| WINAPI | | WINAPI |
| CredFree ( | | CredFree ( |
| _In_ PVOID Buffer | | _In_ PVOID Buffer |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SY |
| | STEM) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| CREDUIAPI | | CREDUIAPI |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| CredUIPromptForCredentialsW( | | CredUIPromptForCredentialsW( |
| _In_opt_ PCREDUI_INFOW pUiInfo, | | _In_opt_ PCREDUI_INFOW pUiInfo, |
| _In_opt_ PCWSTR pszTargetName, | | _In_opt_ PCWSTR pszTargetName, |
| _Reserved_ PCtxtHandle pContext, | | _Reserved_ PCtxtHandle pContext, |
| _In_ DWORD dwAuthError, | | _In_ DWORD dwAuthError, |
| _Inout_updates_(ulUserNameBufferSize) PWSTR pszUserName, | | _Inout_updates_(ulUserNameBufferSize) PWSTR pszUserName, |
| _In_ ULONG ulUserNameBufferSize, | | _In_ ULONG ulUserNameBufferSize, |
| | |
| skipping to change at line 1406 | | skipping to change at line 1451 |
| ); | | ); |
| | |
| CREDUIAPI | | CREDUIAPI |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| CredUIReadSSOCredW ( | | CredUIReadSSOCredW ( |
| _In_opt_ PCWSTR pszRealm, | | _In_opt_ PCWSTR pszRealm, |
| _Outptr_ PWSTR* ppszUsername | | _Outptr_ PWSTR* ppszUsername |
| ); | | ); |
| | |
|
| | #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 // _WINCRED_H_ | | #endif // _WINCRED_H_ |
| | |
| End of changes. 12 change blocks. |
| 6 lines changed or deleted | | 60 lines changed or added |
|