Sync with trunk r62529.
[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
8 #ifndef __CATALOG_H
9 #define __CATALOG_H
10
11 typedef struct _CATALOG_ENTRY
12 {
13 LIST_ENTRY ListEntry;
14 ULONG ReferenceCount;
15 CRITICAL_SECTION Lock;
16 UNICODE_STRING LibraryName;
17 HMODULE hModule;
18 WSAPROTOCOL_INFOW ProtocolInfo;
19 PWINSOCK_MAPPING Mapping;
20 LPWSPSTARTUP WSPStartup;
21 WSPDATA WSPData;
22 WSPPROC_TABLE ProcTable;
23 } CATALOG_ENTRY, *PCATALOG_ENTRY;
24
25 extern LIST_ENTRY Catalog;
26
27
28 VOID ReferenceProviderByPointer(
29 PCATALOG_ENTRY Provider);
30
31 VOID DereferenceProviderByPointer(
32 PCATALOG_ENTRY Provider);
33
34 PCATALOG_ENTRY CreateCatalogEntry(
35 LPWSTR LibraryName);
36
37 INT DestroyCatalogEntry(
38 PCATALOG_ENTRY Provider);
39
40 PCATALOG_ENTRY LocateProvider(
41 LPWSAPROTOCOL_INFOW lpProtocolInfo);
42
43 PCATALOG_ENTRY LocateProviderById(
44 DWORD CatalogEntryId);
45
46 INT LoadProvider(
47 PCATALOG_ENTRY Provider,
48 LPWSAPROTOCOL_INFOW lpProtocolInfo);
49
50 INT UnloadProvider(
51 PCATALOG_ENTRY Provider);
52
53 VOID CreateCatalog(VOID);
54
55 VOID DestroyCatalog(VOID);
56
57 #endif /* __CATALOG_H */