Francois Gouget : schannel: Add declarations for SECPKG version 7.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Apr 25 09:47:12 CDT 2016


Module: wine
Branch: master
Commit: 57271ca1869067f1556ca0c2bc3e45884bb013a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=57271ca1869067f1556ca0c2bc3e45884bb013a0

Author: Francois Gouget <fgouget at free.fr>
Date:   Sun Apr 24 12:32:34 2016 +0200

schannel: Add declarations for SECPKG version 7.

Signed-off-by: Francois Gouget <fgouget at free.fr>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/schannel/lsamode.c    |  4 +++-
 dlls/schannel/tests/main.c |  6 +++++-
 include/ntsecpkg.h         | 12 +++++++++++-
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/dlls/schannel/lsamode.c b/dlls/schannel/lsamode.c
index f43150e..96ca240 100644
--- a/dlls/schannel/lsamode.c
+++ b/dlls/schannel/lsamode.c
@@ -115,6 +115,7 @@ static SECPKG_FUNCTION_TABLE secPkgFunctionTable[2] =
     NULL, /* GetCredUIContext */
     NULL, /* UpdateCredentials */
     NULL, /* ValidateTargetInfo */
+    NULL, /* PostLogonUser */
   }, {
     NULL, /* InitializePackage */
     NULL, /* LsaLogonUser */
@@ -151,6 +152,7 @@ static SECPKG_FUNCTION_TABLE secPkgFunctionTable[2] =
     NULL, /* GetCredUIContext */
     NULL, /* UpdateCredentials */
     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);
 
-    *PackageVersion = SECPKG_INTERFACE_VERSION_6;
+    *PackageVersion = SECPKG_INTERFACE_VERSION_7;
     *pcTables = 2;
     *ppTables = secPkgFunctionTable;
 
diff --git a/dlls/schannel/tests/main.c b/dlls/schannel/tests/main.c
index d8ade9a..4240dd7 100644
--- a/dlls/schannel/tests/main.c
+++ b/dlls/schannel/tests/main.c
@@ -43,7 +43,9 @@
     QueryMetaData)
 #define SECPKG_FUNCTION_TABLE_SIZE_5 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
     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 ( \
     SECPKG_FLAG_INTEGRITY         | \
@@ -152,6 +154,8 @@ static PSECPKG_FUNCTION_TABLE getNextSecPkgTable(PSECPKG_FUNCTION_TABLE pTable,
         size = SECPKG_FUNCTION_TABLE_SIZE_5;
     else if (Version == SECPKG_INTERFACE_VERSION_6)
         size = SECPKG_FUNCTION_TABLE_SIZE_6;
+    else if (Version == SECPKG_INTERFACE_VERSION_7)
+        size = SECPKG_FUNCTION_TABLE_SIZE_7;
     else {
         ok(FALSE, "Unknown package version 0x%x\n", Version);
         return NULL;
diff --git a/include/ntsecpkg.h b/include/ntsecpkg.h
index b83d364..0df345d 100644
--- a/include/ntsecpkg.h
+++ b/include/ntsecpkg.h
@@ -37,6 +37,7 @@ extern "C" {
 #define SECPKG_INTERFACE_VERSION_4                   0x80000
 #define SECPKG_INTERFACE_VERSION_5                  0x100000
 #define SECPKG_INTERFACE_VERSION_6                  0x200000
+#define SECPKG_INTERFACE_VERSION_7                  0x400000
 
 /* enum definitions for Secure Service Provider/Authentication Packages */
 typedef enum _LSA_TOKEN_INFORMATION_TYPE {
@@ -147,11 +148,17 @@ typedef struct _SECPKG_EXTENDED_INFORMATION {
     } Info;
 } SECPKG_EXTENDED_INFORMATION, *PSECPKG_EXTENDED_INFORMATION;
 
-typedef struct  _SECPKG_TARGETINFO {
+typedef struct _SECPKG_TARGETINFO {
     PSID DomainSid;
     PCWSTR ComputerName;
 } 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 */
 typedef VOID (NTAPI *PLSA_CALLBACK_FUNCTION)(ULONG_PTR, ULONG_PTR, PSecBuffer,
  PSecBuffer);
@@ -365,6 +372,7 @@ typedef NTSTATUS (NTAPI SpUpdateCredentialsFn)(LSA_SEC_HANDLE, GUID *, ULONG,
  PUCHAR);
 typedef NTSTATUS (NTAPI SpValidateTargetInfoFn)(PLSA_CLIENT_REQUEST, PVOID,
  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 */
 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 */
     SpValidateTargetInfoFn *ValidateTargetInfo;
     /* 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,
  *PSECPKG_FUNCTION_TABLE;
 




More information about the wine-cvs mailing list