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