63 TRACE(
"(%p, %p)\n", pcPackages, ppPackageInfo);
96 *pkgInfo = package->
infoW;
100 pkgInfo->
Name = nextString;
102 nextString +=
lstrlenW(nextString) + 1;
111 nextString +=
lstrlenW(nextString) + 1;
136 size_t bytesNeeded = cPackages *
sizeof(
SecPkgInfoA);
139 for (
i = 0;
i < cPackages;
i++)
154 for (
i = 0;
i < cPackages;
i++)
162 pkgInfo->
Name = nextString;
170 nextString +=
lstrlenA(nextString) + 1;
184 nextString +=
lstrlenA(nextString) + 1;
209 if (*pcPackages && !*ppPackageInfo)
295 if (
info && (inInfoA || inInfoW))
344 if (fnTableA || fnTableW)
349 ret->loaded = !moduleName;
385 for (
i = 0;
i < toAdd;
i++)
387 SecurePackage *
package = HeapAlloc(GetProcessHeap(), 0, sizeof(SecurePackage));
393 package->provider = provider;
static unsigned char bytes[4]
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static const SecPkgInfoW infoW
static const SecPkgInfoA infoA
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
struct _SecPkgInfoW SecPkgInfoW
struct _SecPkgInfoA SecPkgInfoA
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
struct _SecureProviderTable SecureProviderTable
static PWSTR SECUR32_strdupW(PCWSTR str)
void SECUR32_addPackages(SecureProvider *provider, ULONG toAdd, const SecPkgInfoA *infoA, const SecPkgInfoW *infoW)
SecureProvider * SECUR32_addProvider(const SecurityFunctionTableA *fnTableA, const SecurityFunctionTableW *fnTableW, PCWSTR moduleName)
static SecurePackageTable * packageTable
static SecureProviderTable * providerTable
static CRITICAL_SECTION cs
SECURITY_STATUS WINAPI schan_EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
struct _SecurePackageTable SecurePackageTable
PSTR SECUR32_AllocMultiByteFromWide(PCWSTR str)
static CRITICAL_SECTION_DEBUG cs_debug
SECURITY_STATUS WINAPI schan_EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS WINAPI schan_FreeContextBuffer(PVOID pvoid)
static PSecPkgInfoA thunk_PSecPkgInfoWToA(ULONG cPackages, const SecPkgInfoW *info)
PWSTR SECUR32_AllocWideFromMultiByte(PCSTR str)
static void _copyPackageInfo(PSecPkgInfoW info, const SecPkgInfoA *inInfoA, const SecPkgInfoW *inInfoW)
static void _makeFnTableA(PSecurityFunctionTableA fnTableA, const SecurityFunctionTableA *inFnTableA, const SecurityFunctionTableW *inFnTableW)
static void _makeFnTableW(PSecurityFunctionTableW fnTableW, const SecurityFunctionTableA *inFnTableA, const SecurityFunctionTableW *inFnTableW)
LIST_ENTRY ProcessLocksList
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define SEC_E_INSUFFICIENT_MEMORY