1#ifndef _MSPORTS_
2#define _MSPORTS_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8DECLARE_HANDLE(HCOMDB);
9typedef HCOMDB *PHCOMDB;
10#define HCOMDB_INVALID_HANDLE_VALUE ((HCOMDB)INVALID_HANDLE_VALUE)
11
12/* Limits for ComDBResizeDatabase NewSize */
13#define COMDB_MIN_PORTS_ARBITRATED 256
14#define COMDB_MAX_PORTS_ARBITRATED 4096
15
16/* ReportType flags for ComDBGetCurrentPortUsage */
17#define CDB_REPORT_BITS  0x0
18#define CDB_REPORT_BYTES 0x1
19
20LONG
21WINAPI
22ComDBClaimNextFreePort(IN HCOMDB hComDB,
23                       OUT LPDWORD ComNumber);
24
25LONG
26WINAPI
27ComDBClaimPort(IN HCOMDB hComDB,
28               IN DWORD ComNumber,
29               IN BOOL ForceClaim,
30               OUT PBOOL Forced);
31
32LONG
33WINAPI
34ComDBClose(IN HCOMDB hComDB);
35
36LONG
37WINAPI
38ComDBGetCurrentPortUsage(IN HCOMDB hComDB,
39                         OUT PBYTE Buffer,
40                         IN DWORD BufferSize,
41                         IN DWORD ReportType,
42                         OUT LPDWORD MaxPortsReported);
43
44LONG
45WINAPI
46ComDBOpen(OUT HCOMDB *phComDB);
47
48LONG
49WINAPI
50ComDBReleasePort(IN HCOMDB hComDB,
51                 IN DWORD ComNumber);
52
53LONG
54WINAPI
55ComDBResizeDatabase(IN HCOMDB hComDB,
56                    IN DWORD NewSize);
57
58#ifdef __cplusplus
59}
60#endif
61
62#endif /* _MSPORTS_ */
63