Sync with trunk r63831.
[reactos.git] / dll / win32 / ws2_32 / include / handle.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 DLL
4 * FILE: include/handle.h
5 * PURPOSE: Provider handle definitions
6 */
7
8 #ifndef __HANDLE_H
9 #define __HANDLE_H
10
11 typedef struct _PROVIDER_HANDLE
12 {
13 HANDLE Handle;
14 PCATALOG_ENTRY Provider;
15 } PROVIDER_HANDLE, *PPROVIDER_HANDLE;
16
17 #define HANDLE_BLOCK_ENTRIES ((1024-sizeof(LIST_ENTRY))/sizeof(PROVIDER_HANDLE))
18
19 typedef struct _PROVIDER_HANDLE_BLOCK
20 {
21 LIST_ENTRY Entry;
22 PROVIDER_HANDLE Handles[HANDLE_BLOCK_ENTRIES];
23 } PROVIDER_HANDLE_BLOCK, *PPROVIDER_HANDLE_BLOCK;
24
25 extern PPROVIDER_HANDLE_BLOCK ProviderHandleTable;
26
27
28 HANDLE
29 CreateProviderHandle(HANDLE Handle,
30 PCATALOG_ENTRY Provider);
31
32 BOOL
33 ReferenceProviderByHandle(HANDLE Handle,
34 PCATALOG_ENTRY* Provider);
35
36 BOOL
37 CloseProviderHandle(HANDLE Handle);
38
39 BOOL
40 InitProviderHandleTable(VOID);
41
42 VOID
43 FreeProviderHandleTable(VOID);
44
45 #endif /* __HANDLE_H */