Module: wine Branch: master Commit: b7b379b04eebe1a92b9f7d5e3c3301c535613630 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7b379b04eebe1a92b9f7d5e3c...
Author: Yuval Fledel yuvalfl@gmail.com Date: Wed Apr 25 00:48:42 2007 +0300
include: Introduce SECPKG_INTERFACE_VERSION and extend PSECPKG_FUNCTION_TABLE accordingly.
---
include/ntsecpkg.h | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/include/ntsecpkg.h b/include/ntsecpkg.h index f6437f4..8cca976 100644 --- a/include/ntsecpkg.h +++ b/include/ntsecpkg.h @@ -30,6 +30,11 @@ extern "C" { #define SECPKG_STATE_WORKSTATION 0x08 #define SECPKG_STATE_STANDALONE 0x10
+/* Version magics as passed to or returned from Sp[Lsa,Mode]ModeInitialize */ +#define SECPKG_INTERFACE_VERSION 0x10000 +#define SECPKG_INTERFACE_VERSION_2 0x20000 +#define SECPKG_INTERFACE_VERSION_3 0x40000 + /* enum definitions for Secure Service Provider/Authentication Packages */ typedef enum _LSA_TOKEN_INFORMATION_TYPE { LsaTokenInformationNull, @@ -336,6 +341,10 @@ typedef NTSTATUS (NTAPI SpAddCredentialsFn)(LSA_SEC_HANDLE, PUNICODE_STRING, PUNICODE_STRING, ULONG, PVOID, PVOID, PVOID, PTimeStamp); typedef NTSTATUS (NTAPI SpSetExtendedInformationFn)( SECPKG_EXTENDED_INFORMATION_CLASS, PSECPKG_EXTENDED_INFORMATION); +typedef NTSTATUS (NTAPI SpSetContextAttributesFn)(LSA_SEC_HANDLE, ULONG, PVOID, + ULONG); +typedef NTSTATUS (NTAPI SpSetCredentialsAttributesFn)(LSA_SEC_HANDLE, ULONG, + PVOID, ULONG);
/* User-mode functions implemented by SSP/AP obtainable by a dispatch table */ typedef NTSTATUS (NTAPI SpInstanceInitFn)(ULONG, PSECPKG_DLL_FUNCTIONS, @@ -388,9 +397,21 @@ typedef struct SECPKG_FUNCTION_TABLE { SpQueryContextAttributesFn *SpQueryContextAttributes; SpAddCredentialsFn *SpAddCredentials; SpSetExtendedInformationFn *SetExtendedInformation; + /* Packages with version SECPKG_INTERFACE_VERSION end here */ + SpSetContextAttributesFn *SpSetContextAttributes; + /* Packages with version SECPKG_INTERFACE_VERSION_2 end here */ + SpSetCredentialsAttributesFn *SetCredentialsAttributes; + /* Packages with version SECPKG_INTERFACE_VERSION_3 end here */ } SECPKG_FUNCTION_TABLE, *PSECPKG_FUNCTION_TABLE;
+/* Helper macros to find the size of SECPKG_FUNCTION_TABLE */ +#define SECPKG_FUNCTION_TABLE_SIZE_1 offsetof(SECPKG_FUNCTION_TABLE, \ + SpSetContextAttributes) +#define SECPKG_FUNCTION_TABLE_SIZE_2 offsetof(SECPKG_FUNCTION_TABLE, \ + SetCredentialsAttributes) +#define SECPKG_FUNCTION_TABLE_SIZE_3 sizeof(SECPKG_FUNCTION_TABLE) + /* dispatch tables of user-mode functions implemented by SSP/AP */ typedef struct SECPKG_USER_FUNCTION_TABLE { SpInstanceInitFn *InstanceInit;