24#define WIN32_NO_STATUS
36#define SECPKG_FUNCTION_TABLE_SIZE_1 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
38#define SECPKG_FUNCTION_TABLE_SIZE_2 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
39 SetCredentialsAttributes)
40#define SECPKG_FUNCTION_TABLE_SIZE_3 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
41 ChangeAccountPassword)
42#define SECPKG_FUNCTION_TABLE_SIZE_4 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
44#define SECPKG_FUNCTION_TABLE_SIZE_5 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
46#define SECPKG_FUNCTION_TABLE_SIZE_6 FIELD_OFFSET(SECPKG_FUNCTION_TABLE, \
48#define SECPKG_FUNCTION_TABLE_SIZE_7 sizeof(SECPKG_FUNCTION_TABLE)
50#define LSA_BASE_CAPS ( \
51 SECPKG_FLAG_INTEGRITY | \
52 SECPKG_FLAG_PRIVACY | \
53 SECPKG_FLAG_CONNECTION | \
54 SECPKG_FLAG_MULTI_REQUIRED | \
55 SECPKG_FLAG_EXTENDED_ERROR | \
56 SECPKG_FLAG_IMPERSONATION | \
57 SECPKG_FLAG_ACCEPT_WIN32_NAME | \
58 SECPKG_FLAG_STREAM | \
59 SECPKG_FLAG_MUTUAL_AUTH )
77 status = pSpLsaModeInitialize(0, &
Version, &pTables2, &cTables);
81 "cTables: %d\n", cTables);
82 ok(pTables2 !=
NULL,
"pTables: %p\n", pTables2);
85 status = pSpLsaModeInitialize(0x10000, &
Version, &pTables, &cTables);
89 "cTables: %d\n", cTables);
90 ok(pTables !=
NULL,
"pTables: %p\n", pTables);
92 ok(pTables == pTables2,
"pTables: %p, pTables2: %p\n", pTables, pTables2);
94 status = pSpLsaModeInitialize(0x23456, &
Version, &pTables, &cTables);
98 "cTables: %d\n", cTables);
99 ok(pTables !=
NULL,
"pTables: %p\n", pTables);
100 ok(pTables == pTables2,
"pTables: %p, pTables2: %p\n", pTables, pTables2);
104 cUserTables = 0xdead;
106 status = pSpUserModeInitialize(0, &
Version, &pUserTables, &cUserTables);
109 ok(cUserTables == 0xdead,
"cTables: %d\n", cUserTables);
110 ok(pUserTables ==
NULL,
"pUserTables: %p\n", pUserTables);
112 status = pSpUserModeInitialize(0x20000, &
Version, &pUserTables,
116 ok(cUserTables == 0xdead,
"cTables: %d\n", cUserTables);
117 ok(pUserTables ==
NULL,
"pUserTables: %p\n", pUserTables);
121 &pUserTables, &cUserTables);
124 ok(cUserTables == 2 ||
126 "cUserTables: %d\n", cUserTables);
127 ok(pUserTables !=
NULL,
"pUserTables: %p\n", pUserTables);
131 &pUserTables2, &cTables);
133 ok(pUserTables == pUserTables2,
"pUserTables: %p, pUserTables2: %p\n",
134 pUserTables, pUserTables2);
174 win_skip(
"Invalid function pointers for next package\n");
189 status = pSpLsaModeInitialize(0, &
Version, &pTables, &cTables);
204 "cbMaxToken: 0x%x\n",
210 win_skip(
"Second package missing\n");
218 win_skip(
"GetInfo function missing\n");
224 "status: 0x%x\n",
status);
235 "cbMaxToken: 0x%x\n",
244 win_skip(
"schannel.dll not available\n");
248 pSpLsaModeInitialize = (
void *)
GetProcAddress(hMod,
"SpLsaModeInitialize");
249 pSpUserModeInitialize = (
void *)
GetProcAddress(hMod,
"SpUserModeInitialize");
251 if (pSpLsaModeInitialize && pSpUserModeInitialize)
256 else win_skip(
"schannel functions not found\n" );
#define GetProcAddress(x, y)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
#define SECPKG_FUNCTION_TABLE_SIZE_7
#define SECPKG_FUNCTION_TABLE_SIZE_2
#define SECPKG_FUNCTION_TABLE_SIZE_6
#define SECPKG_FUNCTION_TABLE_SIZE_4
#define SECPKG_FUNCTION_TABLE_SIZE_5
#define SECPKG_FUNCTION_TABLE_SIZE_3
static void testInitialize(void)
static void testGetInfo(void)
static PSECPKG_FUNCTION_TABLE getNextSecPkgTable(PSECPKG_FUNCTION_TABLE pTable, ULONG Version)
#define SECPKG_FUNCTION_TABLE_SIZE_1
struct _SECPKG_FUNCTION_TABLE * PSECPKG_FUNCTION_TABLE
#define SECPKG_INTERFACE_VERSION_2
#define SECPKG_INTERFACE_VERSION_5
#define SECPKG_INTERFACE_VERSION_3
#define SECPKG_INTERFACE_VERSION_4
#define SECPKG_INTERFACE_VERSION_6
#define SECPKG_INTERFACE_VERSION
#define SECPKG_INTERFACE_VERSION_7
#define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH
SpFreeCredentialsHandleFn * FreeCredentialsHandle
#define STATUS_INVALID_PARAMETER
static const EHCI_PERIOD pTable[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
#define SEC_E_UNSUPPORTED_FUNCTION