ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wdspxe.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 4983 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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 _INC_WDSPXE
7 #define _INC_WDSPXE
8 #if (_WIN32_WINNT >= 0x0600)
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #define PXE_ADDR_BROADCAST 0x0001
15 #define PXE_ADDR_USE_PORT 0x0002
16 #define PXE_ADDR_USE_ADDR 0x0004
17 #define PXE_ADDR_USE_DHCP_RULES 0x0008
18
19 #ifndef PXEAPI
20 #define PXEAPI WINAPI
21 #endif
22
23 typedef ULONG PXE_BOOT_ACTION;
24 typedef ULONG PXE_REG_INDEX;
25 typedef ULONG PXE_PROVIDER_ATTRIBUTE;
26
27 typedef struct tagPXE_ADDRESS {
28 ULONG uFlags;
29 __C89_NAMELESS union {
30 BYTE bAddress[PXE_MAX_ADDRESS];
31 ULONG uIpAddress;
32 } DUMMYUNIONNAME;
33 ULONG uAddrLen;
34 USHORT uPort;
35 } PXE_ADDRESS, *PPXE_ADDRESS;
36
37 typedef struct _PXE_DHCP_MESSAGE {
38 BYTE Operation;
39 BYTE HardwareAddressType;
40 BYTE HardwareAddressLength;
41 BYTE HopCount;
42 DWORD TransactionID;
43 WORD SecondsSinceBoot;
44 WORD Reserved;
45 ULONG ClientIpAddress;
46 ULONG YourIPAddress;
47 ULONG BootstrapServerAddress;
48 ULONG RelayAgentIpAddress;
49 BYTE HardwareAddress[PXE_DHCP_HWAADR_SIZE];
50 BYTE HostName[PXE_DHCP_SERVER_SIZE];
51 BYTE BootFileName;
52 __C89_NAMELESS union {
53 BYTE bMagicCookie[PXE_DHCP_MAGIC_COOKIE_SIZE];
54 ULONG uMagicCookie;
55 } DUMMYUNIONNAME;
56 } PXE_DHCP_MESSAGE, *PPXE_DHCP_MESSAGE;
57
58 typedef struct _PXE_DHCP_OPTION {
59 BYTE OptionType;
60 BYTE OptionLength;
61 BYTE OptionValue[1];
62 } PXE_DHCP_OPTION, *PPXE_DHCP_OPTION;
63
64 #define PXE_BA_NBP 1
65 #define PXE_BA_CUSTOM 2
66 #define PXE_BA_IGNORE 3
67 #define PXE_BA_REJECTED 4
68
69 typedef struct tagPXE_PROVIDER {
70 ULONG uSizeOfStruct;
71 LPWSTR pwszName;
72 LPWSTR pwszFilePath;
73 WINBOOL bIsCritical;
74 ULONG uIndex;
75 } PXE_PROVIDER, *PPXE_PROVIDER;
76
77 DWORD PXEAPI PxeDhcpAppendOption(PVOID pReplyPacket,ULONG uMaxReplyPacketLen,PULONG puReplyPacketLen,BYTE bOption,BYTE bOptionLen,PVOID pValue);
78 DWORD PXEAPI PxeDhcpGetOptionValue(PVOID pPacket,ULONG uPacketLen,ULONG uInstance,BYTE bOption,PBYTE pbOptionLen,PVOID *ppOptionValue);
79 DWORD PXEAPI PxeDhcpGetVendorOptionValue(PVOID pPacket,ULONG uPacketLen,BYTE bOption,ULONG uInstance,PBYTE pbOptionLen,PVOID *ppOptionValue);
80 DWORD PXEAPI PxeDhcpInitialize(PVOID pRecvPacket,ULONG uRecvPacketLen,PVOID pReplyPacket,ULONG uMaxReplyPacketLen,PULONG puReplyPacketLen);
81 DWORD PXEAPI PxeDhcpIsValid(PVOID pPacket,ULONG uPacketLen,WINBOOL bRequestPacket,PBOOL pbPxeOptionPresent);
82
83 typedef enum _PXE_GSI_TYPE {
84 PXE_GSI_TRACE_ENABLED = 1
85 } PXE_GSI_TYPE;
86
87 DWORD PXEAPI PxeGetServerInfo(PXE_GSI_TYPE uInfoType,PVOID pBuffer,ULONG uBufferLen);
88 PVOID PXEAPI PxePacketAllocate(HANDLE hProvider,HANDLE hClientRequest,ULONG uSize);
89 DWORD PXEAPI PxePacketFree(HANDLE hProvider,HANDLE hClientRequest,PVOID pPacket);
90 DWORD PXEAPI PxeProviderEnumClose(HANDLE hEnum);
91 DWORD PXEAPI PxeProviderEnumFirst(HANDLE *phEnum);
92 DWORD PXEAPI PxeProviderEnumNext(HANDLE hEnum,PPXE_PROVIDER *ppProvider);
93 DWORD PXEAPI PxeProviderFreeInfo(PPXE_PROVIDER pProvider);
94 DWORD PXEAPI PxeProviderInitialize(HANDLE hProvider,HKEY hProviderKey);
95 DWORD PXEAPI PxeProviderQueryIndex(LPCWSTR pszProviderName,PULONG puIndex);
96 DWORD PXEAPI PxeProviderRecvRequest(HANDLE hClientRequest,PVOID pPacket,ULONG uPacketLen,PXE_ADDRESS *pLocalAddress,PXE_ADDRESS *pRemoteAddress,PXE_BOOT_ACTION pAction,PVOID pContext);
97
98 #define PXE_REG_INDEX_TOP __MSABI_LONG(0U)
99 #define PXE_REG_INDEX_BOTTOM __MSABI_LONG(0xFFFFFFFFU)
100
101 DWORD PXEAPI PxeProviderRegister(LPCWSTR pszProviderName,LPCWSTR pszModulePath,PXE_REG_INDEX Index,WINBOOL bIsCritical,PHKEY phProviderKey);
102 DWORD PXEAPI PxeProviderServiceControl(PVOID pContext,DWORD dwControl);
103 DWORD PXEAPI PxeProviderSetAttribute(HANDLE hProvider,PXE_PROVIDER_ATTRIBUTE Attribute,PVOID pParameterBuffer,ULONG uParamLen);
104
105 #define PXE_PROV_ATTR_FILTER 0
106
107 #define PXE_PROV_FILTER_ALL 0x0000
108 #define PXE_PROV_FILTER_DHCP_ONLY 0x0001
109 #define PXE_PROV_FILTER_PXE_ONLY 0x0002
110
111 DWORD PXEAPI PxeProviderSetAttribute(HANDLE hProvider,PXE_PROVIDER_ATTRIBUTE Attribute,PVOID pParameterBuffer,ULONG uParamLen);
112 DWORD PXEAPI PxeProviderShutdown(PVOID pContext);
113 DWORD PXEAPI PxeProviderUnRegister(LPCWSTR pszProviderName);
114
115 typedef enum _PXE_CALLBACK_TYPE {
116 PXE_CALLBACK_RECV_REQUEST = 0,
117 PXE_CALLBACK_SHUTDOWN,
118 PXE_CALLBACK_SERVICE_CONTROL,
119 PXE_CALLBACK_MAX
120 } PXE_CALLBACK_TYPE;
121
122 DWORD PXEAPI PxeSendReply(HANDLE hClientRequest,PVOID pPacket,ULONG uPacketLen,PXE_ADDRESS *pAddress);
123 DWORD PXEAPI PxeRegisterCallback(HANDLE hProvider,PXE_CALLBACK_TYPE CallbackType,PVOID pCallbackFunction,PVOID pContext);
124
125 typedef DWORD PXE_SEVERITY;
126
127 #define PXE_TRACE_VERBOSE 0x00010000
128 #define PXE_TRACE_INFO 0x00020000
129 #define PXE_TRACE_WARNING 0x00040000
130 #define PXE_TRACE_ERROR 0x00080000
131 #define PXE_TRACE_FATAL 0x00100000
132
133 DWORD WINAPIV PxeTrace(HANDLE hProvider,PXE_SEVERITY Severity,LPCWSTR pszFormat,...);
134
135 #ifdef __cplusplus
136 }
137 #endif
138 #endif /*(_WIN32_WINNT >= 0x0600)*/
139 #endif /*_INC_WDSPXE*/