Sync with trunk r58151 to bring the latest changes from Amine and Timo.
[reactos.git] / dll / win32 / ws2_32 / include / catalog.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 DLL
4 * FILE: include/catalog.h
5 * PURPOSE: Service Provider Catalog definitions
6 */
7 #ifndef __CATALOG_H
8 #define __CATALOG_H
9
10 typedef struct _CATALOG_ENTRY
11 {
12 LIST_ENTRY ListEntry;
13 ULONG ReferenceCount;
14 CRITICAL_SECTION Lock;
15 UNICODE_STRING LibraryName;
16 HMODULE hModule;
17 WSAPROTOCOL_INFOW ProtocolInfo;
18 PWINSOCK_MAPPING Mapping;
19 LPWSPSTARTUP WSPStartup;
20 WSPDATA WSPData;
21 WSPPROC_TABLE ProcTable;
22 } CATALOG_ENTRY, *PCATALOG_ENTRY;
23
24 extern LIST_ENTRY Catalog;
25
26
27 VOID ReferenceProviderByPointer(
28 PCATALOG_ENTRY Provider);
29
30 VOID DereferenceProviderByPointer(
31 PCATALOG_ENTRY Provider);
32
33 PCATALOG_ENTRY CreateCatalogEntry(
34 LPWSTR LibraryName);
35
36 INT DestroyCatalogEntry(
37 PCATALOG_ENTRY Provider);
38
39 PCATALOG_ENTRY LocateProvider(
40 LPWSAPROTOCOL_INFOW lpProtocolInfo);
41
42 PCATALOG_ENTRY LocateProviderById(
43 DWORD CatalogEntryId);
44
45 INT LoadProvider(
46 PCATALOG_ENTRY Provider,
47 LPWSAPROTOCOL_INFOW lpProtocolInfo);
48
49 INT UnloadProvider(
50 PCATALOG_ENTRY Provider);
51
52 VOID CreateCatalog(VOID);
53
54 VOID DestroyCatalog(VOID);
55
56 #endif /* __CATALOG_H */
57
58 /* EOF */