68 cs->cs.DebugInfo->Spare[0] = 0;
89 ret->u.ptr = storeEntry;
101 TRACE(
"(%p, %d, %p, %p)\n", store, contextFuncsOffset,
context, toReplace);
109 storeEntry = toReplace->
u.
ptr;
113 existingLinked, &childContext,
TRUE);
136 *pChildContext = childContext;
156 TRACE(
"(%p, %p, %p)\n", store, storeEntry, prev);
190 storeNextContexts,
NULL);
210 cert, toReplace, &childContext);
229 TRACE(
"(%p, %p)\n", store, prev);
279 crl, toReplace, &childContext);
298 TRACE(
"(%p, %p)\n", store, prev);
347 ctl, toReplace, &childContext);
366 TRACE(
"(%p, %p)\n", store, prev);
401 TRACE(
"(%p, %p)\n", store, ctl);
408 DWORD dwCtrlType,
void const *pvCtrlPara)
433 if (
entry->store->vtbl->control)
497 TRACE(
"(%p, %p, %08x, %d)\n", hCollectionStore, hSiblingStore,
498 dwUpdateFlags, dwPriority);
522 TRACE(
"sibling %p's ref count is %d\n", sibling, sibling->
ref);
523 entry->store = sibling;
524 entry->dwUpdateFlags = dwUpdateFlags;
525 entry->dwPriority = dwPriority;
536 if (
cursor->dwPriority < dwPriority)
563 TRACE(
"(%p, %p)\n", hCollectionStore, hSiblingStore);
582 if (store->
store == sibling)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static void Collection_releaseContext(WINECRYPT_CERTSTORE *store, context_t *context)
static BOOL Collection_deleteCert(WINECRYPT_CERTSTORE *store, context_t *context)
static BOOL Collection_control(WINECRYPT_CERTSTORE *cert_store, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
static context_t * CRYPT_CollectionAdvanceEnum(WINE_COLLECTIONSTORE *store, WINE_STORE_LIST_ENTRY *storeEntry, const CONTEXT_FUNCS *contextFuncs, context_t *prev)
static DWORD Collection_release(WINECRYPT_CERTSTORE *store, DWORD flags)
static BOOL CRYPT_CollectionAddContext(WINE_COLLECTIONSTORE *store, unsigned int contextFuncsOffset, context_t *context, context_t *toReplace, context_t **pChildContext)
static BOOL Collection_addCTL(WINECRYPT_CERTSTORE *store, context_t *ctl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
struct _WINE_STORE_LIST_ENTRY WINE_STORE_LIST_ENTRY
static context_t * Collection_enumCRL(WINECRYPT_CERTSTORE *store, context_t *prev)
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
static void Collection_addref(WINECRYPT_CERTSTORE *store)
static BOOL Collection_addCert(WINECRYPT_CERTSTORE *store, context_t *cert, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static const store_vtbl_t CollectionStoreVtbl
static BOOL Collection_deleteCTL(WINECRYPT_CERTSTORE *store, context_t *context)
WINECRYPT_CERTSTORE * CRYPT_CollectionOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
static context_t * Collection_enumCTL(WINECRYPT_CERTSTORE *store, context_t *prev)
void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore)
static context_t * CRYPT_CollectionCreateContextFromChild(WINE_COLLECTIONSTORE *store, WINE_STORE_LIST_ENTRY *storeEntry, context_t *child)
struct _WINE_COLLECTIONSTORE WINE_COLLECTIONSTORE
static BOOL Collection_addCRL(WINECRYPT_CERTSTORE *store, context_t *crl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static BOOL Collection_deleteCRL(WINECRYPT_CERTSTORE *store, context_t *context)
static context_t * Collection_enumCert(WINECRYPT_CERTSTORE *store, context_t *prev)
#define WINE_CRYPTCERTSTORE_MAGIC
void CRYPT_FreeStore(WINECRYPT_CERTSTORE *store) DECLSPEC_HIDDEN
void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags, CertStoreType type, const store_vtbl_t *) DECLSPEC_HIDDEN
void Context_AddRef(context_t *context)
void Context_Release(context_t *context)
void Context_Free(context_t *context)
BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
#define ERROR_CALL_NOT_IMPLEMENTED
static ICollection collection
static unsigned __int64 next
#define offsetof(TYPE, MEMBER)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
__WINE_SERVER_LIST_INLINE void list_add_before(struct list *elem, struct list *to_add)
const store_vtbl_t * vtbl
context_t *(* enumContext)(struct WINE_CRYPTCERTSTORE *store, context_t *prev)
BOOL(* addContext)(struct WINE_CRYPTCERTSTORE *, context_t *, context_t *, context_t **, BOOL)
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
PCRITICAL_SECTION_DEBUG DebugInfo
WINECRYPT_CERTSTORE * store
struct _context_t * linked
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ PCCERT_CONTEXT _In_ DWORD _Outptr_opt_ PCCERT_CONTEXT * ppStoreContext
#define CERT_STORE_DELETE_FLAG
#define CRYPT_E_NOT_FOUND