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);
279 crl, toReplace, &childContext);
347 ctl, toReplace, &childContext);
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 CERT_STORE_DELETE_FLAG
WINECRYPT_CERTSTORE * CRYPT_CollectionOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define CRYPT_E_NOT_FOUND
static BOOL Collection_addCTL(WINECRYPT_CERTSTORE *store, context_t *ctl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static const store_vtbl_t CollectionStoreVtbl
static void Collection_addref(WINECRYPT_CERTSTORE *store)
static BOOL Collection_deleteCert(WINECRYPT_CERTSTORE *store, context_t *context)
WINE_DEFAULT_DEBUG_CHANNEL(crypt)
void Context_AddRef(context_t *context)
void CRYPT_FreeStore(WINECRYPT_CERTSTORE *store) DECLSPEC_HIDDEN
static BOOL CRYPT_CollectionAddContext(WINE_COLLECTIONSTORE *store, unsigned int contextFuncsOffset, context_t *context, context_t *toReplace, context_t **pChildContext)
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static BOOL Collection_deleteCTL(WINECRYPT_CERTSTORE *store, context_t *context)
void Context_Release(context_t *context)
BOOL(* addContext)(struct WINE_CRYPTCERTSTORE *, context_t *, context_t *, context_t **, BOOL)
_In_ PCCERT_CONTEXT _In_ DWORD _Outptr_opt_ PCCERT_CONTEXT * ppStoreContext
static context_t * CRYPT_CollectionCreateContextFromChild(WINE_COLLECTIONSTORE *store, WINE_STORE_LIST_ENTRY *storeEntry, context_t *child)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
static context_t * CRYPT_CollectionAdvanceEnum(WINE_COLLECTIONSTORE *store, WINE_STORE_LIST_ENTRY *storeEntry, const CONTEXT_FUNCS *contextFuncs, context_t *prev)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
WINECRYPT_CERTSTORE * store
struct _WINE_COLLECTIONSTORE WINE_COLLECTIONSTORE
BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define offsetof(TYPE, MEMBER)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
void Context_Free(context_t *context)
static DWORD Collection_release(WINECRYPT_CERTSTORE *store, DWORD flags)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
const store_vtbl_t * vtbl
#define WINE_CRYPTCERTSTORE_MAGIC
void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore)
PCRITICAL_SECTION_DEBUG DebugInfo
BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
static context_t * Collection_enumCert(WINECRYPT_CERTSTORE *store, context_t *prev)
#define InterlockedDecrement
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
static context_t * Collection_enumCTL(WINECRYPT_CERTSTORE *store, context_t *prev)
static BOOL Collection_addCRL(WINECRYPT_CERTSTORE *store, context_t *crl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
context_t *(* enumContext)(struct WINE_CRYPTCERTSTORE *store, context_t *prev)
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
struct _context_t * linked
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define InterlockedIncrement
struct _WINE_STORE_LIST_ENTRY WINE_STORE_LIST_ENTRY
static ICollection collection
BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
__WINE_SERVER_LIST_INLINE void list_add_before(struct list *elem, struct list *to_add)
VOID WINAPI CryptMemFree(LPVOID pv)
static context_t * Collection_enumCRL(WINECRYPT_CERTSTORE *store, context_t *prev)
static BOOL Collection_addCert(WINECRYPT_CERTSTORE *store, context_t *cert, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static BOOL Collection_control(WINECRYPT_CERTSTORE *cert_store, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
#define ERROR_CALL_NOT_IMPLEMENTED
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG
static BOOL Collection_deleteCRL(WINECRYPT_CERTSTORE *store, context_t *context)
static void Collection_releaseContext(WINECRYPT_CERTSTORE *store, context_t *context)
void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags, CertStoreType type, const store_vtbl_t *) DECLSPEC_HIDDEN
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]