source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/madcapcl.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 2.4 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _MADCAPCL_H_
7#define _MADCAPCL_H_
8
9#include <winternl.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#include <time.h>
16
17#define MCAST_CLIENT_ID_LEN 17
18
19 enum {
20 MCAST_API_VERSION_0 = 0,MCAST_API_VERSION_1
21 };
22
23#define MCAST_API_CURRENT_VERSION MCAST_API_VERSION_1
24
25 typedef unsigned short IP_ADDR_FAMILY;
26
27 typedef union _IPNG_ADDRESS {
28 DWORD IpAddrV4;
29 BYTE IpAddrV6[16];
30 } IPNG_ADDRESS,*PIPNG_ADDRESS;
31
32 typedef struct _MCAST_CLIENT_UID {
33 LPBYTE ClientUID;
34 DWORD ClientUIDLength;
35 } MCAST_CLIENT_UID,*LPMCAST_CLIENT_UID;
36
37 typedef struct _MCAST_SCOPE_CTX {
38 IPNG_ADDRESS ScopeID;
39 IPNG_ADDRESS Interface;
40 IPNG_ADDRESS ServerID;
41 } MCAST_SCOPE_CTX,*PMCAST_SCOPE_CTX;
42
43 typedef struct _MCAST_SCOPE_ENTRY {
44 MCAST_SCOPE_CTX ScopeCtx;
45 IPNG_ADDRESS LastAddr;
46 DWORD TTL;
47 UNICODE_STRING ScopeDesc;
48 } MCAST_SCOPE_ENTRY,*PMCAST_SCOPE_ENTRY;
49
50 typedef struct _MCAST_LEASE_REQUEST {
51 LONG LeaseStartTime;
52 LONG MaxLeaseStartTime;
53 DWORD LeaseDuration;
54 DWORD MinLeaseDuration;
55 IPNG_ADDRESS ServerAddress;
56 WORD MinAddrCount;
57 WORD AddrCount;
58 PBYTE pAddrBuf;
59 } MCAST_LEASE_REQUEST,*PMCAST_LEASE_REQUEST;
60
61 typedef struct _MCAST_LEASE_RESPONSE {
62 LONG LeaseStartTime;
63 LONG LeaseEndTime;
64 IPNG_ADDRESS ServerAddress;
65 WORD AddrCount;
66 PBYTE pAddrBuf;
67 } MCAST_LEASE_RESPONSE,*PMCAST_LEASE_RESPONSE;
68
69 DWORD WINAPI McastApiStartup(PDWORD Version);
70 VOID WINAPI McastApiCleanup(VOID);
71 DWORD WINAPI McastGenUID(LPMCAST_CLIENT_UID pRequestID);
72 DWORD WINAPI McastEnumerateScopes(IP_ADDR_FAMILY AddrFamily,WINBOOL ReQuery,PMCAST_SCOPE_ENTRY pScopeList,PDWORD pScopeLen,PDWORD pScopeCount);
73 DWORD WINAPI McastRequestAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_SCOPE_CTX pScopeCtx,PMCAST_LEASE_REQUEST pAddrRequest,PMCAST_LEASE_RESPONSE pAddrResponse);
74 DWORD WINAPI McastRenewAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_LEASE_REQUEST pRenewRequest,PMCAST_LEASE_RESPONSE pRenewResponse);
75 DWORD WINAPI McastReleaseAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_LEASE_REQUEST pReleaseRequest);
76
77#ifdef __cplusplus
78}
79#endif
80#endif
Note: See TracBrowser for help on using the repository browser.