schannel: Add declarations for SECPKG version 7.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Francois Gouget 2016-04-24 12:32:34 +02:00 committed by Alexandre Julliard
parent 7657845b1b
commit 57271ca186
3 changed files with 19 additions and 3 deletions

View File

@ -115,6 +115,7 @@ static SECPKG_FUNCTION_TABLE secPkgFunctionTable[2] =
NULL, /* GetCredUIContext */ NULL, /* GetCredUIContext */
NULL, /* UpdateCredentials */ NULL, /* UpdateCredentials */
NULL, /* ValidateTargetInfo */ NULL, /* ValidateTargetInfo */
NULL, /* PostLogonUser */
}, { }, {
NULL, /* InitializePackage */ NULL, /* InitializePackage */
NULL, /* LsaLogonUser */ NULL, /* LsaLogonUser */
@ -151,6 +152,7 @@ static SECPKG_FUNCTION_TABLE secPkgFunctionTable[2] =
NULL, /* GetCredUIContext */ NULL, /* GetCredUIContext */
NULL, /* UpdateCredentials */ NULL, /* UpdateCredentials */
NULL, /* ValidateTargetInfo */ NULL, /* ValidateTargetInfo */
NULL, /* PostLogonUser */
} }
}; };
@ -162,7 +164,7 @@ NTSTATUS WINAPI SpLsaModeInitialize(ULONG LsaVersion, PULONG PackageVersion,
{ {
TRACE("(%u, %p, %p, %p)\n", LsaVersion, PackageVersion, ppTables, pcTables); TRACE("(%u, %p, %p, %p)\n", LsaVersion, PackageVersion, ppTables, pcTables);
*PackageVersion = SECPKG_INTERFACE_VERSION_6; *PackageVersion = SECPKG_INTERFACE_VERSION_7;
*pcTables = 2; *pcTables = 2;
*ppTables = secPkgFunctionTable; *ppTables = secPkgFunctionTable;

View File

@ -43,7 +43,9 @@
QueryMetaData) QueryMetaData)
#define SECPKG_FUNCTION_TABLE_SIZE_5 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \ #define SECPKG_FUNCTION_TABLE_SIZE_5 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
ValidateTargetInfo) ValidateTargetInfo)
#define SECPKG_FUNCTION_TABLE_SIZE_6 sizeof(SECPKG_FUNCTION_TABLE) #define SECPKG_FUNCTION_TABLE_SIZE_6 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
PostLogonUser)
#define SECPKG_FUNCTION_TABLE_SIZE_7 sizeof(SECPKG_FUNCTION_TABLE)
#define LSA_BASE_CAPS ( \ #define LSA_BASE_CAPS ( \
SECPKG_FLAG_INTEGRITY | \ SECPKG_FLAG_INTEGRITY | \
@ -152,6 +154,8 @@ static PSECPKG_FUNCTION_TABLE getNextSecPkgTable(PSECPKG_FUNCTION_TABLE pTable,
size = SECPKG_FUNCTION_TABLE_SIZE_5; size = SECPKG_FUNCTION_TABLE_SIZE_5;
else if (Version == SECPKG_INTERFACE_VERSION_6) else if (Version == SECPKG_INTERFACE_VERSION_6)
size = SECPKG_FUNCTION_TABLE_SIZE_6; size = SECPKG_FUNCTION_TABLE_SIZE_6;
else if (Version == SECPKG_INTERFACE_VERSION_7)
size = SECPKG_FUNCTION_TABLE_SIZE_7;
else { else {
ok(FALSE, "Unknown package version 0x%x\n", Version); ok(FALSE, "Unknown package version 0x%x\n", Version);
return NULL; return NULL;

View File

@ -37,6 +37,7 @@ extern "C" {
#define SECPKG_INTERFACE_VERSION_4 0x80000 #define SECPKG_INTERFACE_VERSION_4 0x80000
#define SECPKG_INTERFACE_VERSION_5 0x100000 #define SECPKG_INTERFACE_VERSION_5 0x100000
#define SECPKG_INTERFACE_VERSION_6 0x200000 #define SECPKG_INTERFACE_VERSION_6 0x200000
#define SECPKG_INTERFACE_VERSION_7 0x400000
/* enum definitions for Secure Service Provider/Authentication Packages */ /* enum definitions for Secure Service Provider/Authentication Packages */
typedef enum _LSA_TOKEN_INFORMATION_TYPE { typedef enum _LSA_TOKEN_INFORMATION_TYPE {
@ -147,11 +148,17 @@ typedef struct _SECPKG_EXTENDED_INFORMATION {
} Info; } Info;
} SECPKG_EXTENDED_INFORMATION, *PSECPKG_EXTENDED_INFORMATION; } SECPKG_EXTENDED_INFORMATION, *PSECPKG_EXTENDED_INFORMATION;
typedef struct _SECPKG_TARGETINFO { typedef struct _SECPKG_TARGETINFO {
PSID DomainSid; PSID DomainSid;
PCWSTR ComputerName; PCWSTR ComputerName;
} SECPKG_TARGETINFO, *PSECPKG_TARGETINFO; } SECPKG_TARGETINFO, *PSECPKG_TARGETINFO;
typedef struct _SECPKG_POST_LOGON_USER_INFO {
ULONG Flags;
LUID LogonId;
LUID LinkedLogonId;
} SECPKG_POST_LOGON_USER_INFO, *PSECPKG_POST_LOGON_USER_INFO;
/* callbacks implemented by SSP/AP dlls and called by the LSA */ /* callbacks implemented by SSP/AP dlls and called by the LSA */
typedef VOID (NTAPI *PLSA_CALLBACK_FUNCTION)(ULONG_PTR, ULONG_PTR, PSecBuffer, typedef VOID (NTAPI *PLSA_CALLBACK_FUNCTION)(ULONG_PTR, ULONG_PTR, PSecBuffer,
PSecBuffer); PSecBuffer);
@ -365,6 +372,7 @@ typedef NTSTATUS (NTAPI SpUpdateCredentialsFn)(LSA_SEC_HANDLE, GUID *, ULONG,
PUCHAR); PUCHAR);
typedef NTSTATUS (NTAPI SpValidateTargetInfoFn)(PLSA_CLIENT_REQUEST, PVOID, typedef NTSTATUS (NTAPI SpValidateTargetInfoFn)(PLSA_CLIENT_REQUEST, PVOID,
PVOID, ULONG, PSECPKG_TARGETINFO); PVOID, ULONG, PSECPKG_TARGETINFO);
typedef NTSTATUS (NTAPI LSA_AP_POST_LOGON_USER)(PSECPKG_POST_LOGON_USER_INFO);
/* User-mode functions implemented by SSP/AP obtainable by a dispatch table */ /* User-mode functions implemented by SSP/AP obtainable by a dispatch table */
typedef NTSTATUS (NTAPI SpInstanceInitFn)(ULONG, PSECPKG_DLL_FUNCTIONS, typedef NTSTATUS (NTAPI SpInstanceInitFn)(ULONG, PSECPKG_DLL_FUNCTIONS,
@ -435,6 +443,8 @@ typedef struct SECPKG_FUNCTION_TABLE {
/* Packages with version SECPKG_INTERFACE_VERSION_5 end here */ /* Packages with version SECPKG_INTERFACE_VERSION_5 end here */
SpValidateTargetInfoFn *ValidateTargetInfo; SpValidateTargetInfoFn *ValidateTargetInfo;
/* Packages with version SECPKG_INTERFACE_VERSION_6 end here */ /* Packages with version SECPKG_INTERFACE_VERSION_6 end here */
LSA_AP_POST_LOGON_USER* PostLogonUser;
/* Packages with version SECPKG_INTERFACE_VERSION_7 end here */
} SECPKG_FUNCTION_TABLE, } SECPKG_FUNCTION_TABLE,
*PSECPKG_FUNCTION_TABLE; *PSECPKG_FUNCTION_TABLE;