|
1 /* |
|
2 * ndis.h |
|
3 * |
|
4 * Network Device Interface Specification definitions |
|
5 * |
|
6 * This file is part of the w32api package. |
|
7 * |
|
8 * Contributors: |
|
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> |
|
10 * |
|
11 * THIS SOFTWARE IS NOT COPYRIGHTED |
|
12 * |
|
13 * This source code is offered for use in the public domain. You may |
|
14 * use, modify or distribute it freely. |
|
15 * |
|
16 * This code is distributed in the hope that it will be useful but |
|
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |
|
18 * DISCLAIMED. This includes but is not limited to warranties of |
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
20 * |
|
21 * DEFINES: i386 - Target platform is i386 |
|
22 * _NDIS_ - Define only for NDIS library |
|
23 * NDIS_MINIPORT_DRIVER - Define only for NDIS miniport drivers |
|
24 * NDIS40 - Use NDIS 4.0 structures by default |
|
25 * NDIS50 - Use NDIS 5.0 structures by default |
|
26 * NDIS50_MINIPORT - Building NDIS 5.0 miniport driver |
|
27 * NDIS51_MINIPORT - Building NDIS 5.1 miniport driver |
|
28 */ |
|
29 #ifndef __NDIS_H |
|
30 #define __NDIS_H |
|
31 |
|
32 #if __GNUC__ >=3 |
|
33 #pragma GCC system_header |
|
34 #endif |
|
35 |
|
36 #ifdef __cplusplus |
|
37 extern "C" { |
|
38 #endif |
|
39 |
|
40 #include "ntddk.h" |
|
41 #include "ntddndis.h" |
|
42 #include "netpnp.h" |
|
43 #include "netevent.h" |
|
44 #include <winsock2.h> |
|
45 |
|
46 #if defined(_NDIS_) |
|
47 #define NDISAPI DECLSPEC_EXPORT |
|
48 #else |
|
49 #define NDISAPI DECLSPEC_IMPORT |
|
50 #endif |
|
51 |
|
52 #if defined(NDIS50_MINIPORT) |
|
53 #ifndef NDIS50 |
|
54 #define NDIS50 |
|
55 #endif |
|
56 #endif /* NDIS50_MINIPORT */ |
|
57 |
|
58 #if defined(NDIS51_MINIPORT) |
|
59 #ifndef NDIS51 |
|
60 #define NDIS51 |
|
61 #endif |
|
62 #endif /* NDIS51_MINIPORT */ |
|
63 |
|
64 /* NDIS 3.0 is default */ |
|
65 #if !defined(NDIS30) || !defined(NDIS40) || !defined(NDIS50) || !defined(NDIS51) |
|
66 #define NDIS30 |
|
67 #endif /* !NDIS30 || !NDIS40 || !NDIS50 || !NDIS51 */ |
|
68 |
|
69 #if 1 |
|
70 /* FIXME: */ |
|
71 typedef PVOID QUEUED_CLOSE; |
|
72 #endif |
|
73 |
|
74 typedef ULONG NDIS_OID, *PNDIS_OID; |
|
75 |
|
76 typedef struct _X_FILTER FDDI_FILTER, *PFDDI_FILTER; |
|
77 typedef struct _X_FILTER TR_FILTER, *PTR_FILTER; |
|
78 typedef struct _X_FILTER NULL_FILTER, *PNULL_FILTER; |
|
79 |
|
80 typedef struct _REFERENCE { |
|
81 KSPIN_LOCK SpinLock; |
|
82 USHORT ReferenceCount; |
|
83 BOOLEAN Closing; |
|
84 } REFERENCE, * PREFERENCE; |
|
85 |
|
86 |
|
87 /* NDIS base types */ |
|
88 |
|
89 typedef struct _NDIS_SPIN_LOCK { |
|
90 KSPIN_LOCK SpinLock; |
|
91 KIRQL OldIrql; |
|
92 } NDIS_SPIN_LOCK, * PNDIS_SPIN_LOCK; |
|
93 |
|
94 typedef struct _NDIS_EVENT { |
|
95 KEVENT Event; |
|
96 } NDIS_EVENT, *PNDIS_EVENT; |
|
97 |
|
98 typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE; |
|
99 typedef int NDIS_STATUS, *PNDIS_STATUS; |
|
100 |
|
101 typedef ANSI_STRING NDIS_ANSI_STRING, *PNDIS_ANSI_STRING; |
|
102 typedef UNICODE_STRING NDIS_STRING, *PNDIS_STRING; |
|
103 |
|
104 typedef MDL NDIS_BUFFER, *PNDIS_BUFFER; |
|
105 typedef ULONG NDIS_ERROR_CODE, *PNDIS_ERROR_CODE; |
|
106 |
|
107 |
|
108 /* NDIS_STATUS constants */ |
|
109 #define NDIS_STATUS_SUCCESS ((NDIS_STATUS)STATUS_SUCCESS) |
|
110 #define NDIS_STATUS_PENDING ((NDIS_STATUS)STATUS_PENDING) |
|
111 #define NDIS_STATUS_NOT_RECOGNIZED ((NDIS_STATUS)0x00010001L) |
|
112 #define NDIS_STATUS_NOT_COPIED ((NDIS_STATUS)0x00010002L) |
|
113 #define NDIS_STATUS_NOT_ACCEPTED ((NDIS_STATUS)0x00010003L) |
|
114 #define NDIS_STATUS_CALL_ACTIVE ((NDIS_STATUS)0x00010007L) |
|
115 #define NDIS_STATUS_ONLINE ((NDIS_STATUS)0x40010003L) |
|
116 #define NDIS_STATUS_RESET_START ((NDIS_STATUS)0x40010004L) |
|
117 #define NDIS_STATUS_RESET_END ((NDIS_STATUS)0x40010005L) |
|
118 #define NDIS_STATUS_RING_STATUS ((NDIS_STATUS)0x40010006L) |
|
119 #define NDIS_STATUS_CLOSED ((NDIS_STATUS)0x40010007L) |
|
120 #define NDIS_STATUS_WAN_LINE_UP ((NDIS_STATUS)0x40010008L) |
|
121 #define NDIS_STATUS_WAN_LINE_DOWN ((NDIS_STATUS)0x40010009L) |
|
122 #define NDIS_STATUS_WAN_FRAGMENT ((NDIS_STATUS)0x4001000AL) |
|
123 #define NDIS_STATUS_MEDIA_CONNECT ((NDIS_STATUS)0x4001000BL) |
|
124 #define NDIS_STATUS_MEDIA_DISCONNECT ((NDIS_STATUS)0x4001000CL) |
|
125 #define NDIS_STATUS_HARDWARE_LINE_UP ((NDIS_STATUS)0x4001000DL) |
|
126 #define NDIS_STATUS_HARDWARE_LINE_DOWN ((NDIS_STATUS)0x4001000EL) |
|
127 #define NDIS_STATUS_INTERFACE_UP ((NDIS_STATUS)0x4001000FL) |
|
128 #define NDIS_STATUS_INTERFACE_DOWN ((NDIS_STATUS)0x40010010L) |
|
129 #define NDIS_STATUS_MEDIA_BUSY ((NDIS_STATUS)0x40010011L) |
|
130 #define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION ((NDIS_STATUS)0x40010012L) |
|
131 #define NDIS_STATUS_WW_INDICATION NDIS_STATUS_MEDIA_SPECIFIC_INDICATION |
|
132 #define NDIS_STATUS_LINK_SPEED_CHANGE ((NDIS_STATUS)0x40010013L) |
|
133 #define NDIS_STATUS_WAN_GET_STATS ((NDIS_STATUS)0x40010014L) |
|
134 #define NDIS_STATUS_WAN_CO_FRAGMENT ((NDIS_STATUS)0x40010015L) |
|
135 #define NDIS_STATUS_WAN_CO_LINKPARAMS ((NDIS_STATUS)0x40010016L) |
|
136 |
|
137 #define NDIS_STATUS_NOT_RESETTABLE ((NDIS_STATUS)0x80010001L) |
|
138 #define NDIS_STATUS_SOFT_ERRORS ((NDIS_STATUS)0x80010003L) |
|
139 #define NDIS_STATUS_HARD_ERRORS ((NDIS_STATUS)0x80010004L) |
|
140 #define NDIS_STATUS_BUFFER_OVERFLOW ((NDIS_STATUS)STATUS_BUFFER_OVERFLOW) |
|
141 |
|
142 #define NDIS_STATUS_FAILURE ((NDIS_STATUS)STATUS_UNSUCCESSFUL) |
|
143 #define NDIS_STATUS_RESOURCES ((NDIS_STATUS)STATUS_INSUFFICIENT_RESOURCES) |
|
144 #define NDIS_STATUS_CLOSING ((NDIS_STATUS)0xC0010002L) |
|
145 #define NDIS_STATUS_BAD_VERSION ((NDIS_STATUS)0xC0010004L) |
|
146 #define NDIS_STATUS_BAD_CHARACTERISTICS ((NDIS_STATUS)0xC0010005L) |
|
147 #define NDIS_STATUS_ADAPTER_NOT_FOUND ((NDIS_STATUS)0xC0010006L) |
|
148 #define NDIS_STATUS_OPEN_FAILED ((NDIS_STATUS)0xC0010007L) |
|
149 #define NDIS_STATUS_DEVICE_FAILED ((NDIS_STATUS)0xC0010008L) |
|
150 #define NDIS_STATUS_MULTICAST_FULL ((NDIS_STATUS)0xC0010009L) |
|
151 #define NDIS_STATUS_MULTICAST_EXISTS ((NDIS_STATUS)0xC001000AL) |
|
152 #define NDIS_STATUS_MULTICAST_NOT_FOUND ((NDIS_STATUS)0xC001000BL) |
|
153 #define NDIS_STATUS_REQUEST_ABORTED ((NDIS_STATUS)0xC001000CL) |
|
154 #define NDIS_STATUS_RESET_IN_PROGRESS ((NDIS_STATUS)0xC001000DL) |
|
155 #define NDIS_STATUS_CLOSING_INDICATING ((NDIS_STATUS)0xC001000EL) |
|
156 #define NDIS_STATUS_NOT_SUPPORTED ((NDIS_STATUS)STATUS_NOT_SUPPORTED) |
|
157 #define NDIS_STATUS_INVALID_PACKET ((NDIS_STATUS)0xC001000FL) |
|
158 #define NDIS_STATUS_OPEN_LIST_FULL ((NDIS_STATUS)0xC0010010L) |
|
159 #define NDIS_STATUS_ADAPTER_NOT_READY ((NDIS_STATUS)0xC0010011L) |
|
160 #define NDIS_STATUS_ADAPTER_NOT_OPEN ((NDIS_STATUS)0xC0010012L) |
|
161 #define NDIS_STATUS_NOT_INDICATING ((NDIS_STATUS)0xC0010013L) |
|
162 #define NDIS_STATUS_INVALID_LENGTH ((NDIS_STATUS)0xC0010014L) |
|
163 #define NDIS_STATUS_INVALID_DATA ((NDIS_STATUS)0xC0010015L) |
|
164 #define NDIS_STATUS_BUFFER_TOO_SHORT ((NDIS_STATUS)0xC0010016L) |
|
165 #define NDIS_STATUS_INVALID_OID ((NDIS_STATUS)0xC0010017L) |
|
166 #define NDIS_STATUS_ADAPTER_REMOVED ((NDIS_STATUS)0xC0010018L) |
|
167 #define NDIS_STATUS_UNSUPPORTED_MEDIA ((NDIS_STATUS)0xC0010019L) |
|
168 #define NDIS_STATUS_GROUP_ADDRESS_IN_USE ((NDIS_STATUS)0xC001001AL) |
|
169 #define NDIS_STATUS_FILE_NOT_FOUND ((NDIS_STATUS)0xC001001BL) |
|
170 #define NDIS_STATUS_ERROR_READING_FILE ((NDIS_STATUS)0xC001001CL) |
|
171 #define NDIS_STATUS_ALREADY_MAPPED ((NDIS_STATUS)0xC001001DL) |
|
172 #define NDIS_STATUS_RESOURCE_CONFLICT ((NDIS_STATUS)0xC001001EL) |
|
173 #define NDIS_STATUS_NO_CABLE ((NDIS_STATUS)0xC001001FL) |
|
174 |
|
175 #define NDIS_STATUS_INVALID_SAP ((NDIS_STATUS)0xC0010020L) |
|
176 #define NDIS_STATUS_SAP_IN_USE ((NDIS_STATUS)0xC0010021L) |
|
177 #define NDIS_STATUS_INVALID_ADDRESS ((NDIS_STATUS)0xC0010022L) |
|
178 #define NDIS_STATUS_VC_NOT_ACTIVATED ((NDIS_STATUS)0xC0010023L) |
|
179 #define NDIS_STATUS_DEST_OUT_OF_ORDER ((NDIS_STATUS)0xC0010024L) |
|
180 #define NDIS_STATUS_VC_NOT_AVAILABLE ((NDIS_STATUS)0xC0010025L) |
|
181 #define NDIS_STATUS_CELLRATE_NOT_AVAILABLE ((NDIS_STATUS)0xC0010026L) |
|
182 #define NDIS_STATUS_INCOMPATABLE_QOS ((NDIS_STATUS)0xC0010027L) |
|
183 #define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED ((NDIS_STATUS)0xC0010028L) |
|
184 #define NDIS_STATUS_NO_ROUTE_TO_DESTINATION ((NDIS_STATUS)0xC0010029L) |
|
185 |
|
186 #define NDIS_STATUS_TOKEN_RING_OPEN_ERROR ((NDIS_STATUS)0xC0011000L) |
|
187 #define NDIS_STATUS_INVALID_DEVICE_REQUEST ((NDIS_STATUS)STATUS_INVALID_DEVICE_REQUEST) |
|
188 #define NDIS_STATUS_NETWORK_UNREACHABLE ((NDIS_STATUS)STATUS_NETWORK_UNREACHABLE) |
|
189 |
|
190 |
|
191 /* NDIS error codes for error logging */ |
|
192 |
|
193 #define NDIS_ERROR_CODE_RESOURCE_CONFLICT EVENT_NDIS_RESOURCE_CONFLICT |
|
194 #define NDIS_ERROR_CODE_OUT_OF_RESOURCES EVENT_NDIS_OUT_OF_RESOURCE |
|
195 #define NDIS_ERROR_CODE_HARDWARE_FAILURE EVENT_NDIS_HARDWARE_FAILURE |
|
196 #define NDIS_ERROR_CODE_ADAPTER_NOT_FOUND EVENT_NDIS_ADAPTER_NOT_FOUND |
|
197 #define NDIS_ERROR_CODE_INTERRUPT_CONNECT EVENT_NDIS_INTERRUPT_CONNECT |
|
198 #define NDIS_ERROR_CODE_DRIVER_FAILURE EVENT_NDIS_DRIVER_FAILURE |
|
199 #define NDIS_ERROR_CODE_BAD_VERSION EVENT_NDIS_BAD_VERSION |
|
200 #define NDIS_ERROR_CODE_TIMEOUT EVENT_NDIS_TIMEOUT |
|
201 #define NDIS_ERROR_CODE_NETWORK_ADDRESS EVENT_NDIS_NETWORK_ADDRESS |
|
202 #define NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION EVENT_NDIS_UNSUPPORTED_CONFIGURATION |
|
203 #define NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER |
|
204 #define NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER |
|
205 #define NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS EVENT_NDIS_BAD_IO_BASE_ADDRESS |
|
206 #define NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL EVENT_NDIS_RECEIVE_SPACE_SMALL |
|
207 #define NDIS_ERROR_CODE_ADAPTER_DISABLED EVENT_NDIS_ADAPTER_DISABLED |
|
208 |
|
209 |
|
210 /* Memory allocation flags. Used by Ndis[Allocate|Free]Memory */ |
|
211 #define NDIS_MEMORY_CONTIGUOUS 0x00000001 |
|
212 #define NDIS_MEMORY_NONCACHED 0x00000002 |
|
213 |
|
214 /* NIC attribute flags. Used by NdisMSetAttributes(Ex) */ |
|
215 #define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001 |
|
216 #define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002 |
|
217 #define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004 |
|
218 #define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008 |
|
219 #define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010 |
|
220 #define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020 |
|
221 #define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040 |
|
222 #define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK 0x00000080 |
|
223 #define NDIS_ATTRIBUTE_NOT_CO_NDIS 0x00000100 |
|
224 #define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS 0x00000200 |
|
225 |
|
226 |
|
227 /* Lock */ |
|
228 |
|
229 typedef union _NDIS_RW_LOCK_REFCOUNT { |
|
230 UINT RefCount; |
|
231 UCHAR cacheLine[16]; |
|
232 } NDIS_RW_LOCK_REFCOUNT; |
|
233 |
|
234 typedef struct _NDIS_RW_LOCK { |
|
235 union { |
|
236 struct { |
|
237 KSPIN_LOCK SpinLock; |
|
238 PVOID Context; |
|
239 } s; |
|
240 UCHAR Reserved[16]; |
|
241 } u; |
|
242 |
|
243 NDIS_RW_LOCK_REFCOUNT RefCount[MAXIMUM_PROCESSORS]; |
|
244 } NDIS_RW_LOCK, *PNDIS_RW_LOCK; |
|
245 |
|
246 typedef struct _LOCK_STATE { |
|
247 USHORT LockState; |
|
248 KIRQL OldIrql; |
|
249 } LOCK_STATE, *PLOCK_STATE; |
|
250 |
|
251 |
|
252 |
|
253 /* Timer */ |
|
254 |
|
255 typedef VOID DDKAPI |
|
256 (*PNDIS_TIMER_FUNCTION)( |
|
257 /*IN*/ PVOID SystemSpecific1, |
|
258 /*IN*/ PVOID FunctionContext, |
|
259 /*IN*/ PVOID SystemSpecific2, |
|
260 /*IN*/ PVOID SystemSpecific3); |
|
261 |
|
262 typedef struct _NDIS_TIMER { |
|
263 KTIMER Timer; |
|
264 KDPC Dpc; |
|
265 } NDIS_TIMER, *PNDIS_TIMER; |
|
266 |
|
267 |
|
268 |
|
269 /* Hardware */ |
|
270 |
|
271 typedef CM_MCA_POS_DATA NDIS_MCA_POS_DATA, *PNDIS_MCA_POS_DATA; |
|
272 typedef CM_EISA_SLOT_INFORMATION NDIS_EISA_SLOT_INFORMATION, *PNDIS_EISA_SLOT_INFORMATION; |
|
273 typedef CM_EISA_FUNCTION_INFORMATION NDIS_EISA_FUNCTION_INFORMATION, *PNDIS_EISA_FUNCTION_INFORMATION; |
|
274 typedef CM_PARTIAL_RESOURCE_LIST NDIS_RESOURCE_LIST, *PNDIS_RESOURCE_LIST; |
|
275 |
|
276 /* Hardware status codes (OID_GEN_HARDWARE_STATUS) */ |
|
277 typedef enum _NDIS_HARDWARE_STATUS { |
|
278 NdisHardwareStatusReady, |
|
279 NdisHardwareStatusInitializing, |
|
280 NdisHardwareStatusReset, |
|
281 NdisHardwareStatusClosing, |
|
282 NdisHardwareStatusNotReady |
|
283 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; |
|
284 |
|
285 /* OID_GEN_GET_TIME_CAPS */ |
|
286 typedef struct _GEN_GET_TIME_CAPS { |
|
287 ULONG Flags; |
|
288 ULONG ClockPrecision; |
|
289 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; |
|
290 |
|
291 /* Flag bits */ |
|
292 #define READABLE_LOCAL_CLOCK 0x00000001 |
|
293 #define CLOCK_NETWORK_DERIVED 0x00000002 |
|
294 #define CLOCK_PRECISION 0x00000004 |
|
295 #define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 |
|
296 #define TIMED_SEND_CAPABLE 0x00000010 |
|
297 #define TIME_STAMP_CAPABLE 0x00000020 |
|
298 |
|
299 /* OID_GEN_GET_NETCARD_TIME */ |
|
300 typedef struct _GEN_GET_NETCARD_TIME { |
|
301 ULONGLONG ReadTime; |
|
302 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; |
|
303 |
|
304 /* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */ |
|
305 typedef enum _NDIS_MEDIUM { |
|
306 NdisMedium802_3, |
|
307 NdisMedium802_5, |
|
308 NdisMediumFddi, |
|
309 NdisMediumWan, |
|
310 NdisMediumLocalTalk, |
|
311 NdisMediumDix, |
|
312 NdisMediumArcnetRaw, |
|
313 NdisMediumArcnet878_2, |
|
314 NdisMediumAtm, |
|
315 NdisMediumWirelessWan, |
|
316 NdisMediumIrda, |
|
317 NdisMediumBpc, |
|
318 NdisMediumCoWan, |
|
319 NdisMedium1394, |
|
320 NdisMediumMax |
|
321 } NDIS_MEDIUM, *PNDIS_MEDIUM; |
|
322 |
|
323 /* NDIS packet filter bits (OID_GEN_CURRENT_PACKET_FILTER) */ |
|
324 #define NDIS_PACKET_TYPE_DIRECTED 0x00000001 |
|
325 #define NDIS_PACKET_TYPE_MULTICAST 0x00000002 |
|
326 #define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004 |
|
327 #define NDIS_PACKET_TYPE_BROADCAST 0x00000008 |
|
328 #define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010 |
|
329 #define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020 |
|
330 #define NDIS_PACKET_TYPE_SMT 0x00000040 |
|
331 #define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080 |
|
332 #define NDIS_PACKET_TYPE_GROUP 0x00001000 |
|
333 #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000 |
|
334 #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000 |
|
335 #define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000 |
|
336 |
|
337 /* NDIS protocol option bits (OID_GEN_PROTOCOL_OPTIONS) */ |
|
338 #define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001 |
|
339 #define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002 |
|
340 #define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004 |
|
341 |
|
342 /* NDIS MAC option bits (OID_GEN_MAC_OPTIONS) */ |
|
343 #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001 |
|
344 #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 |
|
345 #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 |
|
346 #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 |
|
347 #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 |
|
348 #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 |
|
349 #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 |
|
350 #define NDIS_MAC_OPTION_RESERVED 0x80000000 |
|
351 |
|
352 /* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */ |
|
353 typedef enum _NDIS_MEDIA_STATE { |
|
354 NdisMediaStateConnected, |
|
355 NdisMediaStateDisconnected |
|
356 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; |
|
357 |
|
358 /* OID_GEN_SUPPORTED_GUIDS */ |
|
359 typedef struct _NDIS_GUID { |
|
360 GUID Guid; |
|
361 union { |
|
362 NDIS_OID Oid; |
|
363 NDIS_STATUS Status; |
|
364 } u; |
|
365 ULONG Size; |
|
366 ULONG Flags; |
|
367 } NDIS_GUID, *PNDIS_GUID; |
|
368 |
|
369 #define NDIS_GUID_TO_OID 0x00000001 |
|
370 #define NDIS_GUID_TO_STATUS 0x00000002 |
|
371 #define NDIS_GUID_ANSI_STRING 0x00000004 |
|
372 #define NDIS_GUID_UNICODE_STRING 0x00000008 |
|
373 #define NDIS_GUID_ARRAY 0x00000010 |
|
374 |
|
375 |
|
376 typedef struct _NDIS_PACKET_POOL { |
|
377 NDIS_SPIN_LOCK SpinLock; |
|
378 struct _NDIS_PACKET *FreeList; |
|
379 UINT PacketLength; |
|
380 UCHAR Buffer[1]; |
|
381 } NDIS_PACKET_POOL, * PNDIS_PACKET_POOL; |
|
382 |
|
383 /* NDIS_PACKET_PRIVATE.Flags constants */ |
|
384 #define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO 0x40 |
|
385 #define fPACKET_ALLOCATED_BY_NDIS 0x80 |
|
386 |
|
387 typedef struct _NDIS_PACKET_PRIVATE { |
|
388 UINT PhysicalCount; |
|
389 UINT TotalLength; |
|
390 PNDIS_BUFFER Head; |
|
391 PNDIS_BUFFER Tail; |
|
392 PNDIS_PACKET_POOL Pool; |
|
393 UINT Count; |
|
394 ULONG Flags; |
|
395 BOOLEAN ValidCounts; |
|
396 UCHAR NdisPacketFlags; |
|
397 USHORT NdisPacketOobOffset; |
|
398 } NDIS_PACKET_PRIVATE, * PNDIS_PACKET_PRIVATE; |
|
399 |
|
400 typedef struct _NDIS_PACKET { |
|
401 NDIS_PACKET_PRIVATE Private; |
|
402 union { |
|
403 struct { |
|
404 UCHAR MiniportReserved[2 * sizeof(PVOID)]; |
|
405 UCHAR WrapperReserved[2 * sizeof(PVOID)]; |
|
406 } s1; |
|
407 struct { |
|
408 UCHAR MiniportReservedEx[3 * sizeof(PVOID)]; |
|
409 UCHAR WrapperReservedEx[sizeof(PVOID)]; |
|
410 } s2; |
|
411 struct { |
|
412 UCHAR MacReserved[4 * sizeof(PVOID)]; |
|
413 } s3; |
|
414 } u; |
|
415 ULONG_PTR Reserved[2]; |
|
416 UCHAR ProtocolReserved[1]; |
|
417 } NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET; |
|
418 |
|
419 typedef enum _NDIS_CLASS_ID { |
|
420 NdisClass802_3Priority, |
|
421 NdisClassWirelessWanMbxMailbox, |
|
422 NdisClassIrdaPacketInfo, |
|
423 NdisClassAtmAALInfo |
|
424 } NDIS_CLASS_ID; |
|
425 |
|
426 typedef struct MediaSpecificInformation { |
|
427 UINT NextEntryOffset; |
|
428 NDIS_CLASS_ID ClassId; |
|
429 UINT Size; |
|
430 UCHAR ClassInformation[1]; |
|
431 } MEDIA_SPECIFIC_INFORMATION; |
|
432 |
|
433 typedef struct _NDIS_PACKET_OOB_DATA { |
|
434 _ANONYMOUS_UNION union { |
|
435 ULONGLONG TimeToSend; |
|
436 ULONGLONG TimeSent; |
|
437 } DUMMYUNIONNAME; |
|
438 ULONGLONG TimeReceived; |
|
439 UINT HeaderSize; |
|
440 UINT SizeMediaSpecificInfo; |
|
441 PVOID MediaSpecificInformation; |
|
442 NDIS_STATUS Status; |
|
443 } NDIS_PACKET_OOB_DATA, *PNDIS_PACKET_OOB_DATA; |
|
444 |
|
445 typedef struct _NDIS_PM_PACKET_PATTERN { |
|
446 ULONG Priority; |
|
447 ULONG Reserved; |
|
448 ULONG MaskSize; |
|
449 ULONG PatternOffset; |
|
450 ULONG PatternSize; |
|
451 ULONG PatternFlags; |
|
452 } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; |
|
453 |
|
454 |
|
455 /* Request types used by NdisRequest */ |
|
456 typedef enum _NDIS_REQUEST_TYPE { |
|
457 NdisRequestQueryInformation, |
|
458 NdisRequestSetInformation, |
|
459 NdisRequestQueryStatistics, |
|
460 NdisRequestOpen, |
|
461 NdisRequestClose, |
|
462 NdisRequestSend, |
|
463 NdisRequestTransferData, |
|
464 NdisRequestReset, |
|
465 NdisRequestGeneric1, |
|
466 NdisRequestGeneric2, |
|
467 NdisRequestGeneric3, |
|
468 NdisRequestGeneric4 |
|
469 } NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE; |
|
470 |
|
471 typedef struct _NDIS_REQUEST { |
|
472 UCHAR MacReserved[4 * sizeof(PVOID)]; |
|
473 NDIS_REQUEST_TYPE RequestType; |
|
474 union _DATA { |
|
475 struct QUERY_INFORMATION { |
|
476 NDIS_OID Oid; |
|
477 PVOID InformationBuffer; |
|
478 UINT InformationBufferLength; |
|
479 UINT BytesWritten; |
|
480 UINT BytesNeeded; |
|
481 } QUERY_INFORMATION; |
|
482 struct SET_INFORMATION { |
|
483 NDIS_OID Oid; |
|
484 PVOID InformationBuffer; |
|
485 UINT InformationBufferLength; |
|
486 UINT BytesRead; |
|
487 UINT BytesNeeded; |
|
488 } SET_INFORMATION; |
|
489 } DATA; |
|
490 #if (defined(NDIS50) || defined(NDIS51)) |
|
491 UCHAR NdisReserved[9 * sizeof(PVOID)]; |
|
492 union { |
|
493 UCHAR CallMgrReserved[2 * sizeof(PVOID)]; |
|
494 UCHAR ProtocolReserved[2 * sizeof(PVOID)]; |
|
495 }; |
|
496 UCHAR MiniportReserved[2 * sizeof(PVOID)]; |
|
497 #endif |
|
498 } NDIS_REQUEST, *PNDIS_REQUEST; |
|
499 |
|
500 |
|
501 |
|
502 /* Wide Area Networks definitions */ |
|
503 |
|
504 typedef struct _NDIS_WAN_PACKET { |
|
505 LIST_ENTRY WanPacketQueue; |
|
506 PUCHAR CurrentBuffer; |
|
507 ULONG CurrentLength; |
|
508 PUCHAR StartBuffer; |
|
509 PUCHAR EndBuffer; |
|
510 PVOID ProtocolReserved1; |
|
511 PVOID ProtocolReserved2; |
|
512 PVOID ProtocolReserved3; |
|
513 PVOID ProtocolReserved4; |
|
514 PVOID MacReserved1; |
|
515 PVOID MacReserved2; |
|
516 PVOID MacReserved3; |
|
517 PVOID MacReserved4; |
|
518 } NDIS_WAN_PACKET, *PNDIS_WAN_PACKET; |
|
519 |
|
520 |
|
521 |
|
522 /* DMA channel information */ |
|
523 |
|
524 typedef struct _NDIS_DMA_DESCRIPTION { |
|
525 BOOLEAN DemandMode; |
|
526 BOOLEAN AutoInitialize; |
|
527 BOOLEAN DmaChannelSpecified; |
|
528 DMA_WIDTH DmaWidth; |
|
529 DMA_SPEED DmaSpeed; |
|
530 ULONG DmaPort; |
|
531 ULONG DmaChannel; |
|
532 } NDIS_DMA_DESCRIPTION, *PNDIS_DMA_DESCRIPTION; |
|
533 |
|
534 typedef struct _NDIS_DMA_BLOCK { |
|
535 PVOID MapRegisterBase; |
|
536 KEVENT AllocationEvent; |
|
537 PADAPTER_OBJECT SystemAdapterObject; |
|
538 PVOID Miniport; |
|
539 BOOLEAN InProgress; |
|
540 } NDIS_DMA_BLOCK, *PNDIS_DMA_BLOCK; |
|
541 |
|
542 |
|
543 /* Possible hardware architecture */ |
|
544 typedef enum _NDIS_INTERFACE_TYPE { |
|
545 NdisInterfaceInternal = Internal, |
|
546 NdisInterfaceIsa = Isa, |
|
547 NdisInterfaceEisa = Eisa, |
|
548 NdisInterfaceMca = MicroChannel, |
|
549 NdisInterfaceTurboChannel = TurboChannel, |
|
550 NdisInterfacePci = PCIBus, |
|
551 NdisInterfacePcMcia = PCMCIABus, |
|
552 NdisInterfaceCBus = CBus, |
|
553 NdisInterfaceMPIBus = MPIBus, |
|
554 NdisInterfaceMPSABus = MPSABus, |
|
555 NdisInterfaceProcessorInternal = ProcessorInternal, |
|
556 NdisInterfaceInternalPowerBus = InternalPowerBus, |
|
557 NdisInterfacePNPISABus = PNPISABus, |
|
558 NdisInterfacePNPBus = PNPBus, |
|
559 NdisMaximumInterfaceType |
|
560 } NDIS_INTERFACE_TYPE, *PNDIS_INTERFACE_TYPE; |
|
561 |
|
562 #define NdisInterruptLevelSensitive LevelSensitive |
|
563 #define NdisInterruptLatched Latched |
|
564 typedef KINTERRUPT_MODE NDIS_INTERRUPT_MODE, *PNDIS_INTERRUPT_MODE; |
|
565 |
|
566 |
|
567 typedef enum _NDIS_PARAMETER_TYPE { |
|
568 NdisParameterInteger, |
|
569 NdisParameterHexInteger, |
|
570 NdisParameterString, |
|
571 NdisParameterMultiString, |
|
572 NdisParameterBinary |
|
573 } NDIS_PARAMETER_TYPE, *PNDIS_PARAMETER_TYPE; |
|
574 |
|
575 typedef struct { |
|
576 USHORT Length; |
|
577 PVOID Buffer; |
|
578 } BINARY_DATA; |
|
579 |
|
580 typedef struct _NDIS_CONFIGURATION_PARAMETER { |
|
581 NDIS_PARAMETER_TYPE ParameterType; |
|
582 union { |
|
583 ULONG IntegerData; |
|
584 NDIS_STRING StringData; |
|
585 BINARY_DATA BinaryData; |
|
586 } ParameterData; |
|
587 } NDIS_CONFIGURATION_PARAMETER, *PNDIS_CONFIGURATION_PARAMETER; |
|
588 |
|
589 |
|
590 typedef PHYSICAL_ADDRESS NDIS_PHYSICAL_ADDRESS, *PNDIS_PHYSICAL_ADDRESS; |
|
591 |
|
592 typedef struct _NDIS_PHYSICAL_ADDRESS_UNIT { |
|
593 NDIS_PHYSICAL_ADDRESS PhysicalAddress; |
|
594 UINT Length; |
|
595 } NDIS_PHYSICAL_ADDRESS_UNIT, *PNDIS_PHYSICAL_ADDRESS_UNIT; |
|
596 |
|
597 typedef struct _NDIS_WAN_LINE_DOWN { |
|
598 UCHAR RemoteAddress[6]; |
|
599 UCHAR LocalAddress[6]; |
|
600 } NDIS_WAN_LINE_DOWN, *PNDIS_WAN_LINE_DOWN; |
|
601 |
|
602 typedef struct _NDIS_WAN_LINE_UP { |
|
603 ULONG LinkSpeed; |
|
604 ULONG MaximumTotalSize; |
|
605 NDIS_WAN_QUALITY Quality; |
|
606 USHORT SendWindow; |
|
607 UCHAR RemoteAddress[6]; |
|
608 /*OUT*/ UCHAR LocalAddress[6]; |
|
609 ULONG ProtocolBufferLength; |
|
610 PUCHAR ProtocolBuffer; |
|
611 USHORT ProtocolType; |
|
612 NDIS_STRING DeviceName; |
|
613 } NDIS_WAN_LINE_UP, *PNDIS_WAN_LINE_UP; |
|
614 |
|
615 |
|
616 typedef VOID DDKAPI |
|
617 (*ADAPTER_SHUTDOWN_HANDLER)( |
|
618 /*IN*/ PVOID ShutdownContext); |
|
619 |
|
620 |
|
621 typedef struct _OID_LIST OID_LIST, *POID_LIST; |
|
622 |
|
623 /* PnP state */ |
|
624 |
|
625 typedef enum _NDIS_PNP_DEVICE_STATE { |
|
626 NdisPnPDeviceAdded, |
|
627 NdisPnPDeviceStarted, |
|
628 NdisPnPDeviceQueryStopped, |
|
629 NdisPnPDeviceStopped, |
|
630 NdisPnPDeviceQueryRemoved, |
|
631 NdisPnPDeviceRemoved, |
|
632 NdisPnPDeviceSurpriseRemoved |
|
633 } NDIS_PNP_DEVICE_STATE; |
|
634 |
|
635 #define NDIS_DEVICE_NOT_STOPPABLE 0x00000001 |
|
636 #define NDIS_DEVICE_NOT_REMOVEABLE 0x00000002 |
|
637 #define NDIS_DEVICE_NOT_SUSPENDABLE 0x00000004 |
|
638 #define NDIS_DEVICE_DISABLE_PM 0x00000008 |
|
639 #define NDIS_DEVICE_DISABLE_WAKE_UP 0x00000010 |
|
640 #define NDIS_DEVICE_DISABLE_WAKE_ON_RECONNECT 0x00000020 |
|
641 #define NDIS_DEVICE_RESERVED 0x00000040 |
|
642 #define NDIS_DEVICE_DISABLE_WAKE_ON_MAGIC_PACKET 0x00000080 |
|
643 #define NDIS_DEVICE_DISABLE_WAKE_ON_PATTERN_MATCH 0x00000100 |
|
644 |
|
645 |
|
646 /* OID_GEN_NETWORK_LAYER_ADDRESSES */ |
|
647 typedef struct _NETWORK_ADDRESS { |
|
648 USHORT AddressLength; |
|
649 USHORT AddressType; |
|
650 UCHAR Address[1]; |
|
651 } NETWORK_ADDRESS, *PNETWORK_ADDRESS; |
|
652 |
|
653 typedef struct _NETWORK_ADDRESS_LIST { |
|
654 LONG AddressCount; |
|
655 USHORT AddressType; |
|
656 NETWORK_ADDRESS Address[1]; |
|
657 } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; |
|
658 |
|
659 /* Protocol types supported by NDIS */ |
|
660 #define NDIS_PROTOCOL_ID_DEFAULT 0x00 |
|
661 #define NDIS_PROTOCOL_ID_TCP_IP 0x02 |
|
662 #define NDIS_PROTOCOL_ID_IPX 0x06 |
|
663 #define NDIS_PROTOCOL_ID_NBF 0x07 |
|
664 #define NDIS_PROTOCOL_ID_MAX 0x0F |
|
665 #define NDIS_PROTOCOL_ID_MASK 0x0F |
|
666 |
|
667 |
|
668 /* OID_GEN_TRANSPORT_HEADER_OFFSET */ |
|
669 typedef struct _TRANSPORT_HEADER_OFFSET { |
|
670 USHORT ProtocolType; |
|
671 USHORT HeaderOffset; |
|
672 } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; |
|
673 |
|
674 |
|
675 /* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */ |
|
676 typedef struct _NDIS_CO_LINK_SPEED { |
|
677 ULONG Outbound; |
|
678 ULONG Inbound; |
|
679 } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; |
|
680 |
|
681 typedef ULONG NDIS_AF, *PNDIS_AF; |
|
682 #define CO_ADDRESS_FAMILY_Q2931 ((NDIS_AF)0x1) |
|
683 #define CO_ADDRESS_FAMILY_PSCHED ((NDIS_AF)0x2) |
|
684 #define CO_ADDRESS_FAMILY_L2TP ((NDIS_AF)0x3) |
|
685 #define CO_ADDRESS_FAMILY_IRDA ((NDIS_AF)0x4) |
|
686 #define CO_ADDRESS_FAMILY_1394 ((NDIS_AF)0x5) |
|
687 #define CO_ADDRESS_FAMILY_PPP ((NDIS_AF)0x6) |
|
688 #define CO_ADDRESS_FAMILY_TAPI ((NDIS_AF)0x800) |
|
689 #define CO_ADDRESS_FAMILY_TAPI_PROXY ((NDIS_AF)0x801) |
|
690 |
|
691 #define CO_ADDRESS_FAMILY_PROXY 0x80000000 |
|
692 |
|
693 typedef struct { |
|
694 NDIS_AF AddressFamily; |
|
695 ULONG MajorVersion; |
|
696 ULONG MinorVersion; |
|
697 } CO_ADDRESS_FAMILY, *PCO_ADDRESS_FAMILY; |
|
698 |
|
699 typedef struct _CO_FLOW_PARAMETERS { |
|
700 ULONG TokenRate; |
|
701 ULONG TokenBucketSize; |
|
702 ULONG PeakBandwidth; |
|
703 ULONG Latency; |
|
704 ULONG DelayVariation; |
|
705 SERVICETYPE ServiceType; |
|
706 ULONG MaxSduSize; |
|
707 ULONG MinimumPolicedSize; |
|
708 } CO_FLOW_PARAMETERS, *PCO_FLOW_PARAMETERS; |
|
709 |
|
710 typedef struct _CO_SPECIFIC_PARAMETERS { |
|
711 ULONG ParamType; |
|
712 ULONG Length; |
|
713 UCHAR Parameters[1]; |
|
714 } CO_SPECIFIC_PARAMETERS, *PCO_SPECIFIC_PARAMETERS; |
|
715 |
|
716 typedef struct _CO_CALL_MANAGER_PARAMETERS { |
|
717 CO_FLOW_PARAMETERS Transmit; |
|
718 CO_FLOW_PARAMETERS Receive; |
|
719 CO_SPECIFIC_PARAMETERS CallMgrSpecific; |
|
720 } CO_CALL_MANAGER_PARAMETERS, *PCO_CALL_MANAGER_PARAMETERS; |
|
721 |
|
722 /* CO_MEDIA_PARAMETERS.Flags constants */ |
|
723 #define RECEIVE_TIME_INDICATION 0x00000001 |
|
724 #define USE_TIME_STAMPS 0x00000002 |
|
725 #define TRANSMIT_VC 0x00000004 |
|
726 #define RECEIVE_VC 0x00000008 |
|
727 #define INDICATE_ERRED_PACKETS 0x00000010 |
|
728 #define INDICATE_END_OF_TX 0x00000020 |
|
729 #define RESERVE_RESOURCES_VC 0x00000040 |
|
730 #define ROUND_DOWN_FLOW 0x00000080 |
|
731 #define ROUND_UP_FLOW 0x00000100 |
|
732 |
|
733 typedef struct _CO_MEDIA_PARAMETERS { |
|
734 ULONG Flags; |
|
735 ULONG ReceivePriority; |
|
736 ULONG ReceiveSizeHint; |
|
737 CO_SPECIFIC_PARAMETERS MediaSpecific; |
|
738 } CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS; |
|
739 |
|
740 /* CO_CALL_PARAMETERS.Flags constants */ |
|
741 #define PERMANENT_VC 0x00000001 |
|
742 #define CALL_PARAMETERS_CHANGED 0x00000002 |
|
743 #define QUERY_CALL_PARAMETERS 0x00000004 |
|
744 #define BROADCAST_VC 0x00000008 |
|
745 #define MULTIPOINT_VC 0x00000010 |
|
746 |
|
747 typedef struct _CO_CALL_PARAMETERS { |
|
748 ULONG Flags; |
|
749 PCO_CALL_MANAGER_PARAMETERS CallMgrParameters; |
|
750 PCO_MEDIA_PARAMETERS MediaParameters; |
|
751 } CO_CALL_PARAMETERS, *PCO_CALL_PARAMETERS; |
|
752 |
|
753 typedef struct _CO_SAP { |
|
754 ULONG SapType; |
|
755 ULONG SapLength; |
|
756 UCHAR Sap[1]; |
|
757 } CO_SAP, *PCO_SAP; |
|
758 |
|
759 typedef struct _NDIS_IPSEC_PACKET_INFO { |
|
760 _ANONYMOUS_UNION union { |
|
761 struct { |
|
762 NDIS_HANDLE OffloadHandle; |
|
763 NDIS_HANDLE NextOffloadHandle; |
|
764 } Transmit; |
|
765 struct { |
|
766 ULONG SA_DELETE_REQ : 1; |
|
767 ULONG CRYPTO_DONE : 1; |
|
768 ULONG NEXT_CRYPTO_DONE : 1; |
|
769 ULONG CryptoStatus; |
|
770 } Receive; |
|
771 } DUMMYUNIONNAME; |
|
772 } NDIS_IPSEC_PACKET_INFO, *PNDIS_IPSEC_PACKET_INFO; |
|
773 |
|
774 /* NDIS_MAC_FRAGMENT.Errors constants */ |
|
775 #define WAN_ERROR_CRC 0x00000001 |
|
776 #define WAN_ERROR_FRAMING 0x00000002 |
|
777 #define WAN_ERROR_HARDWAREOVERRUN 0x00000004 |
|
778 #define WAN_ERROR_BUFFEROVERRUN 0x00000008 |
|
779 #define WAN_ERROR_TIMEOUT 0x00000010 |
|
780 #define WAN_ERROR_ALIGNMENT 0x00000020 |
|
781 |
|
782 typedef struct _NDIS_MAC_FRAGMENT { |
|
783 NDIS_HANDLE NdisLinkContext; |
|
784 ULONG Errors; |
|
785 } NDIS_MAC_FRAGMENT, *PNDIS_MAC_FRAGMENT; |
|
786 |
|
787 typedef struct _NDIS_MAC_LINE_DOWN { |
|
788 NDIS_HANDLE NdisLinkContext; |
|
789 } NDIS_MAC_LINE_DOWN, *PNDIS_MAC_LINE_DOWN; |
|
790 |
|
791 typedef struct _NDIS_MAC_LINE_UP { |
|
792 ULONG LinkSpeed; |
|
793 NDIS_WAN_QUALITY Quality; |
|
794 USHORT SendWindow; |
|
795 NDIS_HANDLE ConnectionWrapperID; |
|
796 NDIS_HANDLE NdisLinkHandle; |
|
797 NDIS_HANDLE NdisLinkContext; |
|
798 } NDIS_MAC_LINE_UP, *PNDIS_MAC_LINE_UP; |
|
799 |
|
800 typedef struct _NDIS_PACKET_8021Q_INFO { |
|
801 _ANONYMOUS_UNION union { |
|
802 struct { |
|
803 UINT32 UserPriority : 3; |
|
804 UINT32 CanonicalFormatId : 1; |
|
805 UINT32 VlanId : 12; |
|
806 UINT32 Reserved : 16; |
|
807 } TagHeader; |
|
808 PVOID Value; |
|
809 } DUMMYUNIONNAME; |
|
810 } NDIS_PACKET_8021Q_INFO, *PNDIS_PACKET_8021Q_INFO; |
|
811 |
|
812 typedef enum _NDIS_PER_PACKET_INFO { |
|
813 TcpIpChecksumPacketInfo, |
|
814 IpSecPacketInfo, |
|
815 TcpLargeSendPacketInfo, |
|
816 ClassificationHandlePacketInfo, |
|
817 NdisReserved, |
|
818 ScatterGatherListPacketInfo, |
|
819 Ieee8021QInfo, |
|
820 OriginalPacketInfo, |
|
821 PacketCancelId, |
|
822 MaxPerPacketInfo |
|
823 } NDIS_PER_PACKET_INFO, *PNDIS_PER_PACKET_INFO; |
|
824 |
|
825 typedef struct _NDIS_PACKET_EXTENSION { |
|
826 PVOID NdisPacketInfo[MaxPerPacketInfo]; |
|
827 } NDIS_PACKET_EXTENSION, *PNDIS_PACKET_EXTENSION; |
|
828 |
|
829 /* |
|
830 * PNDIS_PACKET |
|
831 * NDIS_GET_ORIGINAL_PACKET( |
|
832 * IN PNDIS_PACKET Packet); |
|
833 */ |
|
834 #define NDIS_GET_ORIGINAL_PACKET(Packet) \ |
|
835 NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, OriginalPacketInfo) |
|
836 |
|
837 /* |
|
838 * PVOID |
|
839 * NDIS_GET_PACKET_CANCEL_ID( |
|
840 * IN PNDIS_PACKET Packet); |
|
841 */ |
|
842 #define NDIS_GET_PACKET_CANCEL_ID(Packet) \ |
|
843 NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, PacketCancelId) |
|
844 |
|
845 /* |
|
846 * PNDIS_PACKET_EXTENSION |
|
847 * NDIS_PACKET_EXTENSION_FROM_PACKET( |
|
848 * IN PNDIS_PACKET Packet); |
|
849 */ |
|
850 #define NDIS_PACKET_EXTENSION_FROM_PACKET(Packet) \ |
|
851 ((PNDIS_PACKET_EXTENSION)((PUCHAR)(Packet) \ |
|
852 + (Packet)->Private.NdisPacketOobOffset + sizeof(NDIS_PACKET_OOB_DATA))) |
|
853 |
|
854 /* |
|
855 * PVOID |
|
856 * NDIS_PER_PACKET_INFO_FROM_PACKET( |
|
857 * IN OUT PNDIS_PACKET Packet, |
|
858 * IN NDIS_PER_PACKET_INFO InfoType); |
|
859 */ |
|
860 #define NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, InfoType) \ |
|
861 ((PNDIS_PACKET_EXTENSION)((PUCHAR)(Packet) + (Packet)->Private.NdisPacketOobOffset \ |
|
862 + sizeof(NDIS_PACKET_OOB_DATA)))->NdisPacketInfo[(InfoType)] |
|
863 |
|
864 /* |
|
865 * VOID |
|
866 * NDIS_SET_ORIGINAL_PACKET( |
|
867 * IN OUT PNDIS_PACKET Packet, |
|
868 * IN PNDIS_PACKET OriginalPacket); |
|
869 */ |
|
870 #define NDIS_SET_ORIGINAL_PACKET(Packet, OriginalPacket) \ |
|
871 NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, OriginalPacketInfo) = (OriginalPacket) |
|
872 |
|
873 /* |
|
874 * VOID |
|
875 * NDIS_SET_PACKET_CANCEL_ID( |
|
876 * IN PNDIS_PACKET Packet |
|
877 * IN ULONG_PTR CancelId); |
|
878 */ |
|
879 #define NDIS_SET_PACKET_CANCEL_ID(Packet, CancelId) \ |
|
880 NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, PacketCancelId) = (CancelId) |
|
881 |
|
882 typedef enum _NDIS_TASK { |
|
883 TcpIpChecksumNdisTask, |
|
884 IpSecNdisTask, |
|
885 TcpLargeSendNdisTask, |
|
886 MaxNdisTask |
|
887 } NDIS_TASK, *PNDIS_TASK; |
|
888 |
|
889 typedef struct _NDIS_TASK_IPSEC { |
|
890 struct { |
|
891 ULONG AH_ESP_COMBINED; |
|
892 ULONG TRANSPORT_TUNNEL_COMBINED; |
|
893 ULONG V4_OPTIONS; |
|
894 ULONG RESERVED; |
|
895 } Supported; |
|
896 |
|
897 struct { |
|
898 ULONG MD5 : 1; |
|
899 ULONG SHA_1 : 1; |
|
900 ULONG Transport : 1; |
|
901 ULONG Tunnel : 1; |
|
902 ULONG Send : 1; |
|
903 ULONG Receive : 1; |
|
904 } V4AH; |
|
905 |
|
906 struct { |
|
907 ULONG DES : 1; |
|
908 ULONG RESERVED : 1; |
|
909 ULONG TRIPLE_DES : 1; |
|
910 ULONG NULL_ESP : 1; |
|
911 ULONG Transport : 1; |
|
912 ULONG Tunnel : 1; |
|
913 ULONG Send : 1; |
|
914 ULONG Receive : 1; |
|
915 } V4ESP; |
|
916 } NDIS_TASK_IPSEC, *PNDIS_TASK_IPSEC; |
|
917 |
|
918 typedef struct _NDIS_TASK_OFFLOAD { |
|
919 ULONG Version; |
|
920 ULONG Size; |
|
921 NDIS_TASK Task; |
|
922 ULONG OffsetNextTask; |
|
923 ULONG TaskBufferLength; |
|
924 UCHAR TaskBuffer[1]; |
|
925 } NDIS_TASK_OFFLOAD, *PNDIS_TASK_OFFLOAD; |
|
926 |
|
927 /* NDIS_TASK_OFFLOAD_HEADER.Version constants */ |
|
928 #define NDIS_TASK_OFFLOAD_VERSION 1 |
|
929 |
|
930 typedef enum _NDIS_ENCAPSULATION { |
|
931 UNSPECIFIED_Encapsulation, |
|
932 NULL_Encapsulation, |
|
933 IEEE_802_3_Encapsulation, |
|
934 IEEE_802_5_Encapsulation, |
|
935 LLC_SNAP_ROUTED_Encapsulation, |
|
936 LLC_SNAP_BRIDGED_Encapsulation |
|
937 } NDIS_ENCAPSULATION; |
|
938 |
|
939 typedef struct _NDIS_ENCAPSULATION_FORMAT { |
|
940 NDIS_ENCAPSULATION Encapsulation; |
|
941 struct { |
|
942 ULONG FixedHeaderSize : 1; |
|
943 ULONG Reserved : 31; |
|
944 } Flags; |
|
945 ULONG EncapsulationHeaderSize; |
|
946 } NDIS_ENCAPSULATION_FORMAT, *PNDIS_ENCAPSULATION_FORMAT; |
|
947 |
|
948 typedef struct _NDIS_TASK_TCP_IP_CHECKSUM { |
|
949 struct { |
|
950 ULONG IpOptionsSupported:1; |
|
951 ULONG TcpOptionsSupported:1; |
|
952 ULONG TcpChecksum:1; |
|
953 ULONG UdpChecksum:1; |
|
954 ULONG IpChecksum:1; |
|
955 } V4Transmit; |
|
956 |
|
957 struct { |
|
958 ULONG IpOptionsSupported : 1; |
|
959 ULONG TcpOptionsSupported : 1; |
|
960 ULONG TcpChecksum : 1; |
|
961 ULONG UdpChecksum : 1; |
|
962 ULONG IpChecksum : 1; |
|
963 } V4Receive; |
|
964 |
|
965 struct { |
|
966 ULONG IpOptionsSupported : 1; |
|
967 ULONG TcpOptionsSupported : 1; |
|
968 ULONG TcpChecksum : 1; |
|
969 ULONG UdpChecksum : 1; |
|
970 } V6Transmit; |
|
971 |
|
972 struct { |
|
973 ULONG IpOptionsSupported : 1; |
|
974 ULONG TcpOptionsSupported : 1; |
|
975 ULONG TcpChecksum : 1; |
|
976 ULONG UdpChecksum : 1; |
|
977 } V6Receive; |
|
978 } NDIS_TASK_TCP_IP_CHECKSUM, *PNDIS_TASK_TCP_IP_CHECKSUM; |
|
979 |
|
980 typedef struct _NDIS_TASK_TCP_LARGE_SEND { |
|
981 ULONG Version; |
|
982 ULONG MaxOffLoadSize; |
|
983 ULONG MinSegmentCount; |
|
984 BOOLEAN TcpOptions; |
|
985 BOOLEAN IpOptions; |
|
986 } NDIS_TASK_TCP_LARGE_SEND, *PNDIS_TASK_TCP_LARGE_SEND; |
|
987 |
|
988 typedef struct _NDIS_TCP_IP_CHECKSUM_PACKET_INFO { |
|
989 _ANONYMOUS_UNION union { |
|
990 struct { |
|
991 ULONG NdisPacketChecksumV4 : 1; |
|
992 ULONG NdisPacketChecksumV6 : 1; |
|
993 ULONG NdisPacketTcpChecksum : 1; |
|
994 ULONG NdisPacketUdpChecksum : 1; |
|
995 ULONG NdisPacketIpChecksum : 1; |
|
996 } Transmit; |
|
997 |
|
998 struct { |
|
999 ULONG NdisPacketTcpChecksumFailed : 1; |
|
1000 ULONG NdisPacketUdpChecksumFailed : 1; |
|
1001 ULONG NdisPacketIpChecksumFailed : 1; |
|
1002 ULONG NdisPacketTcpChecksumSucceeded : 1; |
|
1003 ULONG NdisPacketUdpChecksumSucceeded : 1; |
|
1004 ULONG NdisPacketIpChecksumSucceeded : 1; |
|
1005 ULONG NdisPacketLoopback : 1; |
|
1006 } Receive; |
|
1007 ULONG Value; |
|
1008 } DUMMYUNIONNAME; |
|
1009 } NDIS_TCP_IP_CHECKSUM_PACKET_INFO, *PNDIS_TCP_IP_CHECKSUM_PACKET_INFO; |
|
1010 |
|
1011 typedef struct _NDIS_WAN_CO_FRAGMENT { |
|
1012 ULONG Errors; |
|
1013 } NDIS_WAN_CO_FRAGMENT, *PNDIS_WAN_CO_FRAGMENT; |
|
1014 |
|
1015 typedef struct _NDIS_WAN_FRAGMENT { |
|
1016 UCHAR RemoteAddress[6]; |
|
1017 UCHAR LocalAddress[6]; |
|
1018 } NDIS_WAN_FRAGMENT, *PNDIS_WAN_FRAGMENT; |
|
1019 |
|
1020 typedef struct _WAN_CO_LINKPARAMS { |
|
1021 ULONG TransmitSpeed; |
|
1022 ULONG ReceiveSpeed; |
|
1023 ULONG SendWindow; |
|
1024 } WAN_CO_LINKPARAMS, *PWAN_CO_LINKPARAMS; |
|
1025 |
|
1026 |
|
1027 /* Call Manager */ |
|
1028 |
|
1029 typedef VOID DDKAPI |
|
1030 (*CM_ACTIVATE_VC_COMPLETE_HANDLER)( |
|
1031 /*IN*/ NDIS_STATUS Status, |
|
1032 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1033 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1034 |
|
1035 typedef NDIS_STATUS DDKAPI |
|
1036 (*CM_ADD_PARTY_HANDLER)( |
|
1037 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1038 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters, |
|
1039 /*IN*/ NDIS_HANDLE NdisPartyHandle, |
|
1040 /*OUT*/ PNDIS_HANDLE CallMgrPartyContext); |
|
1041 |
|
1042 typedef NDIS_STATUS DDKAPI |
|
1043 (*CM_CLOSE_AF_HANDLER)( |
|
1044 /*IN*/ NDIS_HANDLE CallMgrAfContext); |
|
1045 |
|
1046 typedef NDIS_STATUS DDKAPI |
|
1047 (*CM_CLOSE_CALL_HANDLER)( |
|
1048 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1049 /*IN*/ NDIS_HANDLE CallMgrPartyContext /*OPTIONAL*/, |
|
1050 /*IN*/ PVOID CloseData /*OPTIONAL*/, |
|
1051 /*IN*/ UINT Size /*OPTIONAL*/); |
|
1052 |
|
1053 typedef NDIS_STATUS DDKAPI |
|
1054 (*CM_DEREG_SAP_HANDLER)( |
|
1055 /*IN*/ NDIS_HANDLE CallMgrSapContext); |
|
1056 |
|
1057 typedef VOID DDKAPI |
|
1058 (*CM_DEACTIVATE_VC_COMPLETE_HANDLER)( |
|
1059 /*IN*/ NDIS_STATUS Status, |
|
1060 /*IN*/ NDIS_HANDLE CallMgrVcContext); |
|
1061 |
|
1062 typedef NDIS_STATUS DDKAPI |
|
1063 (*CM_DROP_PARTY_HANDLER)( |
|
1064 /*IN*/ NDIS_HANDLE CallMgrPartyContext, |
|
1065 /*IN*/ PVOID CloseData /*OPTIONAL*/, |
|
1066 /*IN*/ UINT Size /*OPTIONAL*/); |
|
1067 |
|
1068 typedef VOID DDKAPI |
|
1069 (*CM_INCOMING_CALL_COMPLETE_HANDLER)( |
|
1070 /*IN*/ NDIS_STATUS Status, |
|
1071 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1072 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1073 |
|
1074 typedef NDIS_STATUS DDKAPI |
|
1075 (*CM_MAKE_CALL_HANDLER)( |
|
1076 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1077 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters, |
|
1078 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
1079 /*OUT*/ PNDIS_HANDLE CallMgrPartyContext /*OPTIONAL*/); |
|
1080 |
|
1081 typedef NDIS_STATUS DDKAPI |
|
1082 (*CM_MODIFY_CALL_QOS_HANDLER)( |
|
1083 /*IN*/ NDIS_HANDLE CallMgrVcContext, |
|
1084 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1085 |
|
1086 typedef NDIS_STATUS DDKAPI |
|
1087 (*CM_OPEN_AF_HANDLER)( |
|
1088 /*IN*/ NDIS_HANDLE CallMgrBindingContext, |
|
1089 /*IN*/ PCO_ADDRESS_FAMILY AddressFamily, |
|
1090 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
1091 /*OUT*/ PNDIS_HANDLE CallMgrAfContext); |
|
1092 |
|
1093 typedef NDIS_STATUS DDKAPI |
|
1094 (*CM_REG_SAP_HANDLER)( |
|
1095 /*IN*/ NDIS_HANDLE CallMgrAfContext, |
|
1096 /*IN*/ PCO_SAP Sap, |
|
1097 /*IN*/ NDIS_HANDLE NdisSapHandle, |
|
1098 /*OUT*/ PNDIS_HANDLE CallMgrSapContext); |
|
1099 |
|
1100 typedef NDIS_STATUS DDKAPI |
|
1101 (*CO_CREATE_VC_HANDLER)( |
|
1102 /*IN*/ NDIS_HANDLE ProtocolAfContext, |
|
1103 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
1104 /*OUT*/ PNDIS_HANDLE ProtocolVcContext); |
|
1105 |
|
1106 typedef NDIS_STATUS DDKAPI |
|
1107 (*CO_DELETE_VC_HANDLER)( |
|
1108 /*IN*/ NDIS_HANDLE ProtocolVcContext); |
|
1109 |
|
1110 typedef VOID DDKAPI |
|
1111 (*CO_REQUEST_COMPLETE_HANDLER)( |
|
1112 /*IN*/ NDIS_STATUS Status, |
|
1113 /*IN*/ NDIS_HANDLE ProtocolAfContext /*OPTIONAL*/, |
|
1114 /*IN*/ NDIS_HANDLE ProtocolVcContext /*OPTIONAL*/, |
|
1115 /*IN*/ NDIS_HANDLE ProtocolPartyContext /*OPTIONAL*/, |
|
1116 /*IN*/ PNDIS_REQUEST NdisRequest); |
|
1117 |
|
1118 typedef NDIS_STATUS DDKAPI |
|
1119 (*CO_REQUEST_HANDLER)( |
|
1120 /*IN*/ NDIS_HANDLE ProtocolAfContext, |
|
1121 /*IN*/ NDIS_HANDLE ProtocolVcContext /*OPTIONAL*/, |
|
1122 /*IN*/ NDIS_HANDLE ProtocolPartyContext /*OPTIONAL*/, |
|
1123 /*IN OUT*/ PNDIS_REQUEST NdisRequest); |
|
1124 |
|
1125 typedef struct _NDIS_CALL_MANAGER_CHARACTERISTICS { |
|
1126 UCHAR MajorVersion; |
|
1127 UCHAR MinorVersion; |
|
1128 USHORT Filler; |
|
1129 UINT Reserved; |
|
1130 CO_CREATE_VC_HANDLER CmCreateVcHandler; |
|
1131 CO_DELETE_VC_HANDLER CmDeleteVcHandler; |
|
1132 CM_OPEN_AF_HANDLER CmOpenAfHandler; |
|
1133 CM_CLOSE_AF_HANDLER CmCloseAfHandler; |
|
1134 CM_REG_SAP_HANDLER CmRegisterSapHandler; |
|
1135 CM_DEREG_SAP_HANDLER CmDeregisterSapHandler; |
|
1136 CM_MAKE_CALL_HANDLER CmMakeCallHandler; |
|
1137 CM_CLOSE_CALL_HANDLER CmCloseCallHandler; |
|
1138 CM_INCOMING_CALL_COMPLETE_HANDLER CmIncomingCallCompleteHandler; |
|
1139 CM_ADD_PARTY_HANDLER CmAddPartyHandler; |
|
1140 CM_DROP_PARTY_HANDLER CmDropPartyHandler; |
|
1141 CM_ACTIVATE_VC_COMPLETE_HANDLER CmActivateVcCompleteHandler; |
|
1142 CM_DEACTIVATE_VC_COMPLETE_HANDLER CmDeactivateVcCompleteHandler; |
|
1143 CM_MODIFY_CALL_QOS_HANDLER CmModifyCallQoSHandler; |
|
1144 CO_REQUEST_HANDLER CmRequestHandler; |
|
1145 CO_REQUEST_COMPLETE_HANDLER CmRequestCompleteHandler; |
|
1146 } NDIS_CALL_MANAGER_CHARACTERISTICS, *PNDIS_CALL_MANAGER_CHARACTERISTICS; |
|
1147 |
|
1148 |
|
1149 |
|
1150 /* Call Manager clients */ |
|
1151 |
|
1152 typedef VOID (*CL_OPEN_AF_COMPLETE_HANDLER)( |
|
1153 /*IN*/ NDIS_STATUS Status, |
|
1154 /*IN*/ NDIS_HANDLE ProtocolAfContext, |
|
1155 /*IN*/ NDIS_HANDLE NdisAfHandle); |
|
1156 |
|
1157 typedef VOID DDKAPI |
|
1158 (*CL_CLOSE_AF_COMPLETE_HANDLER)( |
|
1159 /*IN*/ NDIS_STATUS Status, |
|
1160 /*IN*/ NDIS_HANDLE ProtocolAfContext); |
|
1161 |
|
1162 typedef VOID DDKAPI |
|
1163 (*CL_REG_SAP_COMPLETE_HANDLER)( |
|
1164 /*IN*/ NDIS_STATUS Status, |
|
1165 /*IN*/ NDIS_HANDLE ProtocolSapContext, |
|
1166 /*IN*/ PCO_SAP Sap, |
|
1167 /*IN*/ NDIS_HANDLE NdisSapHandle); |
|
1168 |
|
1169 typedef VOID DDKAPI |
|
1170 (*CL_DEREG_SAP_COMPLETE_HANDLER)( |
|
1171 /*IN*/ NDIS_STATUS Status, |
|
1172 /*IN*/ NDIS_HANDLE ProtocolSapContext); |
|
1173 |
|
1174 typedef VOID DDKAPI |
|
1175 (*CL_MAKE_CALL_COMPLETE_HANDLER)( |
|
1176 /*IN*/ NDIS_STATUS Status, |
|
1177 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1178 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
1179 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1180 |
|
1181 typedef VOID DDKAPI |
|
1182 (*CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)( |
|
1183 /*IN*/ NDIS_STATUS Status, |
|
1184 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1185 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1186 |
|
1187 typedef VOID DDKAPI |
|
1188 (*CL_CLOSE_CALL_COMPLETE_HANDLER)( |
|
1189 /*IN*/ NDIS_STATUS Status, |
|
1190 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1191 /*IN*/ NDIS_HANDLE ProtocolPartyContext /*OPTIONAL*/); |
|
1192 |
|
1193 typedef VOID DDKAPI |
|
1194 (*CL_ADD_PARTY_COMPLETE_HANDLER)( |
|
1195 /*IN*/ NDIS_STATUS Status, |
|
1196 /*IN*/ NDIS_HANDLE ProtocolPartyContext, |
|
1197 /*IN*/ NDIS_HANDLE NdisPartyHandle, |
|
1198 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1199 |
|
1200 typedef VOID DDKAPI |
|
1201 (*CL_DROP_PARTY_COMPLETE_HANDLER)( |
|
1202 /*IN*/ NDIS_STATUS Status, |
|
1203 /*IN*/ NDIS_HANDLE ProtocolPartyContext); |
|
1204 |
|
1205 typedef NDIS_STATUS DDKAPI |
|
1206 (*CL_INCOMING_CALL_HANDLER)( |
|
1207 /*IN*/ NDIS_HANDLE ProtocolSapContext, |
|
1208 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1209 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters); |
|
1210 |
|
1211 typedef VOID DDKAPI |
|
1212 (*CL_INCOMING_CALL_QOS_CHANGE_HANDLER)( |
|
1213 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1214 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
1215 |
|
1216 typedef VOID DDKAPI |
|
1217 (*CL_INCOMING_CLOSE_CALL_HANDLER)( |
|
1218 /*IN*/ NDIS_STATUS CloseStatus, |
|
1219 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1220 /*IN*/ PVOID CloseData /*OPTIONAL*/, |
|
1221 /*IN*/ UINT Size /*OPTIONAL*/); |
|
1222 |
|
1223 typedef VOID DDKAPI |
|
1224 (*CL_INCOMING_DROP_PARTY_HANDLER)( |
|
1225 /*IN*/ NDIS_STATUS DropStatus, |
|
1226 /*IN*/ NDIS_HANDLE ProtocolPartyContext, |
|
1227 /*IN*/ PVOID CloseData /*OPTIONAL*/, |
|
1228 /*IN*/ UINT Size /*OPTIONAL*/); |
|
1229 |
|
1230 typedef VOID DDKAPI |
|
1231 (*CL_CALL_CONNECTED_HANDLER)( |
|
1232 /*IN*/ NDIS_HANDLE ProtocolVcContext); |
|
1233 |
|
1234 |
|
1235 typedef struct _NDIS_CLIENT_CHARACTERISTICS { |
|
1236 UCHAR MajorVersion; |
|
1237 UCHAR MinorVersion; |
|
1238 USHORT Filler; |
|
1239 UINT Reserved; |
|
1240 CO_CREATE_VC_HANDLER ClCreateVcHandler; |
|
1241 CO_DELETE_VC_HANDLER ClDeleteVcHandler; |
|
1242 CO_REQUEST_HANDLER ClRequestHandler; |
|
1243 CO_REQUEST_COMPLETE_HANDLER ClRequestCompleteHandler; |
|
1244 CL_OPEN_AF_COMPLETE_HANDLER ClOpenAfCompleteHandler; |
|
1245 CL_CLOSE_AF_COMPLETE_HANDLER ClCloseAfCompleteHandler; |
|
1246 CL_REG_SAP_COMPLETE_HANDLER ClRegisterSapCompleteHandler; |
|
1247 CL_DEREG_SAP_COMPLETE_HANDLER ClDeregisterSapCompleteHandler; |
|
1248 CL_MAKE_CALL_COMPLETE_HANDLER ClMakeCallCompleteHandler; |
|
1249 CL_MODIFY_CALL_QOS_COMPLETE_HANDLER ClModifyCallQoSCompleteHandler; |
|
1250 CL_CLOSE_CALL_COMPLETE_HANDLER ClCloseCallCompleteHandler; |
|
1251 CL_ADD_PARTY_COMPLETE_HANDLER ClAddPartyCompleteHandler; |
|
1252 CL_DROP_PARTY_COMPLETE_HANDLER ClDropPartyCompleteHandler; |
|
1253 CL_INCOMING_CALL_HANDLER ClIncomingCallHandler; |
|
1254 CL_INCOMING_CALL_QOS_CHANGE_HANDLER ClIncomingCallQoSChangeHandler; |
|
1255 CL_INCOMING_CLOSE_CALL_HANDLER ClIncomingCloseCallHandler; |
|
1256 CL_INCOMING_DROP_PARTY_HANDLER ClIncomingDropPartyHandler; |
|
1257 CL_CALL_CONNECTED_HANDLER ClCallConnectedHandler; |
|
1258 } NDIS_CLIENT_CHARACTERISTICS, *PNDIS_CLIENT_CHARACTERISTICS; |
|
1259 |
|
1260 |
|
1261 /* NDIS protocol structures */ |
|
1262 |
|
1263 /* Prototypes for NDIS 3.0 protocol characteristics */ |
|
1264 |
|
1265 typedef VOID DDKAPI |
|
1266 (*OPEN_ADAPTER_COMPLETE_HANDLER)( |
|
1267 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1268 /*IN*/ NDIS_STATUS Status, |
|
1269 /*IN*/ NDIS_STATUS OpenErrorStatus); |
|
1270 |
|
1271 typedef VOID DDKAPI |
|
1272 (*CLOSE_ADAPTER_COMPLETE_HANDLER)( |
|
1273 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1274 /*IN*/ NDIS_STATUS Status); |
|
1275 |
|
1276 typedef VOID DDKAPI |
|
1277 (*RESET_COMPLETE_HANDLER)( |
|
1278 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1279 /*IN*/ NDIS_STATUS Status); |
|
1280 |
|
1281 typedef VOID DDKAPI |
|
1282 (*REQUEST_COMPLETE_HANDLER)( |
|
1283 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1284 /*IN*/ PNDIS_REQUEST NdisRequest, |
|
1285 /*IN*/ NDIS_STATUS Status); |
|
1286 |
|
1287 typedef VOID DDKAPI |
|
1288 (*STATUS_HANDLER)( |
|
1289 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1290 /*IN*/ NDIS_STATUS GeneralStatus, |
|
1291 /*IN*/ PVOID StatusBuffer, |
|
1292 /*IN*/ UINT StatusBufferSize); |
|
1293 |
|
1294 typedef VOID DDKAPI |
|
1295 (*STATUS_COMPLETE_HANDLER)( |
|
1296 /*IN*/ NDIS_HANDLE ProtocolBindingContext); |
|
1297 |
|
1298 typedef VOID DDKAPI |
|
1299 (*SEND_COMPLETE_HANDLER)( |
|
1300 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1301 /*IN*/ PNDIS_PACKET Packet, |
|
1302 /*IN*/ NDIS_STATUS Status); |
|
1303 |
|
1304 typedef VOID DDKAPI |
|
1305 (*WAN_SEND_COMPLETE_HANDLER)( |
|
1306 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1307 /*IN*/ PNDIS_WAN_PACKET Packet, |
|
1308 /*IN*/ NDIS_STATUS Status); |
|
1309 |
|
1310 typedef VOID DDKAPI |
|
1311 (*TRANSFER_DATA_COMPLETE_HANDLER)( |
|
1312 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1313 /*IN*/ PNDIS_PACKET Packet, |
|
1314 /*IN*/ NDIS_STATUS Status, |
|
1315 /*IN*/ UINT BytesTransferred); |
|
1316 |
|
1317 typedef VOID DDKAPI |
|
1318 (*WAN_TRANSFER_DATA_COMPLETE_HANDLER)( |
|
1319 VOID); |
|
1320 |
|
1321 |
|
1322 typedef NDIS_STATUS DDKAPI |
|
1323 (*RECEIVE_HANDLER)( |
|
1324 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1325 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
1326 /*IN*/ PVOID HeaderBuffer, |
|
1327 /*IN*/ UINT HeaderBufferSize, |
|
1328 /*IN*/ PVOID LookAheadBuffer, |
|
1329 /*IN*/ UINT LookaheadBufferSize, |
|
1330 /*IN*/ UINT PacketSize); |
|
1331 |
|
1332 typedef NDIS_STATUS DDKAPI |
|
1333 (*WAN_RECEIVE_HANDLER)( |
|
1334 /*IN*/ NDIS_HANDLE NdisLinkHandle, |
|
1335 /*IN*/ PUCHAR Packet, |
|
1336 /*IN*/ ULONG PacketSize); |
|
1337 |
|
1338 typedef VOID DDKAPI |
|
1339 (*RECEIVE_COMPLETE_HANDLER)( |
|
1340 /*IN*/ NDIS_HANDLE ProtocolBindingContext); |
|
1341 |
|
1342 |
|
1343 /* Protocol characteristics for NDIS 3.0 protocols */ |
|
1344 |
|
1345 #define NDIS30_PROTOCOL_CHARACTERISTICS_S \ |
|
1346 UCHAR MajorNdisVersion; \ |
|
1347 UCHAR MinorNdisVersion; \ |
|
1348 _ANONYMOUS_UNION union { \ |
|
1349 UINT Reserved; \ |
|
1350 UINT Flags; \ |
|
1351 } DUMMYUNIONNAME; \ |
|
1352 OPEN_ADAPTER_COMPLETE_HANDLER OpenAdapterCompleteHandler; \ |
|
1353 CLOSE_ADAPTER_COMPLETE_HANDLER CloseAdapterCompleteHandler; \ |
|
1354 _ANONYMOUS_UNION union { \ |
|
1355 SEND_COMPLETE_HANDLER SendCompleteHandler; \ |
|
1356 WAN_SEND_COMPLETE_HANDLER WanSendCompleteHandler; \ |
|
1357 } DUMMYUNIONNAME2; \ |
|
1358 _ANONYMOUS_UNION union { \ |
|
1359 TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler; \ |
|
1360 WAN_TRANSFER_DATA_COMPLETE_HANDLER WanTransferDataCompleteHandler; \ |
|
1361 } DUMMYUNIONNAME3; \ |
|
1362 RESET_COMPLETE_HANDLER ResetCompleteHandler; \ |
|
1363 REQUEST_COMPLETE_HANDLER RequestCompleteHandler; \ |
|
1364 _ANONYMOUS_UNION union { \ |
|
1365 RECEIVE_HANDLER ReceiveHandler; \ |
|
1366 WAN_RECEIVE_HANDLER WanReceiveHandler; \ |
|
1367 } DUMMYUNIONNAME4; \ |
|
1368 RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler; \ |
|
1369 STATUS_HANDLER StatusHandler; \ |
|
1370 STATUS_COMPLETE_HANDLER StatusCompleteHandler; \ |
|
1371 NDIS_STRING Name; |
|
1372 |
|
1373 typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS { |
|
1374 NDIS30_PROTOCOL_CHARACTERISTICS_S |
|
1375 } NDIS30_PROTOCOL_CHARACTERISTICS, *PNDIS30_PROTOCOL_CHARACTERISTICS; |
|
1376 |
|
1377 |
|
1378 /* Prototypes for NDIS 4.0 protocol characteristics */ |
|
1379 |
|
1380 typedef INT DDKAPI |
|
1381 (*RECEIVE_PACKET_HANDLER)( |
|
1382 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1383 /*IN*/ PNDIS_PACKET Packet); |
|
1384 |
|
1385 typedef VOID DDKAPI |
|
1386 (*BIND_HANDLER)( |
|
1387 /*OUT*/ PNDIS_STATUS Status, |
|
1388 /*IN*/ NDIS_HANDLE BindContext, |
|
1389 /*IN*/ PNDIS_STRING DeviceName, |
|
1390 /*IN*/ PVOID SystemSpecific1, |
|
1391 /*IN*/ PVOID SystemSpecific2); |
|
1392 |
|
1393 typedef VOID DDKAPI |
|
1394 (*UNBIND_HANDLER)( |
|
1395 /*OUT*/ PNDIS_STATUS Status, |
|
1396 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1397 /*IN*/ NDIS_HANDLE UnbindContext); |
|
1398 |
|
1399 typedef NDIS_STATUS DDKAPI |
|
1400 (*PNP_EVENT_HANDLER)( |
|
1401 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1402 /*IN*/ PNET_PNP_EVENT NetPnPEvent); |
|
1403 |
|
1404 typedef VOID DDKAPI |
|
1405 (*UNLOAD_PROTOCOL_HANDLER)( |
|
1406 VOID); |
|
1407 |
|
1408 |
|
1409 /* Protocol characteristics for NDIS 4.0 protocols */ |
|
1410 |
|
1411 #ifdef __cplusplus |
|
1412 |
|
1413 #define NDIS40_PROTOCOL_CHARACTERISTICS_S \ |
|
1414 NDIS30_PROTOCOL_CHARACTERISTICS Ndis30Chars; \ |
|
1415 RECEIVE_PACKET_HANDLER ReceivePacketHandler; \ |
|
1416 BIND_HANDLER BindAdapterHandler; \ |
|
1417 UNBIND_HANDLER UnbindAdapterHandler; \ |
|
1418 PNP_EVENT_HANDLER PnPEventHandler; \ |
|
1419 UNLOAD_PROTOCOL_HANDLER UnloadHandler; |
|
1420 |
|
1421 #else /* !__cplusplus */ |
|
1422 |
|
1423 #define NDIS40_PROTOCOL_CHARACTERISTICS_S \ |
|
1424 NDIS30_PROTOCOL_CHARACTERISTICS_S \ |
|
1425 RECEIVE_PACKET_HANDLER ReceivePacketHandler; \ |
|
1426 BIND_HANDLER BindAdapterHandler; \ |
|
1427 UNBIND_HANDLER UnbindAdapterHandler; \ |
|
1428 PNP_EVENT_HANDLER PnPEventHandler; \ |
|
1429 UNLOAD_PROTOCOL_HANDLER UnloadHandler; |
|
1430 |
|
1431 #endif /* __cplusplus */ |
|
1432 |
|
1433 typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS { |
|
1434 NDIS40_PROTOCOL_CHARACTERISTICS_S |
|
1435 } NDIS40_PROTOCOL_CHARACTERISTICS, *PNDIS40_PROTOCOL_CHARACTERISTICS; |
|
1436 |
|
1437 /* Prototypes for NDIS 5.0 protocol characteristics */ |
|
1438 |
|
1439 typedef VOID DDKAPI |
|
1440 (*CO_SEND_COMPLETE_HANDLER)( |
|
1441 /*IN*/ NDIS_STATUS Status, |
|
1442 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1443 /*IN*/ PNDIS_PACKET Packet); |
|
1444 |
|
1445 typedef VOID DDKAPI |
|
1446 (*CO_STATUS_HANDLER)( |
|
1447 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1448 /*IN*/ NDIS_HANDLE ProtocolVcContext /*OPTIONAL*/, |
|
1449 /*IN*/ NDIS_STATUS GeneralStatus, |
|
1450 /*IN*/ PVOID StatusBuffer, |
|
1451 /*IN*/ UINT StatusBufferSize); |
|
1452 |
|
1453 typedef UINT DDKAPI |
|
1454 (*CO_RECEIVE_PACKET_HANDLER)( |
|
1455 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1456 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
1457 /*IN*/ PNDIS_PACKET Packet); |
|
1458 |
|
1459 typedef VOID DDKAPI |
|
1460 (*CO_AF_REGISTER_NOTIFY_HANDLER)( |
|
1461 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
1462 /*IN*/ PCO_ADDRESS_FAMILY AddressFamily); |
|
1463 |
|
1464 #ifdef __cplusplus \ |
|
1465 |
|
1466 #define NDIS50_PROTOCOL_CHARACTERISTICS_S \ |
|
1467 NDIS40_PROTOCOL_CHARACTERISTICS Ndis40Chars; \ |
|
1468 PVOID ReservedHandlers[4]; \ |
|
1469 CO_SEND_COMPLETE_HANDLER CoSendCompleteHandler; \ |
|
1470 CO_STATUS_HANDLER CoStatusHandler; \ |
|
1471 CO_RECEIVE_PACKET_HANDLER CoReceivePacketHandler; \ |
|
1472 CO_AF_REGISTER_NOTIFY_HANDLER CoAfRegisterNotifyHandler; |
|
1473 |
|
1474 #else /* !__cplusplus */ |
|
1475 |
|
1476 #define NDIS50_PROTOCOL_CHARACTERISTICS_S \ |
|
1477 NDIS40_PROTOCOL_CHARACTERISTICS_S \ |
|
1478 PVOID ReservedHandlers[4]; \ |
|
1479 CO_SEND_COMPLETE_HANDLER CoSendCompleteHandler; \ |
|
1480 CO_STATUS_HANDLER CoStatusHandler; \ |
|
1481 CO_RECEIVE_PACKET_HANDLER CoReceivePacketHandler; \ |
|
1482 CO_AF_REGISTER_NOTIFY_HANDLER CoAfRegisterNotifyHandler; |
|
1483 |
|
1484 #endif /* !__cplusplus */ |
|
1485 |
|
1486 typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS { |
|
1487 NDIS50_PROTOCOL_CHARACTERISTICS_S |
|
1488 } NDIS50_PROTOCOL_CHARACTERISTICS, *PNDIS50_PROTOCOL_CHARACTERISTICS; |
|
1489 |
|
1490 #if defined(NDIS50) || defined(NDIS51) |
|
1491 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS { |
|
1492 NDIS50_PROTOCOL_CHARACTERISTICS_S; |
|
1493 } NDIS_PROTOCOL_CHARACTERISTICS, *PNDIS_PROTOCOL_CHARACTERISTICS; |
|
1494 #elif defined(NDIS40) |
|
1495 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS { |
|
1496 NDIS40_PROTOCOL_CHARACTERISTICS_S; |
|
1497 } NDIS_PROTOCOL_CHARACTERISTICS, *PNDIS_PROTOCOL_CHARACTERISTICS; |
|
1498 #elif defined(NDIS30) |
|
1499 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS { |
|
1500 NDIS30_PROTOCOL_CHARACTERISTICS_S |
|
1501 } NDIS_PROTOCOL_CHARACTERISTICS, *PNDIS_PROTOCOL_CHARACTERISTICS; |
|
1502 #else |
|
1503 #error Define an NDIS version |
|
1504 #endif /* NDIS30 */ |
|
1505 |
|
1506 |
|
1507 |
|
1508 /* Buffer management routines */ |
|
1509 |
|
1510 NDISAPI |
|
1511 VOID |
|
1512 DDKAPI |
|
1513 NdisAllocateBuffer( |
|
1514 /*OUT*/ PNDIS_STATUS Status, |
|
1515 /*OUT*/ PNDIS_BUFFER *Buffer, |
|
1516 /*IN*/ NDIS_HANDLE PoolHandle, |
|
1517 /*IN*/ PVOID VirtualAddress, |
|
1518 /*IN*/ UINT Length); |
|
1519 |
|
1520 |
|
1521 NDISAPI |
|
1522 VOID |
|
1523 DDKAPI |
|
1524 NdisAllocateBufferPool( |
|
1525 /*OUT*/ PNDIS_STATUS Status, |
|
1526 /*OUT*/ PNDIS_HANDLE PoolHandle, |
|
1527 /*IN*/ UINT NumberOfDescriptors); |
|
1528 |
|
1529 NDISAPI |
|
1530 VOID |
|
1531 DDKAPI |
|
1532 NdisAllocatePacket( |
|
1533 /*OUT*/ PNDIS_STATUS Status, |
|
1534 /*OUT*/ PNDIS_PACKET *Packet, |
|
1535 /*IN*/ NDIS_HANDLE PoolHandle); |
|
1536 |
|
1537 NDISAPI |
|
1538 VOID |
|
1539 DDKAPI |
|
1540 NdisAllocatePacketPool( |
|
1541 /*OUT*/ PNDIS_STATUS Status, |
|
1542 /*OUT*/ PNDIS_HANDLE PoolHandle, |
|
1543 /*IN*/ UINT NumberOfDescriptors, |
|
1544 /*IN*/ UINT ProtocolReservedLength); |
|
1545 |
|
1546 NDISAPI |
|
1547 VOID |
|
1548 DDKAPI |
|
1549 NdisCopyBuffer( |
|
1550 /*OUT*/ PNDIS_STATUS Status, |
|
1551 /*OUT*/ PNDIS_BUFFER *Buffer, |
|
1552 /*IN*/ NDIS_HANDLE PoolHandle, |
|
1553 /*IN*/ PVOID MemoryDescriptor, |
|
1554 /*IN*/ UINT Offset, |
|
1555 /*IN*/ UINT Length); |
|
1556 |
|
1557 NDISAPI |
|
1558 VOID |
|
1559 DDKAPI |
|
1560 NdisCopyFromPacketToPacket( |
|
1561 /*IN*/ PNDIS_PACKET Destination, |
|
1562 /*IN*/ UINT DestinationOffset, |
|
1563 /*IN*/ UINT BytesToCopy, |
|
1564 /*IN*/ PNDIS_PACKET Source, |
|
1565 /*IN*/ UINT SourceOffset, |
|
1566 /*OUT*/ PUINT BytesCopied); |
|
1567 |
|
1568 NDISAPI |
|
1569 VOID |
|
1570 DDKAPI |
|
1571 NdisDprAllocatePacket( |
|
1572 /*OUT*/ PNDIS_STATUS Status, |
|
1573 /*OUT*/ PNDIS_PACKET *Packet, |
|
1574 /*IN*/ NDIS_HANDLE PoolHandle); |
|
1575 |
|
1576 NDISAPI |
|
1577 VOID |
|
1578 DDKAPI |
|
1579 NdisDprAllocatePacketNonInterlocked( |
|
1580 /*OUT*/ PNDIS_STATUS Status, |
|
1581 /*OUT*/ PNDIS_PACKET *Packet, |
|
1582 /*IN*/ NDIS_HANDLE PoolHandle); |
|
1583 |
|
1584 NDISAPI |
|
1585 VOID |
|
1586 DDKAPI |
|
1587 NdisDprFreePacket( |
|
1588 /*IN*/ PNDIS_PACKET Packet); |
|
1589 |
|
1590 NDISAPI |
|
1591 VOID |
|
1592 DDKAPI |
|
1593 NdisDprFreePacketNonInterlocked( |
|
1594 /*IN*/ PNDIS_PACKET Packet); |
|
1595 |
|
1596 NDISAPI |
|
1597 VOID |
|
1598 DDKAPI |
|
1599 NdisFreeBufferPool( |
|
1600 /*IN*/ NDIS_HANDLE PoolHandle); |
|
1601 |
|
1602 NDISAPI |
|
1603 VOID |
|
1604 DDKAPI |
|
1605 NdisFreePacket( |
|
1606 /*IN*/ PNDIS_PACKET Packet); |
|
1607 |
|
1608 NDISAPI |
|
1609 VOID |
|
1610 DDKAPI |
|
1611 NdisFreePacketPool( |
|
1612 /*IN*/ NDIS_HANDLE PoolHandle); |
|
1613 |
|
1614 NDISAPI |
|
1615 VOID |
|
1616 DDKAPI |
|
1617 NdisReturnPackets( |
|
1618 /*IN*/ PNDIS_PACKET *PacketsToReturn, |
|
1619 /*IN*/ UINT NumberOfPackets); |
|
1620 |
|
1621 NDISAPI |
|
1622 VOID |
|
1623 DDKAPI |
|
1624 NdisUnchainBufferAtBack( |
|
1625 /*IN OUT*/ PNDIS_PACKET Packet, |
|
1626 /*OUT*/ PNDIS_BUFFER *Buffer); |
|
1627 |
|
1628 NDISAPI |
|
1629 VOID |
|
1630 DDKAPI |
|
1631 NdisUnchainBufferAtFront( |
|
1632 /*IN OUT*/ PNDIS_PACKET Packet, |
|
1633 /*OUT*/ PNDIS_BUFFER *Buffer); |
|
1634 |
|
1635 NDISAPI |
|
1636 VOID |
|
1637 DDKAPI |
|
1638 NdisAdjustBufferLength( |
|
1639 /*IN*/ PNDIS_BUFFER Buffer, |
|
1640 /*IN*/ UINT Length); |
|
1641 |
|
1642 NDISAPI |
|
1643 ULONG |
|
1644 DDKAPI |
|
1645 NdisBufferLength( |
|
1646 /*IN*/ PNDIS_BUFFER Buffer); |
|
1647 |
|
1648 NDISAPI |
|
1649 PVOID |
|
1650 DDKAPI |
|
1651 NdisBufferVirtualAddress( |
|
1652 /*IN*/ PNDIS_BUFFER Buffer); |
|
1653 |
|
1654 NDISAPI |
|
1655 ULONG |
|
1656 DDKAPI |
|
1657 NDIS_BUFFER_TO_SPAN_PAGES( |
|
1658 /*IN*/ PNDIS_BUFFER Buffer); |
|
1659 |
|
1660 NDISAPI |
|
1661 VOID |
|
1662 DDKAPI |
|
1663 NdisFreeBuffer( |
|
1664 /*IN*/ PNDIS_BUFFER Buffer); |
|
1665 |
|
1666 NDISAPI |
|
1667 VOID |
|
1668 DDKAPI |
|
1669 NdisGetBufferPhysicalArraySize( |
|
1670 /*IN*/ PNDIS_BUFFER Buffer, |
|
1671 /*OUT*/ PUINT ArraySize); |
|
1672 |
|
1673 NDISAPI |
|
1674 VOID |
|
1675 DDKAPI |
|
1676 NdisGetFirstBufferFromPacket( |
|
1677 /*IN*/ PNDIS_PACKET _Packet, |
|
1678 /*OUT*/ PNDIS_BUFFER *_FirstBuffer, |
|
1679 /*OUT*/ PVOID *_FirstBufferVA, |
|
1680 /*OUT*/ PUINT _FirstBufferLength, |
|
1681 /*OUT*/ PUINT _TotalBufferLength); |
|
1682 |
|
1683 NDISAPI |
|
1684 VOID |
|
1685 DDKAPI |
|
1686 NdisQueryBuffer( |
|
1687 /*IN*/ PNDIS_BUFFER Buffer, |
|
1688 /*OUT*/ PVOID *VirtualAddress /*OPTIONAL*/, |
|
1689 /*OUT*/ PUINT Length); |
|
1690 |
|
1691 NDISAPI |
|
1692 VOID |
|
1693 DDKAPI |
|
1694 NdisQueryBufferOffset( |
|
1695 /*IN*/ PNDIS_BUFFER Buffer, |
|
1696 /*OUT*/ PUINT Offset, |
|
1697 /*OUT*/ PUINT Length); |
|
1698 |
|
1699 NDISAPI |
|
1700 VOID |
|
1701 DDKAPI |
|
1702 NdisFreeBuffer( |
|
1703 /*IN*/ PNDIS_BUFFER Buffer); |
|
1704 |
|
1705 |
|
1706 /* |
|
1707 * VOID |
|
1708 * NdisGetBufferPhysicalArraySize( |
|
1709 * IN PNDIS_BUFFER Buffer, |
|
1710 * OUT PUINT ArraySize); |
|
1711 */ |
|
1712 #define NdisGetBufferPhysicalArraySize(Buffer, \ |
|
1713 ArraySize) \ |
|
1714 { \ |
|
1715 (*(ArraySize) = NDIS_BUFFER_TO_SPAN_PAGES(Buffer)) \ |
|
1716 } |
|
1717 |
|
1718 |
|
1719 /* |
|
1720 * VOID |
|
1721 * NdisGetFirstBufferFromPacket( |
|
1722 * IN PNDIS_PACKET _Packet, |
|
1723 * OUT PNDIS_BUFFER * _FirstBuffer, |
|
1724 * OUT PVOID * _FirstBufferVA, |
|
1725 * OUT PUINT _FirstBufferLength, |
|
1726 * OUT PUINT _TotalBufferLength) |
|
1727 */ |
|
1728 #define NdisGetFirstBufferFromPacket(_Packet, \ |
|
1729 _FirstBuffer, \ |
|
1730 _FirstBufferVA, \ |
|
1731 _FirstBufferLength, \ |
|
1732 _TotalBufferLength) \ |
|
1733 { \ |
|
1734 PNDIS_BUFFER _Buffer; \ |
|
1735 \ |
|
1736 _Buffer = (_Packet)->Private.Head; \ |
|
1737 *(_FirstBuffer) = _Buffer; \ |
|
1738 if (_Buffer != NULL) \ |
|
1739 { \ |
|
1740 *(_FirstBufferVA) = MmGetSystemAddressForMdl(_Buffer); \ |
|
1741 *(_FirstBufferLength) = MmGetMdlByteCount(_Buffer); \ |
|
1742 _Buffer = _Buffer->Next; \ |
|
1743 *(_TotalBufferLength) = *(_FirstBufferLength); \ |
|
1744 while (_Buffer != NULL) { \ |
|
1745 *(_TotalBufferLength) += MmGetMdlByteCount(_Buffer); \ |
|
1746 _Buffer = _Buffer->Next; \ |
|
1747 } \ |
|
1748 } \ |
|
1749 else \ |
|
1750 { \ |
|
1751 *(_FirstBufferVA) = 0; \ |
|
1752 *(_FirstBufferLength) = 0; \ |
|
1753 *(_TotalBufferLength) = 0; \ |
|
1754 } \ |
|
1755 } |
|
1756 |
|
1757 /* |
|
1758 * VOID |
|
1759 * NdisQueryBuffer( |
|
1760 * IN PNDIS_BUFFER Buffer, |
|
1761 * OUT PVOID *VirtualAddress OPTIONAL, |
|
1762 * OUT PUINT Length) |
|
1763 */ |
|
1764 #define NdisQueryBuffer(Buffer, \ |
|
1765 VirtualAddress, \ |
|
1766 Length) \ |
|
1767 { \ |
|
1768 if (VirtualAddress) \ |
|
1769 *((PVOID*)VirtualAddress) = MmGetSystemAddressForMdl(Buffer); \ |
|
1770 \ |
|
1771 *((PUINT)Length) = MmGetMdlByteCount(Buffer); \ |
|
1772 } |
|
1773 |
|
1774 |
|
1775 /* |
|
1776 * VOID |
|
1777 * NdisQueryBufferOffset( |
|
1778 * IN PNDIS_BUFFER Buffer, |
|
1779 * OUT PUINT Offset, |
|
1780 * OUT PUINT Length); |
|
1781 */ |
|
1782 #define NdisQueryBufferOffset(Buffer, \ |
|
1783 Offset, \ |
|
1784 Length) \ |
|
1785 { \ |
|
1786 *((PUINT)Offset) = MmGetMdlByteOffset(Buffer); \ |
|
1787 *((PUINT)Length) = MmGetMdlByteCount(Buffer); \ |
|
1788 } |
|
1789 |
|
1790 |
|
1791 /* |
|
1792 * PVOID |
|
1793 * NDIS_BUFFER_LINKAGE( |
|
1794 * IN PNDIS_BUFFER Buffer); |
|
1795 */ |
|
1796 #define NDIS_BUFFER_LINKAGE(Buffer)(Buffer)->Next; |
|
1797 |
|
1798 |
|
1799 /* |
|
1800 * VOID |
|
1801 * NdisChainBufferAtBack( |
|
1802 * IN OUT PNDIS_PACKET Packet, |
|
1803 * IN OUT PNDIS_BUFFER Buffer) |
|
1804 */ |
|
1805 #define NdisChainBufferAtBack(Packet, \ |
|
1806 Buffer) \ |
|
1807 { \ |
|
1808 PNDIS_BUFFER NdisBuffer = (Buffer); \ |
|
1809 \ |
|
1810 while (NdisBuffer->Next != NULL) \ |
|
1811 NdisBuffer = NdisBuffer->Next; \ |
|
1812 \ |
|
1813 NdisBuffer->Next = NULL; \ |
|
1814 \ |
|
1815 if ((Packet)->Private.Head != NULL) \ |
|
1816 (Packet)->Private.Tail->Next = (Buffer); \ |
|
1817 else \ |
|
1818 (Packet)->Private.Head = (Buffer); \ |
|
1819 \ |
|
1820 (Packet)->Private.Tail = NdisBuffer; \ |
|
1821 (Packet)->Private.ValidCounts = FALSE; \ |
|
1822 } |
|
1823 |
|
1824 |
|
1825 /* |
|
1826 * VOID |
|
1827 * NdisChainBufferAtFront( |
|
1828 * IN OUT PNDIS_PACKET Packet, |
|
1829 * IN OUT PNDIS_BUFFER Buffer) |
|
1830 */ |
|
1831 #define NdisChainBufferAtFront(Packet, \ |
|
1832 Buffer) \ |
|
1833 { \ |
|
1834 PNDIS_BUFFER _NdisBuffer = (Buffer); \ |
|
1835 \ |
|
1836 while (_NdisBuffer->Next != NULL) \ |
|
1837 _NdisBuffer = _NdisBuffer->Next; \ |
|
1838 \ |
|
1839 if ((Packet)->Private.Head == NULL) \ |
|
1840 (Packet)->Private.Tail = _NdisBuffer; \ |
|
1841 \ |
|
1842 _NdisBuffer->Next = (Packet)->Private.Head; \ |
|
1843 (Packet)->Private.Head = (Buffer); \ |
|
1844 (Packet)->Private.ValidCounts = FALSE; \ |
|
1845 } |
|
1846 |
|
1847 |
|
1848 /* |
|
1849 * VOID |
|
1850 * NdisGetNextBuffer( |
|
1851 * IN PNDIS_BUFFER CurrentBuffer, |
|
1852 * OUT PNDIS_BUFFER * NextBuffer) |
|
1853 */ |
|
1854 #define NdisGetNextBuffer(CurrentBuffer, \ |
|
1855 NextBuffer) \ |
|
1856 { \ |
|
1857 *(NextBuffer) = (CurrentBuffer)->Next; \ |
|
1858 } |
|
1859 |
|
1860 |
|
1861 /* |
|
1862 * UINT |
|
1863 * NdisGetPacketFlags( |
|
1864 * IN PNDIS_PACKET Packet); |
|
1865 */ |
|
1866 #define NdisGetPacketFlags(Packet)(Packet)->Private.Flags; |
|
1867 |
|
1868 |
|
1869 /* |
|
1870 * VOID |
|
1871 * NdisClearPacketFlags( |
|
1872 * IN PNDIS_PACKET Packet, |
|
1873 * IN UINT Flags); |
|
1874 */ |
|
1875 #define NdisClearPacketFlags(Packet, Flags) \ |
|
1876 (Packet)->Private.Flags &= ~(Flags) |
|
1877 |
|
1878 |
|
1879 /* |
|
1880 * VOID |
|
1881 * NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO( |
|
1882 * IN PNDIS_PACKET Packet, |
|
1883 * IN PPVOID pMediaSpecificInfo, |
|
1884 * IN PUINT pSizeMediaSpecificInfo); |
|
1885 */ |
|
1886 #define NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(_Packet, \ |
|
1887 _pMediaSpecificInfo, \ |
|
1888 _pSizeMediaSpecificInfo) \ |
|
1889 { \ |
|
1890 if (!((_Packet)->Private.NdisPacketFlags & fPACKET_ALLOCATED_BY_NDIS) || \ |
|
1891 !((_Packet)->Private.NdisPacketFlags & fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO)) \ |
|
1892 { \ |
|
1893 *(_pMediaSpecificInfo) = NULL; \ |
|
1894 *(_pSizeMediaSpecificInfo) = 0; \ |
|
1895 } \ |
|
1896 else \ |
|
1897 { \ |
|
1898 *(_pMediaSpecificInfo) = ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1899 (_Packet)->Private.NdisPacketOobOffset))->MediaSpecificInformation; \ |
|
1900 *(_pSizeMediaSpecificInfo) = ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1901 (_Packet)->Private.NdisPacketOobOffset))->SizeMediaSpecificInfo; \ |
|
1902 } \ |
|
1903 } |
|
1904 |
|
1905 |
|
1906 /* |
|
1907 * ULONG |
|
1908 * NDIS_GET_PACKET_PROTOCOL_TYPE( |
|
1909 * IN PNDIS_PACKET Packet); |
|
1910 */ |
|
1911 #define NDIS_GET_PACKET_PROTOCOL_TYPE(_Packet) \ |
|
1912 ((_Packet)->Private.Flags & NDIS_PROTOCOL_ID_MASK) |
|
1913 |
|
1914 /* |
|
1915 * ULONG |
|
1916 * NDIS_GET_PACKET_HEADER_SIZE( |
|
1917 * IN PNDIS_PACKET Packet); |
|
1918 */ |
|
1919 #define NDIS_GET_PACKET_HEADER_SIZE(_Packet) \ |
|
1920 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1921 (_Packet)->Private.NdisPacketOobOffset))->HeaderSize |
|
1922 |
|
1923 |
|
1924 /* |
|
1925 * NDIS_STATUS |
|
1926 * NDIS_GET_PACKET_STATUS( |
|
1927 * IN PNDIS_PACKET Packet); |
|
1928 */ |
|
1929 #define NDIS_GET_PACKET_STATUS(_Packet) \ |
|
1930 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1931 (_Packet)->Private.NdisPacketOobOffset))->Status |
|
1932 |
|
1933 |
|
1934 /* |
|
1935 * ULONGLONG |
|
1936 * NDIS_GET_PACKET_TIME_RECEIVED( |
|
1937 * IN PNDIS_PACKET Packet); |
|
1938 */ |
|
1939 #define NDIS_GET_PACKET_TIME_RECEIVED(_Packet) \ |
|
1940 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1941 (_Packet)->Private.NdisPacketOobOffset))->TimeReceived |
|
1942 |
|
1943 |
|
1944 /* |
|
1945 * ULONGLONG |
|
1946 * NDIS_GET_PACKET_TIME_SENT( |
|
1947 * IN PNDIS_PACKET Packet); |
|
1948 */ |
|
1949 #define NDIS_GET_PACKET_TIME_SENT(_Packet) \ |
|
1950 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1951 (_Packet)->Private.NdisPacketOobOffset))->TimeSent |
|
1952 |
|
1953 |
|
1954 /* |
|
1955 * ULONGLONG |
|
1956 * NDIS_GET_PACKET_TIME_TO_SEND( |
|
1957 * IN PNDIS_PACKET Packet); |
|
1958 */ |
|
1959 #define NDIS_GET_PACKET_TIME_TO_SEND(_Packet) \ |
|
1960 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1961 (_Packet)->Private.NdisPacketOobOffset))->TimeToSend |
|
1962 |
|
1963 |
|
1964 /* |
|
1965 * PNDIS_PACKET_OOB_DATA |
|
1966 * NDIS_OOB_DATA_FROM_PACKET( |
|
1967 * IN PNDIS_PACKET Packet); |
|
1968 */ |
|
1969 #define NDIS_OOB_DATA_FROM_PACKET(_Packet) \ |
|
1970 (PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
1971 (_Packet)->Private.NdisPacketOobOffset) |
|
1972 |
|
1973 |
|
1974 /* |
|
1975 * VOID |
|
1976 * NdisQueryPacket( |
|
1977 * IN PNDIS_PACKET Packet, |
|
1978 * OUT PUINT PhysicalBufferCount OPTIONAL, |
|
1979 * OUT PUINT BufferCount OPTIONAL, |
|
1980 * OUT PNDIS_BUFFER *FirstBuffer OPTIONAL, |
|
1981 * OUT PUINT TotalPacketLength OPTIONAL); |
|
1982 */ |
|
1983 #define NdisQueryPacket(Packet, \ |
|
1984 PhysicalBufferCount, \ |
|
1985 BufferCount, \ |
|
1986 FirstBuffer, \ |
|
1987 TotalPacketLength) \ |
|
1988 { \ |
|
1989 if (FirstBuffer) \ |
|
1990 *((PNDIS_BUFFER*)FirstBuffer) = (Packet)->Private.Head; \ |
|
1991 if ((TotalPacketLength) || (BufferCount) || (PhysicalBufferCount)) \ |
|
1992 { \ |
|
1993 if (!(Packet)->Private.ValidCounts) { \ |
|
1994 UINT _Offset; \ |
|
1995 UINT _PacketLength; \ |
|
1996 PNDIS_BUFFER _NdisBuffer; \ |
|
1997 UINT _PhysicalBufferCount = 0; \ |
|
1998 UINT _TotalPacketLength = 0; \ |
|
1999 UINT _Count = 0; \ |
|
2000 \ |
|
2001 for (_NdisBuffer = (Packet)->Private.Head; \ |
|
2002 _NdisBuffer != (PNDIS_BUFFER)NULL; \ |
|
2003 _NdisBuffer = _NdisBuffer->Next) \ |
|
2004 { \ |
|
2005 _PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer); \ |
|
2006 NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength); \ |
|
2007 _TotalPacketLength += _PacketLength; \ |
|
2008 _Count++; \ |
|
2009 } \ |
|
2010 (Packet)->Private.PhysicalCount = _PhysicalBufferCount; \ |
|
2011 (Packet)->Private.TotalLength = _TotalPacketLength; \ |
|
2012 (Packet)->Private.Count = _Count; \ |
|
2013 (Packet)->Private.ValidCounts = TRUE; \ |
|
2014 } \ |
|
2015 \ |
|
2016 if (PhysicalBufferCount) \ |
|
2017 *((PUINT)PhysicalBufferCount) = (Packet)->Private.PhysicalCount; \ |
|
2018 \ |
|
2019 if (BufferCount) \ |
|
2020 *((PUINT)BufferCount) = (Packet)->Private.Count; \ |
|
2021 \ |
|
2022 if (TotalPacketLength) \ |
|
2023 *((PUINT)TotalPacketLength) = (Packet)->Private.TotalLength; \ |
|
2024 } \ |
|
2025 } |
|
2026 |
|
2027 /* |
|
2028 * VOID |
|
2029 * NdisQueryPacketLength( |
|
2030 * IN PNDIS_PACKET Packet, |
|
2031 * OUT PUINT PhysicalBufferCount OPTIONAL, |
|
2032 * OUT PUINT BufferCount OPTIONAL, |
|
2033 * OUT PNDIS_BUFFER *FirstBuffer OPTIONAL, |
|
2034 * OUT PUINT TotalPacketLength OPTIONAL); |
|
2035 */ |
|
2036 #define NdisQueryPacketLength(Packet, \ |
|
2037 TotalPacketLength) \ |
|
2038 { \ |
|
2039 if ((TotalPacketLength)) \ |
|
2040 { \ |
|
2041 if (!(Packet)->Private.ValidCounts) { \ |
|
2042 UINT _Offset; \ |
|
2043 UINT _PacketLength; \ |
|
2044 PNDIS_BUFFER _NdisBuffer; \ |
|
2045 UINT _PhysicalBufferCount = 0; \ |
|
2046 UINT _TotalPacketLength = 0; \ |
|
2047 UINT _Count = 0; \ |
|
2048 \ |
|
2049 for (_NdisBuffer = (Packet)->Private.Head; \ |
|
2050 _NdisBuffer != (PNDIS_BUFFER)NULL; \ |
|
2051 _NdisBuffer = _NdisBuffer->Next) \ |
|
2052 { \ |
|
2053 _PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer); \ |
|
2054 NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength); \ |
|
2055 _TotalPacketLength += _PacketLength; \ |
|
2056 _Count++; \ |
|
2057 } \ |
|
2058 (Packet)->Private.PhysicalCount = _PhysicalBufferCount; \ |
|
2059 (Packet)->Private.TotalLength = _TotalPacketLength; \ |
|
2060 (Packet)->Private.Count = _Count; \ |
|
2061 (Packet)->Private.ValidCounts = TRUE; \ |
|
2062 } \ |
|
2063 \ |
|
2064 if (TotalPacketLength) \ |
|
2065 *((PUINT)TotalPacketLength) = (Packet)->Private.TotalLength; \ |
|
2066 } \ |
|
2067 } |
|
2068 |
|
2069 |
|
2070 /* |
|
2071 * VOID |
|
2072 * NdisRecalculatePacketCounts( |
|
2073 * IN OUT PNDIS_PACKET Packet); |
|
2074 */ |
|
2075 #define NdisRecalculatePacketCounts(Packet) \ |
|
2076 { \ |
|
2077 PNDIS_BUFFER _Buffer = (Packet)->Private.Head; \ |
|
2078 if (_Buffer != NULL) \ |
|
2079 { \ |
|
2080 while (_Buffer->Next != NULL) \ |
|
2081 { \ |
|
2082 ´_Buffer = _Buffer->Next; \ |
|
2083 } \ |
|
2084 (Packet)->Private.Tail = _Buffer; \ |
|
2085 } \ |
|
2086 (Packet)->Private.ValidCounts = FALSE; \ |
|
2087 } |
|
2088 |
|
2089 |
|
2090 /* |
|
2091 * VOID |
|
2092 * NdisReinitializePacket( |
|
2093 * IN OUT PNDIS_PACKET Packet); |
|
2094 */ |
|
2095 #define NdisReinitializePacketCounts(Packet) \ |
|
2096 { \ |
|
2097 (Packet)->Private.Head = (PNDIS_BUFFER)NULL; \ |
|
2098 (Packet)->Private.ValidCounts = FALSE; \ |
|
2099 } |
|
2100 |
|
2101 |
|
2102 /* |
|
2103 * VOID |
|
2104 * NdisSetPacketFlags( |
|
2105 * IN PNDIS_PACKET Packet, |
|
2106 * IN UINT Flags); |
|
2107 */ |
|
2108 #define NdisSetPacketFlags(Packet, Flags) \ |
|
2109 (Packet)->Private.Flags |= (Flags); |
|
2110 |
|
2111 |
|
2112 /* |
|
2113 * VOID |
|
2114 * NDIS_SET_PACKET_HEADER_SIZE( |
|
2115 * IN PNDIS_PACKET Packet, |
|
2116 * IN UINT HdrSize); |
|
2117 */ |
|
2118 #define NDIS_SET_PACKET_HEADER_SIZE(_Packet, _HdrSize) \ |
|
2119 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2120 (_Packet)->Private.NdisPacketOobOffset))->HeaderSize = (_HdrSize) |
|
2121 |
|
2122 |
|
2123 /* |
|
2124 * VOID |
|
2125 * NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO( |
|
2126 * IN PNDIS_PACKET Packet, |
|
2127 * IN PVOID MediaSpecificInfo, |
|
2128 * IN UINT SizeMediaSpecificInfo); |
|
2129 */ |
|
2130 #define NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(_Packet, \ |
|
2131 _MediaSpecificInfo, \ |
|
2132 _SizeMediaSpecificInfo) \ |
|
2133 { \ |
|
2134 if ((_Packet)->Private.NdisPacketFlags & fPACKET_ALLOCATED_BY_NDIS) \ |
|
2135 { \ |
|
2136 (_Packet)->Private.NdisPacketFlags |= fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO; \ |
|
2137 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2138 (_Packet)->Private.NdisPacketOobOffset))->MediaSpecificInformation = \ |
|
2139 (_MediaSpecificInfo); \ |
|
2140 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2141 (_Packet)->Private.NdisPacketOobOffset))->SizeMediaSpecificInfo = \ |
|
2142 (_SizeMediaSpecificInfo); \ |
|
2143 } \ |
|
2144 } |
|
2145 |
|
2146 |
|
2147 /* |
|
2148 * VOID |
|
2149 * NDIS_SET_PACKET_STATUS( |
|
2150 * IN PNDIS_PACKET Packet, |
|
2151 * IN NDIS_STATUS Status); |
|
2152 */ |
|
2153 #define NDIS_SET_PACKET_STATUS(_Packet, _Status) \ |
|
2154 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2155 (_Packet)->Private.NdisPacketOobOffset))->Status = (_Status) |
|
2156 |
|
2157 |
|
2158 /* |
|
2159 * VOID |
|
2160 * NDIS_SET_PACKET_TIME_RECEIVED( |
|
2161 * IN PNDIS_PACKET Packet, |
|
2162 * IN ULONGLONG TimeReceived); |
|
2163 */ |
|
2164 #define NDIS_SET_PACKET_TIME_RECEIVED(_Packet, _TimeReceived) \ |
|
2165 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2166 (_Packet)->Private.NdisPacketOobOffset))->TimeReceived = (_TimeReceived) |
|
2167 |
|
2168 |
|
2169 /* |
|
2170 * VOID |
|
2171 * NDIS_SET_PACKET_TIME_SENT( |
|
2172 * IN PNDIS_PACKET Packet, |
|
2173 * IN ULONGLONG TimeSent); |
|
2174 */ |
|
2175 #define NDIS_SET_PACKET_TIME_SENT(_Packet, _TimeSent) \ |
|
2176 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2177 (_Packet)->Private.NdisPacketOobOffset))->TimeSent = (_TimeSent) |
|
2178 |
|
2179 |
|
2180 /* |
|
2181 * VOID |
|
2182 * NDIS_SET_PACKET_TIME_TO_SEND( |
|
2183 * IN PNDIS_PACKET Packet, |
|
2184 * IN ULONGLONG TimeToSend); |
|
2185 */ |
|
2186 #define NDIS_SET_PACKET_TIME_TO_SEND(_Packet, _TimeToSend) \ |
|
2187 ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) + \ |
|
2188 (_Packet)->Private.NdisPacketOobOffset))->TimeToSend = (_TimeToSend) |
|
2189 |
|
2190 |
|
2191 /* |
|
2192 * VOID |
|
2193 * NdisSetSendFlags( |
|
2194 * IN PNDIS_PACKET Packet, |
|
2195 * IN UINT Flags); |
|
2196 */ |
|
2197 #define NdisSetSendFlags(_Packet,_Flags)(_Packet)->Private.Flags = (_Flags) |
|
2198 |
|
2199 |
|
2200 |
|
2201 /* Memory management routines */ |
|
2202 |
|
2203 /* |
|
2204 * VOID |
|
2205 * NdisCreateLookaheadBufferFromSharedMemory( |
|
2206 * IN PVOID pSharedMemory, |
|
2207 * IN UINT LookaheadLength, |
|
2208 * OUT PVOID *pLookaheadBuffer) |
|
2209 */ |
|
2210 #define NdisCreateLookaheadBufferFromSharedMemory(_pSharedMemory, \ |
|
2211 _LookaheadLength, \ |
|
2212 _pLookaheadBuffer) \ |
|
2213 ((*(_pLookaheadBuffer)) = (_pSharedMemory)) |
|
2214 |
|
2215 /* |
|
2216 * VOID |
|
2217 * NdisDestroyLookaheadBufferFromSharedMemory( |
|
2218 * IN PVOID pLookaheadBuffer) |
|
2219 */ |
|
2220 #define NdisDestroyLookaheadBufferFromSharedMemory(_pLookaheadBuffer) |
|
2221 |
|
2222 #if defined(i386) |
|
2223 |
|
2224 /* |
|
2225 * VOID |
|
2226 * NdisMoveFromMappedMemory( |
|
2227 * OUT PVOID Destination, |
|
2228 * IN PVOID Source, |
|
2229 * IN ULONG Length); |
|
2230 */ |
|
2231 #define NdisMoveFromMappedMemory(Destination, Source, Length) \ |
|
2232 NdisMoveMappedMemory(Destination, Source, Length) |
|
2233 |
|
2234 /* |
|
2235 * VOID |
|
2236 * NdisMoveMappedMemory( |
|
2237 * OUT PVOID Destination, |
|
2238 * IN PVOID Source, |
|
2239 * IN ULONG Length); |
|
2240 */ |
|
2241 #define NdisMoveMappedMemory(Destination, Source, Length) \ |
|
2242 RtlCopyMemory(Destination, Source, Length) |
|
2243 |
|
2244 /* |
|
2245 * VOID |
|
2246 * NdisMoveToMappedMemory( |
|
2247 * OUT PVOID Destination, |
|
2248 * IN PVOID Source, |
|
2249 * IN ULONG Length); |
|
2250 */ |
|
2251 #define NdisMoveToMappedMemory(Destination, Source, Length) \ |
|
2252 NdisMoveMappedMemory(Destination, Source, Length) |
|
2253 |
|
2254 #endif /* i386 */ |
|
2255 |
|
2256 /* |
|
2257 * VOID |
|
2258 * NdisMUpdateSharedMemory( |
|
2259 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
2260 * IN ULONG Length, |
|
2261 * IN PVOID VirtualAddress, |
|
2262 * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2263 */ |
|
2264 #define NdisMUpdateSharedMemory(_H, _L, _V, _P) \ |
|
2265 NdisUpdateSharedMemory(_H, _L, _V, _P) |
|
2266 |
|
2267 NDISAPI |
|
2268 NDIS_STATUS |
|
2269 DDKAPI |
|
2270 NdisAllocateMemory( |
|
2271 /*OUT*/ PVOID *VirtualAddress, |
|
2272 /*IN*/ UINT Length, |
|
2273 /*IN*/ UINT MemoryFlags, |
|
2274 /*IN*/ NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress); |
|
2275 |
|
2276 NDISAPI |
|
2277 VOID |
|
2278 DDKAPI |
|
2279 NdisFreeMemory( |
|
2280 /*IN*/ PVOID VirtualAddress, |
|
2281 /*IN*/ UINT Length, |
|
2282 /*IN*/ UINT MemoryFlags); |
|
2283 |
|
2284 NDISAPI |
|
2285 VOID |
|
2286 DDKAPI |
|
2287 NdisImmediateReadSharedMemory( |
|
2288 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2289 /*IN*/ ULONG SharedMemoryAddress, |
|
2290 /*OUT*/ PUCHAR Buffer, |
|
2291 /*IN*/ ULONG Length); |
|
2292 |
|
2293 NDISAPI |
|
2294 VOID |
|
2295 DDKAPI |
|
2296 NdisImmediateWriteSharedMemory( |
|
2297 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2298 /*IN*/ ULONG SharedMemoryAddress, |
|
2299 /*IN*/ PUCHAR Buffer, |
|
2300 /*IN*/ ULONG Length); |
|
2301 |
|
2302 NDISAPI |
|
2303 VOID |
|
2304 DDKAPI |
|
2305 NdisMAllocateSharedMemory( |
|
2306 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
2307 /*IN*/ ULONG Length, |
|
2308 /*IN*/ BOOLEAN Cached, |
|
2309 /*OUT*/ PVOID *VirtualAddress, |
|
2310 /*OUT*/ PNDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2311 |
|
2312 NDISAPI |
|
2313 NDIS_STATUS |
|
2314 DDKAPI |
|
2315 NdisMAllocateSharedMemoryAsync( |
|
2316 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
2317 /*IN*/ ULONG Length, |
|
2318 /*IN*/ BOOLEAN Cached, |
|
2319 /*IN*/ PVOID Context); |
|
2320 |
|
2321 #if defined(NDIS50) |
|
2322 |
|
2323 #define NdisUpdateSharedMemory(NdisAdapterHandle, \ |
|
2324 Length, \ |
|
2325 VirtualAddress, \ |
|
2326 PhysicalAddress) |
|
2327 |
|
2328 #else |
|
2329 |
|
2330 NDISAPI |
|
2331 VOID |
|
2332 DDKAPI |
|
2333 NdisUpdateSharedMemory( |
|
2334 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
2335 /*IN*/ ULONG Length, |
|
2336 /*IN*/ PVOID VirtualAddress, |
|
2337 /*IN*/ NDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2338 |
|
2339 #endif /* defined(NDIS50) */ |
|
2340 |
|
2341 /* |
|
2342 * ULONG |
|
2343 * NdisGetPhysicalAddressHigh( |
|
2344 * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2345 */ |
|
2346 #define NdisGetPhysicalAddressHigh(PhysicalAddress) \ |
|
2347 ((PhysicalAddress).HighPart) |
|
2348 |
|
2349 /* |
|
2350 * VOID |
|
2351 * NdisSetPhysicalAddressHigh( |
|
2352 * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress, |
|
2353 * IN ULONG Value); |
|
2354 */ |
|
2355 #define NdisSetPhysicalAddressHigh(PhysicalAddress, Value) \ |
|
2356 ((PhysicalAddress).HighPart) = (Value) |
|
2357 |
|
2358 /* |
|
2359 * ULONG |
|
2360 * NdisGetPhysicalAddressLow( |
|
2361 * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2362 */ |
|
2363 #define NdisGetPhysicalAddressLow(PhysicalAddress) \ |
|
2364 ((PhysicalAddress).LowPart) |
|
2365 |
|
2366 |
|
2367 /* |
|
2368 * VOID |
|
2369 * NdisSetPhysicalAddressLow( |
|
2370 * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress, |
|
2371 * IN ULONG Value); |
|
2372 */ |
|
2373 #define NdisSetPhysicalAddressLow(PhysicalAddress, Value) \ |
|
2374 ((PhysicalAddress).LowPart) = (Value) |
|
2375 |
|
2376 /* |
|
2377 * VOID |
|
2378 * NDIS_PHYSICAL_ADDRESS_CONST( |
|
2379 * IN ULONG Low, |
|
2380 * IN LONG High); |
|
2381 */ |
|
2382 #define NDIS_PHYSICAL_ADDRESS_CONST(Low, High) \ |
|
2383 { {(ULONG)(Low), (LONG)(High)} } |
|
2384 |
|
2385 /* |
|
2386 * ULONG |
|
2387 * NdisEqualMemory( |
|
2388 * IN CONST VOID *Source1, |
|
2389 * IN CONST VOID *Source2, |
|
2390 * IN ULONG Length); |
|
2391 */ |
|
2392 #define NdisEqualMemory(Source1, Source2, Length) \ |
|
2393 RtlEqualMemory(Source1, Source2, Length) |
|
2394 |
|
2395 /* |
|
2396 * VOID |
|
2397 * NdisFillMemory( |
|
2398 * IN PVOID Destination, |
|
2399 * IN ULONG Length, |
|
2400 * IN UCHAR Fill); |
|
2401 */ |
|
2402 #define NdisFillMemory(Destination, Length, Fill) \ |
|
2403 RtlFillMemory(Destination, Length, Fill) |
|
2404 |
|
2405 /* |
|
2406 * VOID |
|
2407 * NdisZeroMappedMemory( |
|
2408 * IN PVOID Destination, |
|
2409 * IN ULONG Length); |
|
2410 */ |
|
2411 #define NdisZeroMappedMemory(Destination, Length) \ |
|
2412 RtlZeroMemory(Destination, Length) |
|
2413 |
|
2414 /* |
|
2415 * VOID |
|
2416 * NdisMoveMemory( |
|
2417 * OUT PVOID Destination, |
|
2418 * IN PVOID Source, |
|
2419 * IN ULONG Length); |
|
2420 */ |
|
2421 #define NdisMoveMemory(Destination, Source, Length) \ |
|
2422 RtlCopyMemory(Destination, Source, Length) |
|
2423 |
|
2424 |
|
2425 /* |
|
2426 * VOID |
|
2427 * NdisRetrieveUlong( |
|
2428 * IN PULONG DestinationAddress, |
|
2429 * IN PULONG SourceAddress); |
|
2430 */ |
|
2431 #define NdisRetrieveUlong(DestinationAddress, SourceAddress) \ |
|
2432 RtlRetrieveUlong(DestinationAddress, SourceAddress) |
|
2433 |
|
2434 |
|
2435 /* |
|
2436 * VOID |
|
2437 * NdisStoreUlong( |
|
2438 * IN PULONG DestinationAddress, |
|
2439 * IN ULONG Value); |
|
2440 */ |
|
2441 #define NdisStoreUlong(DestinationAddress, Value) \ |
|
2442 RtlStoreUlong(DestinationAddress, Value) |
|
2443 |
|
2444 |
|
2445 /* |
|
2446 * VOID |
|
2447 * NdisZeroMemory( |
|
2448 * IN PVOID Destination, |
|
2449 * IN ULONG Length) |
|
2450 */ |
|
2451 #define NdisZeroMemory(Destination, Length) \ |
|
2452 RtlZeroMemory(Destination, Length) |
|
2453 |
|
2454 |
|
2455 |
|
2456 /* Configuration routines */ |
|
2457 |
|
2458 NDISAPI |
|
2459 VOID |
|
2460 DDKAPI |
|
2461 NdisOpenConfiguration( |
|
2462 /*OUT*/ PNDIS_STATUS Status, |
|
2463 /*OUT*/ PNDIS_HANDLE ConfigurationHandle, |
|
2464 /*IN*/ NDIS_HANDLE WrapperConfigurationContext); |
|
2465 |
|
2466 NDISAPI |
|
2467 VOID |
|
2468 DDKAPI |
|
2469 NdisReadNetworkAddress( |
|
2470 /*OUT*/ PNDIS_STATUS Status, |
|
2471 /*OUT*/ PVOID *NetworkAddress, |
|
2472 /*OUT*/ PUINT NetworkAddressLength, |
|
2473 /*IN*/ NDIS_HANDLE ConfigurationHandle); |
|
2474 |
|
2475 NDISAPI |
|
2476 VOID |
|
2477 DDKAPI |
|
2478 NdisReadEisaSlotInformation( |
|
2479 /*OUT*/ PNDIS_STATUS Status, |
|
2480 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2481 /*OUT*/ PUINT SlotNumber, |
|
2482 /*OUT*/ PNDIS_EISA_FUNCTION_INFORMATION EisaData); |
|
2483 |
|
2484 NDISAPI |
|
2485 VOID |
|
2486 DDKAPI |
|
2487 NdisReadEisaSlotInformationEx( |
|
2488 /*OUT*/ PNDIS_STATUS Status, |
|
2489 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2490 /*OUT*/ PUINT SlotNumber, |
|
2491 /*OUT*/ PNDIS_EISA_FUNCTION_INFORMATION *EisaData, |
|
2492 /*OUT*/ PUINT NumberOfFunctions); |
|
2493 |
|
2494 NDISAPI |
|
2495 ULONG |
|
2496 DDKAPI |
|
2497 NdisReadPciSlotInformation( |
|
2498 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
2499 /*IN*/ ULONG SlotNumber, |
|
2500 /*IN*/ ULONG Offset, |
|
2501 /*IN*/ PVOID Buffer, |
|
2502 /*IN*/ ULONG Length); |
|
2503 |
|
2504 NDISAPI |
|
2505 ULONG |
|
2506 DDKAPI |
|
2507 NdisWritePciSlotInformation( |
|
2508 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
2509 /*IN*/ ULONG SlotNumber, |
|
2510 /*IN*/ ULONG Offset, |
|
2511 /*IN*/ PVOID Buffer, |
|
2512 /*IN*/ ULONG Length); |
|
2513 |
|
2514 |
|
2515 |
|
2516 /* String management routines */ |
|
2517 |
|
2518 NDISAPI |
|
2519 NDIS_STATUS |
|
2520 DDKAPI |
|
2521 NdisAnsiStringToUnicodeString( |
|
2522 /*IN OUT*/ PNDIS_STRING DestinationString, |
|
2523 /*IN*/ PNDIS_ANSI_STRING SourceString); |
|
2524 |
|
2525 /* |
|
2526 * BOOLEAN |
|
2527 * NdisEqualString( |
|
2528 * IN PNDIS_STRING String1, |
|
2529 * IN PNDIS_STRING String2, |
|
2530 * IN BOOLEAN CaseInsensitive); |
|
2531 */ |
|
2532 #define NdisEqualString(_String1, _String2, _CaseInsensitive) \ |
|
2533 RtlEqualUnicodeString(_String1, _String2, _CaseInsensitive) |
|
2534 |
|
2535 NDISAPI |
|
2536 VOID |
|
2537 DDKAPI |
|
2538 NdisInitAnsiString( |
|
2539 /*IN OUT*/ PNDIS_ANSI_STRING DestinationString, |
|
2540 /*IN*/ PCSTR SourceString); |
|
2541 |
|
2542 NDISAPI |
|
2543 VOID |
|
2544 DDKAPI |
|
2545 NdisInitUnicodeString( |
|
2546 /*IN OUT*/ PNDIS_STRING DestinationString, |
|
2547 /*IN*/ PCWSTR SourceString); |
|
2548 |
|
2549 NDISAPI |
|
2550 NDIS_STATUS |
|
2551 DDKAPI |
|
2552 NdisUnicodeStringToAnsiString( |
|
2553 /*IN OUT*/ PNDIS_ANSI_STRING DestinationString, |
|
2554 /*IN*/ PNDIS_STRING SourceString); |
|
2555 |
|
2556 #define NdisFreeString(_s) NdisFreeMemory((_s).Buffer, (_s).MaximumLength, 0) |
|
2557 #define NdisPrintString(_s) DbgPrint("%ls", (_s).Buffer) |
|
2558 |
|
2559 |
|
2560 /* Spin lock reoutines */ |
|
2561 |
|
2562 /* |
|
2563 * VOID |
|
2564 * NdisAllocateSpinLock( |
|
2565 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2566 */ |
|
2567 #define NdisAllocateSpinLock(_SpinLock) \ |
|
2568 KeInitializeSpinLock(&(_SpinLock)->SpinLock) |
|
2569 |
|
2570 /* |
|
2571 * VOID |
|
2572 * NdisFreeSpinLock( |
|
2573 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2574 */ |
|
2575 #define NdisFreeSpinLock(_SpinLock) |
|
2576 |
|
2577 /* |
|
2578 * VOID |
|
2579 * NdisAcquireSpinLock( |
|
2580 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2581 */ |
|
2582 #define NdisAcquireSpinLock(_SpinLock) \ |
|
2583 KeAcquireSpinLock(&(_SpinLock)->SpinLock, &(_SpinLock)->OldIrql) |
|
2584 |
|
2585 /* |
|
2586 * VOID |
|
2587 * NdisReleaseSpinLock( |
|
2588 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2589 */ |
|
2590 #define NdisReleaseSpinLock(_SpinLock) \ |
|
2591 KeReleaseSpinLock(&(_SpinLock)->SpinLock, (_SpinLock)->OldIrql) |
|
2592 |
|
2593 /* |
|
2594 * VOID |
|
2595 * NdisDprAcquireSpinLock( |
|
2596 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2597 */ |
|
2598 #define NdisDprAcquireSpinLock(_SpinLock) \ |
|
2599 { \ |
|
2600 KeAcquireSpinLockAtDpcLevel(&(_SpinLock)->SpinLock); \ |
|
2601 (_SpinLock)->OldIrql = DISPATCH_LEVEL; \ |
|
2602 } |
|
2603 |
|
2604 /* |
|
2605 * VOID |
|
2606 * NdisDprReleaseSpinLock( |
|
2607 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2608 */ |
|
2609 #define NdisDprReleaseSpinLock(_SpinLock) \ |
|
2610 KeReleaseSpinLockFromDpcLevel(&(_SpinLock)->SpinLock) |
|
2611 |
|
2612 |
|
2613 |
|
2614 /* I/O routines */ |
|
2615 |
|
2616 /* |
|
2617 * VOID |
|
2618 * NdisRawReadPortBufferUchar( |
|
2619 * IN ULONG Port, |
|
2620 * OUT PUCHAR Buffer, |
|
2621 * IN ULONG Length); |
|
2622 */ |
|
2623 #define NdisRawReadPortBufferUchar(Port, Buffer, Length) \ |
|
2624 READ_PORT_BUFFER_UCHAR((PUCHAR)(Port), (PUCHAR)(Buffer), (Length)) |
|
2625 |
|
2626 /* |
|
2627 * VOID |
|
2628 * NdisRawReadPortBufferUlong( |
|
2629 * IN ULONG Port, |
|
2630 * OUT PULONG Buffer, |
|
2631 * IN ULONG Length); |
|
2632 */ |
|
2633 #define NdisRawReadPortBufferUlong(Port, Buffer, Length) \ |
|
2634 READ_PORT_BUFFER_ULONG((PULONG)(Port), (PULONG)(Buffer), (Length)) |
|
2635 |
|
2636 /* |
|
2637 * VOID |
|
2638 * NdisRawReadPortBufferUshort( |
|
2639 * IN ULONG Port, |
|
2640 * OUT PUSHORT Buffer, |
|
2641 * IN ULONG Length); |
|
2642 */ |
|
2643 #define NdisRawReadPortBufferUshort(Port, Buffer, Length) \ |
|
2644 READ_PORT_BUFFER_USHORT((PUSHORT)(Port), (PUSHORT)(Buffer), (Length)) |
|
2645 |
|
2646 |
|
2647 /* |
|
2648 * VOID |
|
2649 * NdisRawReadPortUchar( |
|
2650 * IN ULONG Port, |
|
2651 * OUT PUCHAR Data); |
|
2652 */ |
|
2653 #define NdisRawReadPortUchar(Port, Data) \ |
|
2654 *(Data) = READ_PORT_UCHAR((PUCHAR)(Port)) |
|
2655 |
|
2656 /* |
|
2657 * VOID |
|
2658 * NdisRawReadPortUlong( |
|
2659 * IN ULONG Port, |
|
2660 * OUT PULONG Data); |
|
2661 */ |
|
2662 #define NdisRawReadPortUlong(Port, Data) \ |
|
2663 *(Data) = READ_PORT_ULONG((PULONG)(Port)) |
|
2664 |
|
2665 /* |
|
2666 * VOID |
|
2667 * NdisRawReadPortUshort( |
|
2668 * IN ULONG Port, |
|
2669 * OUT PUSHORT Data); |
|
2670 */ |
|
2671 #define NdisRawReadPortUshort(Port, Data) \ |
|
2672 *(Data) = READ_PORT_USHORT((PUSHORT)(Port)) |
|
2673 |
|
2674 |
|
2675 /* |
|
2676 * VOID |
|
2677 * NdisRawWritePortBufferUchar( |
|
2678 * IN ULONG Port, |
|
2679 * IN PUCHAR Buffer, |
|
2680 * IN ULONG Length); |
|
2681 */ |
|
2682 #define NdisRawWritePortBufferUchar(Port, Buffer, Length) \ |
|
2683 WRITE_PORT_BUFFER_UCHAR((PUCHAR)(Port), (PUCHAR)(Buffer), (Length)) |
|
2684 |
|
2685 /* |
|
2686 * VOID |
|
2687 * NdisRawWritePortBufferUlong( |
|
2688 * IN ULONG Port, |
|
2689 * IN PULONG Buffer, |
|
2690 * IN ULONG Length); |
|
2691 */ |
|
2692 #define NdisRawWritePortBufferUlong(Port, Buffer, Length) \ |
|
2693 WRITE_PORT_BUFFER_ULONG((PULONG)(Port), (PULONG)(Buffer), (Length)) |
|
2694 |
|
2695 /* |
|
2696 * VOID |
|
2697 * NdisRawWritePortBufferUshort( |
|
2698 * IN ULONG Port, |
|
2699 * IN PUSHORT Buffer, |
|
2700 * IN ULONG Length); |
|
2701 */ |
|
2702 #define NdisRawWritePortBufferUshort(Port, Buffer, Length) \ |
|
2703 WRITE_PORT_BUFFER_USHORT((PUSHORT)(Port), (PUSHORT)(Buffer), (Length)) |
|
2704 |
|
2705 |
|
2706 /* |
|
2707 * VOID |
|
2708 * NdisRawWritePortUchar( |
|
2709 * IN ULONG Port, |
|
2710 * IN UCHAR Data); |
|
2711 */ |
|
2712 #define NdisRawWritePortUchar(Port, Data) \ |
|
2713 WRITE_PORT_UCHAR((PUCHAR)(Port), (UCHAR)(Data)) |
|
2714 |
|
2715 /* |
|
2716 * VOID |
|
2717 * NdisRawWritePortUlong( |
|
2718 * IN ULONG Port, |
|
2719 * IN ULONG Data); |
|
2720 */ |
|
2721 #define NdisRawWritePortUlong(Port, Data) \ |
|
2722 WRITE_PORT_ULONG((PULONG)(Port), (ULONG)(Data)) |
|
2723 |
|
2724 /* |
|
2725 * VOID |
|
2726 * NdisRawWritePortUshort( |
|
2727 * IN ULONG Port, |
|
2728 * IN USHORT Data); |
|
2729 */ |
|
2730 #define NdisRawWritePortUshort(Port, Data) \ |
|
2731 WRITE_PORT_USHORT((PUSHORT)(Port), (USHORT)(Data)) |
|
2732 |
|
2733 |
|
2734 /* |
|
2735 * VOID |
|
2736 * NdisReadRegisterUchar( |
|
2737 * IN PUCHAR Register, |
|
2738 * OUT PUCHAR Data); |
|
2739 */ |
|
2740 #define NdisReadRegisterUchar(Register, Data) \ |
|
2741 *(Data) = *(Register) |
|
2742 |
|
2743 /* |
|
2744 * VOID |
|
2745 * NdisReadRegisterUlong( |
|
2746 * IN PULONG Register, |
|
2747 * OUT PULONG Data); |
|
2748 */ |
|
2749 #define NdisReadRegisterUlong(Register, Data) \ |
|
2750 *(Data) = *(Register) |
|
2751 |
|
2752 /* |
|
2753 * VOID |
|
2754 * NdisReadRegisterUshort( |
|
2755 * IN PUSHORT Register, |
|
2756 * OUT PUSHORT Data); |
|
2757 */ |
|
2758 #define NdisReadRegisterUshort(Register, Data) \ |
|
2759 *(Data) = *(Register) |
|
2760 |
|
2761 /* |
|
2762 * VOID |
|
2763 * NdisReadRegisterUchar( |
|
2764 * IN PUCHAR Register, |
|
2765 * IN UCHAR Data); |
|
2766 */ |
|
2767 #define NdisWriteRegisterUchar(Register, Data) \ |
|
2768 WRITE_REGISTER_UCHAR((Register), (Data)) |
|
2769 |
|
2770 /* |
|
2771 * VOID |
|
2772 * NdisReadRegisterUlong( |
|
2773 * IN PULONG Register, |
|
2774 * IN ULONG Data); |
|
2775 */ |
|
2776 #define NdisWriteRegisterUlong(Register, Data) \ |
|
2777 WRITE_REGISTER_ULONG((Register), (Data)) |
|
2778 |
|
2779 /* |
|
2780 * VOID |
|
2781 * NdisReadRegisterUshort( |
|
2782 * IN PUSHORT Register, |
|
2783 * IN USHORT Data); |
|
2784 */ |
|
2785 #define NdisWriteRegisterUshort(Register, Data) \ |
|
2786 WRITE_REGISTER_USHORT((Register), (Data)) |
|
2787 |
|
2788 |
|
2789 /* Linked lists */ |
|
2790 |
|
2791 /* |
|
2792 * VOID |
|
2793 * NdisInitializeListHead( |
|
2794 * IN PLIST_ENTRY ListHead); |
|
2795 */ |
|
2796 #define NdisInitializeListHead(_ListHead) \ |
|
2797 InitializeListHead(_ListHead) |
|
2798 |
|
2799 /* |
|
2800 * PLIST_ENTRY |
|
2801 * NdisInterlockedInsertHeadList( |
|
2802 * IN PLIST_ENTRY ListHead, |
|
2803 * IN PLIST_ENTRY ListEntry, |
|
2804 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2805 */ |
|
2806 #define NdisInterlockedInsertHeadList(_ListHead, _ListEntry, _SpinLock) \ |
|
2807 ExInterlockedInsertHeadList(_ListHead, _ListEntry, &(_SpinLock)->SpinLock) |
|
2808 |
|
2809 /* |
|
2810 * PLIST_ENTRY |
|
2811 * NdisInterlockedInsertTailList( |
|
2812 * IN PLIST_ENTRY ListHead, |
|
2813 * IN PLIST_ENTRY ListEntry, |
|
2814 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2815 */ |
|
2816 #define NdisInterlockedInsertTailList(_ListHead, _ListEntry, _SpinLock) \ |
|
2817 ExInterlockedInsertTailList(_ListHead, _ListEntry, &(_SpinLock)->SpinLock) |
|
2818 |
|
2819 /* |
|
2820 * PLIST_ENTRY |
|
2821 * NdisInterlockedRemoveHeadList( |
|
2822 * IN PLIST_ENTRY ListHead, |
|
2823 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2824 */ |
|
2825 #define NdisInterlockedRemoveHeadList(_ListHead, _SpinLock) \ |
|
2826 ExInterlockedRemoveHeadList(_ListHead, &(_SpinLock)->SpinLock) |
|
2827 |
|
2828 /* |
|
2829 * VOID |
|
2830 * NdisInitializeSListHead( |
|
2831 * IN PSLIST_HEADER SListHead); |
|
2832 */ |
|
2833 #define NdisInitializeSListHead(SListHead) ExInitializeSListHead(SListHead) |
|
2834 |
|
2835 /* |
|
2836 * USHORT NdisQueryDepthSList( |
|
2837 * IN PSLIST_HEADER SListHead); |
|
2838 */ |
|
2839 #define NdisQueryDepthSList(SListHead) ExQueryDepthSList(SListHead) |
|
2840 |
|
2841 |
|
2842 |
|
2843 /* Interlocked routines */ |
|
2844 |
|
2845 /* |
|
2846 * LONG |
|
2847 * NdisInterlockedDecrement( |
|
2848 * IN PLONG Addend); |
|
2849 */ |
|
2850 #define NdisInterlockedDecrement(Addend) InterlockedDecrement(Addend) |
|
2851 |
|
2852 /* |
|
2853 * LONG |
|
2854 * NdisInterlockedIncrement( |
|
2855 * IN PLONG Addend); |
|
2856 */ |
|
2857 #define NdisInterlockedIncrement(Addend) InterlockedIncrement(Addend) |
|
2858 |
|
2859 /* |
|
2860 * VOID |
|
2861 * NdisInterlockedAddUlong( |
|
2862 * IN PULONG Addend, |
|
2863 * IN ULONG Increment, |
|
2864 * IN PNDIS_SPIN_LOCK SpinLock); |
|
2865 */ |
|
2866 #define NdisInterlockedAddUlong(_Addend, _Increment, _SpinLock) \ |
|
2867 ExInterlockedAddUlong(_Addend, _Increment, &(_SpinLock)->SpinLock) |
|
2868 |
|
2869 |
|
2870 |
|
2871 /* Miscellaneous routines */ |
|
2872 |
|
2873 NDISAPI |
|
2874 VOID |
|
2875 DDKAPI |
|
2876 NdisCloseConfiguration( |
|
2877 /*IN*/ NDIS_HANDLE ConfigurationHandle); |
|
2878 |
|
2879 NDISAPI |
|
2880 VOID |
|
2881 DDKAPI |
|
2882 NdisReadConfiguration( |
|
2883 /*OUT*/ PNDIS_STATUS Status, |
|
2884 /*OUT*/ PNDIS_CONFIGURATION_PARAMETER *ParameterValue, |
|
2885 /*IN*/ NDIS_HANDLE ConfigurationHandle, |
|
2886 /*IN*/ PNDIS_STRING Keyword, |
|
2887 /*IN*/ NDIS_PARAMETER_TYPE ParameterType); |
|
2888 |
|
2889 NDISAPI |
|
2890 VOID |
|
2891 DDKAPI |
|
2892 NdisWriteConfiguration( |
|
2893 /*OUT*/ PNDIS_STATUS Status, |
|
2894 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2895 /*IN*/ PNDIS_STRING Keyword, |
|
2896 /*IN*/ PNDIS_CONFIGURATION_PARAMETER *ParameterValue); |
|
2897 |
|
2898 NDISAPI |
|
2899 VOID |
|
2900 DDKCDECLAPI |
|
2901 NdisWriteErrorLogEntry( |
|
2902 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
2903 /*IN*/ NDIS_ERROR_CODE ErrorCode, |
|
2904 /*IN*/ ULONG NumberOfErrorValues, |
|
2905 /*IN*/ ...); |
|
2906 |
|
2907 /* |
|
2908 * VOID |
|
2909 * NdisStallExecution( |
|
2910 * IN UINT MicrosecondsToStall) |
|
2911 */ |
|
2912 #define NdisStallExecution KeStallExecutionProcessor |
|
2913 |
|
2914 /* |
|
2915 * VOID |
|
2916 * NdisGetCurrentSystemTime( |
|
2917 * IN PLARGE_INTEGER pSystemTime); |
|
2918 */ |
|
2919 #define NdisGetCurrentSystemTime KeQuerySystemTime |
|
2920 |
|
2921 NDISAPI |
|
2922 VOID |
|
2923 DDKAPI |
|
2924 NdisGetCurrentProcessorCpuUsage( |
|
2925 /*OUT*/ PULONG pCpuUsage); |
|
2926 |
|
2927 |
|
2928 |
|
2929 /* NDIS helper macros */ |
|
2930 |
|
2931 /* |
|
2932 * VOID |
|
2933 * NDIS_INIT_FUNCTION(FunctionName) |
|
2934 */ |
|
2935 #define NDIS_INIT_FUNCTION(FunctionName) \ |
|
2936 alloc_text(init, FunctionName) |
|
2937 |
|
2938 /* |
|
2939 * VOID |
|
2940 * NDIS_PAGABLE_FUNCTION(FunctionName) |
|
2941 */ |
|
2942 #define NDIS_PAGEABLE_FUNCTION(FunctionName) \ |
|
2943 alloc_text(page, FunctionName) |
|
2944 |
|
2945 #define NDIS_PAGABLE_FUNCTION NDIS_PAGEABLE_FUNCTION |
|
2946 |
|
2947 |
|
2948 /* NDIS 4.0 extensions */ |
|
2949 |
|
2950 NDISAPI |
|
2951 VOID |
|
2952 DDKAPI |
|
2953 NdisMFreeSharedMemory( |
|
2954 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
2955 /*IN*/ ULONG Length, |
|
2956 /*IN*/ BOOLEAN Cached, |
|
2957 /*IN*/ PVOID VirtualAddress, |
|
2958 /*IN*/ NDIS_PHYSICAL_ADDRESS PhysicalAddress); |
|
2959 |
|
2960 NDISAPI |
|
2961 VOID |
|
2962 DDKAPI |
|
2963 NdisMWanIndicateReceive( |
|
2964 /*OUT*/ PNDIS_STATUS Status, |
|
2965 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
2966 /*IN*/ NDIS_HANDLE NdisLinkContext, |
|
2967 /*IN*/ PUCHAR PacketBuffer, |
|
2968 /*IN*/ UINT PacketSize); |
|
2969 |
|
2970 NDISAPI |
|
2971 VOID |
|
2972 DDKAPI |
|
2973 NdisMWanIndicateReceiveComplete( |
|
2974 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
2975 |
|
2976 NDISAPI |
|
2977 VOID |
|
2978 DDKAPI |
|
2979 NdisMWanSendComplete( |
|
2980 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
2981 /*IN*/ PNDIS_WAN_PACKET Packet, |
|
2982 /*IN*/ NDIS_STATUS Status); |
|
2983 |
|
2984 NDISAPI |
|
2985 NDIS_STATUS |
|
2986 DDKAPI |
|
2987 NdisPciAssignResources( |
|
2988 /*IN*/ NDIS_HANDLE NdisMacHandle, |
|
2989 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
2990 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
2991 /*IN*/ ULONG SlotNumber, |
|
2992 /*OUT*/ PNDIS_RESOURCE_LIST *AssignedResources); |
|
2993 |
|
2994 |
|
2995 /* NDIS 5.0 extensions */ |
|
2996 |
|
2997 NDISAPI |
|
2998 VOID |
|
2999 DDKAPI |
|
3000 NdisAcquireReadWriteLock( |
|
3001 /*IN*/ PNDIS_RW_LOCK Lock, |
|
3002 /*IN*/ BOOLEAN fWrite, |
|
3003 /*IN*/ PLOCK_STATE LockState); |
|
3004 |
|
3005 NDISAPI |
|
3006 NDIS_STATUS |
|
3007 DDKAPI |
|
3008 NdisAllocateMemoryWithTag( |
|
3009 /*OUT*/ PVOID *VirtualAddress, |
|
3010 /*IN*/ UINT Length, |
|
3011 /*IN*/ ULONG Tag); |
|
3012 |
|
3013 NDISAPI |
|
3014 VOID |
|
3015 DDKAPI |
|
3016 NdisAllocatePacketPoolEx( |
|
3017 /*OUT*/ PNDIS_STATUS Status, |
|
3018 /*OUT*/ PNDIS_HANDLE PoolHandle, |
|
3019 /*IN*/ UINT NumberOfDescriptors, |
|
3020 /*IN*/ UINT NumberOfOverflowDescriptors, |
|
3021 /*IN*/ UINT ProtocolReservedLength); |
|
3022 |
|
3023 NDISAPI |
|
3024 VOID |
|
3025 DDKAPI |
|
3026 NdisCompletePnPEvent( |
|
3027 /*IN*/ NDIS_STATUS Status, |
|
3028 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
3029 /*IN*/ PNET_PNP_EVENT NetPnPEvent); |
|
3030 |
|
3031 NDISAPI |
|
3032 VOID |
|
3033 DDKAPI |
|
3034 NdisGetCurrentProcessorCounts( |
|
3035 /*OUT*/ PULONG pIdleCount, |
|
3036 /*OUT*/ PULONG pKernelAndUser, |
|
3037 /*OUT*/ PULONG pIndex); |
|
3038 |
|
3039 NDISAPI |
|
3040 VOID |
|
3041 DDKAPI |
|
3042 NdisGetDriverHandle( |
|
3043 /*IN*/ PNDIS_HANDLE NdisBindingHandle, |
|
3044 /*OUT*/ PNDIS_HANDLE NdisDriverHandle); |
|
3045 |
|
3046 NDISAPI |
|
3047 PNDIS_PACKET |
|
3048 DDKAPI |
|
3049 NdisGetReceivedPacket( |
|
3050 /*IN*/ PNDIS_HANDLE NdisBindingHandle, |
|
3051 /*IN*/ PNDIS_HANDLE MacContext); |
|
3052 |
|
3053 NDISAPI |
|
3054 VOID |
|
3055 DDKAPI |
|
3056 NdisGetSystemUptime( |
|
3057 /*OUT*/ PULONG pSystemUpTime); |
|
3058 |
|
3059 NDISAPI |
|
3060 VOID |
|
3061 DDKAPI |
|
3062 NdisInitializeReadWriteLock( |
|
3063 /*IN*/ PNDIS_RW_LOCK Lock); |
|
3064 |
|
3065 NDISAPI |
|
3066 NDIS_STATUS |
|
3067 DDKAPI |
|
3068 NdisMDeregisterDevice( |
|
3069 /*IN*/ NDIS_HANDLE NdisDeviceHandle); |
|
3070 |
|
3071 NDISAPI |
|
3072 VOID |
|
3073 DDKAPI |
|
3074 NdisMGetDeviceProperty( |
|
3075 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3076 /*IN OUT*/ PDEVICE_OBJECT *PhysicalDeviceObject /*OPTIONAL*/, |
|
3077 /*IN OUT*/ PDEVICE_OBJECT *FunctionalDeviceObject /*OPTIONAL*/, |
|
3078 /*IN OUT*/ PDEVICE_OBJECT *NextDeviceObject /*OPTIONAL*/, |
|
3079 /*IN OUT*/ PCM_RESOURCE_LIST *AllocatedResources /*OPTIONAL*/, |
|
3080 /*IN OUT*/ PCM_RESOURCE_LIST *AllocatedResourcesTranslated /*OPTIONAL*/); |
|
3081 |
|
3082 NDISAPI |
|
3083 NDIS_STATUS |
|
3084 DDKAPI |
|
3085 NdisMInitializeScatterGatherDma( |
|
3086 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3087 /*IN*/ BOOLEAN Dma64BitAddresses, |
|
3088 /*IN*/ ULONG MaximumPhysicalMapping); |
|
3089 |
|
3090 NDISAPI |
|
3091 NDIS_STATUS |
|
3092 DDKAPI |
|
3093 NdisMPromoteMiniport( |
|
3094 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
3095 |
|
3096 NDISAPI |
|
3097 NDIS_STATUS |
|
3098 DDKAPI |
|
3099 NdisMQueryAdapterInstanceName( |
|
3100 /*OUT*/ PNDIS_STRING AdapterInstanceName, |
|
3101 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
3102 |
|
3103 NDISAPI |
|
3104 NDIS_STATUS |
|
3105 DDKAPI |
|
3106 NdisMRegisterDevice( |
|
3107 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
3108 /*IN*/ PNDIS_STRING DeviceName, |
|
3109 /*IN*/ PNDIS_STRING SymbolicName, |
|
3110 /*IN*/ PDRIVER_DISPATCH MajorFunctions[], |
|
3111 /*OUT*/ PDEVICE_OBJECT *pDeviceObject, |
|
3112 /*OUT*/ NDIS_HANDLE *NdisDeviceHandle); |
|
3113 |
|
3114 NDISAPI |
|
3115 VOID |
|
3116 DDKAPI |
|
3117 NdisMRegisterUnloadHandler( |
|
3118 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
3119 /*IN*/ PDRIVER_UNLOAD UnloadHandler); |
|
3120 |
|
3121 NDISAPI |
|
3122 NDIS_STATUS |
|
3123 DDKAPI |
|
3124 NdisMRemoveMiniport( |
|
3125 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
3126 |
|
3127 NDISAPI |
|
3128 NDIS_STATUS |
|
3129 DDKAPI |
|
3130 NdisMSetMiniportSecondary( |
|
3131 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3132 /*IN*/ NDIS_HANDLE PrimaryMiniportAdapterHandle); |
|
3133 |
|
3134 NDISAPI |
|
3135 VOID |
|
3136 DDKAPI |
|
3137 NdisOpenConfigurationKeyByIndex( |
|
3138 /*OUT*/ PNDIS_STATUS Status, |
|
3139 /*IN*/ NDIS_HANDLE ConfigurationHandle, |
|
3140 /*IN*/ ULONG Index, |
|
3141 /*OUT*/ PNDIS_STRING KeyName, |
|
3142 /*OUT*/ PNDIS_HANDLE KeyHandle); |
|
3143 |
|
3144 NDISAPI |
|
3145 VOID |
|
3146 DDKAPI |
|
3147 NdisOpenConfigurationKeyByName( |
|
3148 /*OUT*/ PNDIS_STATUS Status, |
|
3149 /*IN*/ NDIS_HANDLE ConfigurationHandle, |
|
3150 /*IN*/ PNDIS_STRING SubKeyName, |
|
3151 /*OUT*/ PNDIS_HANDLE SubKeyHandle); |
|
3152 |
|
3153 NDISAPI |
|
3154 UINT |
|
3155 DDKAPI |
|
3156 NdisPacketPoolUsage( |
|
3157 /*IN*/ NDIS_HANDLE PoolHandle); |
|
3158 |
|
3159 NDISAPI |
|
3160 NDIS_STATUS |
|
3161 DDKAPI |
|
3162 NdisQueryAdapterInstanceName( |
|
3163 /*OUT*/ PNDIS_STRING AdapterInstanceName, |
|
3164 /*IN*/ NDIS_HANDLE NdisBindingHandle); |
|
3165 |
|
3166 NDISAPI |
|
3167 ULONG |
|
3168 DDKAPI |
|
3169 NdisReadPcmciaAttributeMemory( |
|
3170 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
3171 /*IN*/ ULONG Offset, |
|
3172 /*IN*/ PVOID Buffer, |
|
3173 /*IN*/ ULONG Length); |
|
3174 |
|
3175 NDISAPI |
|
3176 VOID |
|
3177 DDKAPI |
|
3178 NdisReleaseReadWriteLock( |
|
3179 /*IN*/ PNDIS_RW_LOCK Lock, |
|
3180 /*IN*/ PLOCK_STATE LockState); |
|
3181 |
|
3182 NDISAPI |
|
3183 NDIS_STATUS |
|
3184 DDKAPI |
|
3185 NdisWriteEventLogEntry( |
|
3186 /*IN*/ PVOID LogHandle, |
|
3187 /*IN*/ NDIS_STATUS EventCode, |
|
3188 /*IN*/ ULONG UniqueEventValue, |
|
3189 /*IN*/ USHORT NumStrings, |
|
3190 /*IN*/ PVOID StringsList /*OPTIONAL*/, |
|
3191 /*IN*/ ULONG DataSize, |
|
3192 /*IN*/ PVOID Data /*OPTIONAL*/); |
|
3193 |
|
3194 NDISAPI |
|
3195 ULONG |
|
3196 DDKAPI |
|
3197 NdisWritePcmciaAttributeMemory( |
|
3198 /*IN*/ NDIS_HANDLE NdisAdapterHandle, |
|
3199 /*IN*/ ULONG Offset, |
|
3200 /*IN*/ PVOID Buffer, |
|
3201 /*IN*/ ULONG Length); |
|
3202 |
|
3203 |
|
3204 /* Connectionless services */ |
|
3205 |
|
3206 NDISAPI |
|
3207 NDIS_STATUS |
|
3208 DDKAPI |
|
3209 NdisClAddParty( |
|
3210 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3211 /*IN*/ NDIS_HANDLE ProtocolPartyContext, |
|
3212 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters, |
|
3213 /*OUT*/ PNDIS_HANDLE NdisPartyHandle); |
|
3214 |
|
3215 NDISAPI |
|
3216 NDIS_STATUS |
|
3217 DDKAPI |
|
3218 NdisClCloseAddressFamily( |
|
3219 /*IN*/ NDIS_HANDLE NdisAfHandle); |
|
3220 |
|
3221 NDISAPI |
|
3222 NDIS_STATUS |
|
3223 DDKAPI |
|
3224 NdisClCloseCall( |
|
3225 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3226 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
3227 /*IN*/ PVOID Buffer /*OPTIONAL*/, |
|
3228 /*IN*/ UINT Size); |
|
3229 |
|
3230 NDISAPI |
|
3231 NDIS_STATUS |
|
3232 DDKAPI |
|
3233 NdisClDeregisterSap( |
|
3234 /*IN*/ NDIS_HANDLE NdisSapHandle); |
|
3235 |
|
3236 NDISAPI |
|
3237 NDIS_STATUS |
|
3238 DDKAPI |
|
3239 NdisClDropParty( |
|
3240 /*IN*/ NDIS_HANDLE NdisPartyHandle, |
|
3241 /*IN*/ PVOID Buffer /*OPTIONAL*/, |
|
3242 /*IN*/ UINT Size); |
|
3243 |
|
3244 NDISAPI |
|
3245 VOID |
|
3246 DDKAPI |
|
3247 NdisClIncomingCallComplete( |
|
3248 /*IN*/ NDIS_STATUS Status, |
|
3249 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3250 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3251 |
|
3252 NDISAPI |
|
3253 NDIS_STATUS |
|
3254 DDKAPI |
|
3255 NdisClMakeCall( |
|
3256 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3257 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters, |
|
3258 /*IN*/ NDIS_HANDLE ProtocolPartyContext /*OPTIONAL*/, |
|
3259 /*OUT*/ PNDIS_HANDLE NdisPartyHandle /*OPTIONAL*/); |
|
3260 |
|
3261 NDISAPI |
|
3262 NDIS_STATUS |
|
3263 DDKAPI |
|
3264 NdisClModifyCallQoS( |
|
3265 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3266 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3267 |
|
3268 |
|
3269 NDISAPI |
|
3270 NDIS_STATUS |
|
3271 DDKAPI |
|
3272 NdisClOpenAddressFamily( |
|
3273 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
3274 /*IN*/ PCO_ADDRESS_FAMILY AddressFamily, |
|
3275 /*IN*/ NDIS_HANDLE ProtocolAfContext, |
|
3276 /*IN*/ PNDIS_CLIENT_CHARACTERISTICS ClCharacteristics, |
|
3277 /*IN*/ UINT SizeOfClCharacteristics, |
|
3278 /*OUT*/ PNDIS_HANDLE NdisAfHandle); |
|
3279 |
|
3280 NDISAPI |
|
3281 NDIS_STATUS |
|
3282 DDKAPI |
|
3283 NdisClRegisterSap( |
|
3284 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
3285 /*IN*/ NDIS_HANDLE ProtocolSapContext, |
|
3286 /*IN*/ PCO_SAP Sap, |
|
3287 /*OUT*/ PNDIS_HANDLE NdisSapHandle); |
|
3288 |
|
3289 |
|
3290 /* Call Manager services */ |
|
3291 |
|
3292 NDISAPI |
|
3293 NDIS_STATUS |
|
3294 DDKAPI |
|
3295 NdisCmActivateVc( |
|
3296 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3297 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters); |
|
3298 |
|
3299 NDISAPI |
|
3300 VOID |
|
3301 DDKAPI |
|
3302 NdisCmAddPartyComplete( |
|
3303 /*IN*/ NDIS_STATUS Status, |
|
3304 /*IN*/ NDIS_HANDLE NdisPartyHandle, |
|
3305 /*IN*/ NDIS_HANDLE CallMgrPartyContext /*OPTIONAL*/, |
|
3306 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3307 |
|
3308 NDISAPI |
|
3309 VOID |
|
3310 DDKAPI |
|
3311 NdisCmCloseAddressFamilyComplete( |
|
3312 /*IN*/ NDIS_STATUS Status, |
|
3313 /*IN*/ NDIS_HANDLE NdisAfHandle); |
|
3314 |
|
3315 NDISAPI |
|
3316 VOID |
|
3317 DDKAPI |
|
3318 NdisCmCloseCallComplete( |
|
3319 /*IN*/ NDIS_STATUS Status, |
|
3320 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3321 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/); |
|
3322 |
|
3323 NDISAPI |
|
3324 NDIS_STATUS |
|
3325 DDKAPI |
|
3326 NdisCmDeactivateVc( |
|
3327 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3328 |
|
3329 NDISAPI |
|
3330 VOID |
|
3331 DDKAPI |
|
3332 NdisCmDeregisterSapComplete( |
|
3333 /*IN*/ NDIS_STATUS Status, |
|
3334 /*IN*/ NDIS_HANDLE NdisSapHandle); |
|
3335 |
|
3336 NDISAPI |
|
3337 VOID |
|
3338 DDKAPI |
|
3339 NdisCmDispatchCallConnected( |
|
3340 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3341 |
|
3342 NDISAPI |
|
3343 NDIS_STATUS |
|
3344 DDKAPI |
|
3345 NdisCmDispatchIncomingCall( |
|
3346 /*IN*/ NDIS_HANDLE NdisSapHandle, |
|
3347 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3348 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3349 |
|
3350 NDISAPI |
|
3351 VOID |
|
3352 DDKAPI |
|
3353 NdisCmDispatchIncomingCallQoSChange( |
|
3354 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3355 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3356 |
|
3357 NDISAPI |
|
3358 VOID |
|
3359 DDKAPI |
|
3360 NdisCmDispatchIncomingCloseCall( |
|
3361 /*IN*/ NDIS_STATUS CloseStatus, |
|
3362 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3363 /*IN*/ PVOID Buffer /*OPTIONAL*/, |
|
3364 /*IN*/ UINT Size); |
|
3365 |
|
3366 NDISAPI |
|
3367 VOID |
|
3368 DDKAPI |
|
3369 NdisCmDispatchIncomingDropParty( |
|
3370 /*IN*/ NDIS_STATUS DropStatus, |
|
3371 /*IN*/ NDIS_HANDLE NdisPartyHandle, |
|
3372 /*IN*/ PVOID Buffer /*OPTIONAL*/, |
|
3373 /*IN*/ UINT Size); |
|
3374 |
|
3375 NDISAPI |
|
3376 VOID |
|
3377 DDKAPI |
|
3378 NdisCmDropPartyComplete( |
|
3379 /*IN*/ NDIS_STATUS Status, |
|
3380 /*IN*/ NDIS_HANDLE NdisPartyHandle); |
|
3381 |
|
3382 NDISAPI |
|
3383 VOID |
|
3384 DDKAPI |
|
3385 NdisCmMakeCallComplete( |
|
3386 /*IN*/ NDIS_STATUS Status, |
|
3387 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3388 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
3389 /*IN*/ NDIS_HANDLE CallMgrPartyContext /*OPTIONAL*/, |
|
3390 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3391 |
|
3392 NDISAPI |
|
3393 VOID |
|
3394 DDKAPI |
|
3395 NdisCmModifyCallQoSComplete( |
|
3396 /*IN*/ NDIS_STATUS Status, |
|
3397 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3398 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3399 |
|
3400 NDISAPI |
|
3401 VOID |
|
3402 DDKAPI |
|
3403 NdisCmOpenAddressFamilyComplete( |
|
3404 /*IN*/ NDIS_STATUS Status, |
|
3405 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
3406 /*IN*/ NDIS_HANDLE CallMgrAfContext); |
|
3407 |
|
3408 NDISAPI |
|
3409 NDIS_STATUS |
|
3410 DDKAPI |
|
3411 NdisCmRegisterAddressFamily( |
|
3412 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
3413 /*IN*/ PCO_ADDRESS_FAMILY AddressFamily, |
|
3414 /*IN*/ PNDIS_CALL_MANAGER_CHARACTERISTICS CmCharacteristics, |
|
3415 /*IN*/ UINT SizeOfCmCharacteristics); |
|
3416 |
|
3417 NDISAPI |
|
3418 VOID |
|
3419 DDKAPI |
|
3420 NdisCmRegisterSapComplete( |
|
3421 /*IN*/ NDIS_STATUS Status, |
|
3422 /*IN*/ NDIS_HANDLE NdisSapHandle, |
|
3423 /*IN*/ NDIS_HANDLE CallMgrSapContext); |
|
3424 |
|
3425 |
|
3426 NDISAPI |
|
3427 NDIS_STATUS |
|
3428 DDKAPI |
|
3429 NdisMCmActivateVc( |
|
3430 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3431 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3432 |
|
3433 NDISAPI |
|
3434 NDIS_STATUS |
|
3435 DDKAPI |
|
3436 NdisMCmCreateVc( |
|
3437 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3438 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
3439 /*IN*/ NDIS_HANDLE MiniportVcContext, |
|
3440 /*OUT*/ PNDIS_HANDLE NdisVcHandle); |
|
3441 |
|
3442 NDISAPI |
|
3443 NDIS_STATUS |
|
3444 DDKAPI |
|
3445 NdisMCmDeactivateVc( |
|
3446 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3447 |
|
3448 NDISAPI |
|
3449 NDIS_STATUS |
|
3450 DDKAPI |
|
3451 NdisMCmDeleteVc( |
|
3452 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3453 |
|
3454 NDISAPI |
|
3455 NDIS_STATUS |
|
3456 DDKAPI |
|
3457 NdisMCmRegisterAddressFamily( |
|
3458 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3459 /*IN*/ PCO_ADDRESS_FAMILY AddressFamily, |
|
3460 /*IN*/ PNDIS_CALL_MANAGER_CHARACTERISTICS CmCharacteristics, |
|
3461 /*IN*/ UINT SizeOfCmCharacteristics); |
|
3462 |
|
3463 NDISAPI |
|
3464 NDIS_STATUS |
|
3465 DDKAPI |
|
3466 NdisMCmRequest( |
|
3467 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
3468 /*IN*/ NDIS_HANDLE NdisVcHandle /*OPTIONAL*/, |
|
3469 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
3470 /*IN OUT*/ PNDIS_REQUEST NdisRequest); |
|
3471 |
|
3472 |
|
3473 /* Connection-oriented services */ |
|
3474 |
|
3475 NDISAPI |
|
3476 NDIS_STATUS |
|
3477 DDKAPI |
|
3478 NdisCoCreateVc( |
|
3479 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
3480 /*IN*/ NDIS_HANDLE NdisAfHandle /*OPTIONAL*/, |
|
3481 /*IN*/ NDIS_HANDLE ProtocolVcContext, |
|
3482 /*IN OUT*/ PNDIS_HANDLE NdisVcHandle); |
|
3483 |
|
3484 NDISAPI |
|
3485 NDIS_STATUS |
|
3486 DDKAPI |
|
3487 NdisCoDeleteVc( |
|
3488 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3489 |
|
3490 NDISAPI |
|
3491 NDIS_STATUS |
|
3492 DDKAPI |
|
3493 NdisCoRequest( |
|
3494 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
3495 /*IN*/ NDIS_HANDLE NdisAfHandle /*OPTIONAL*/, |
|
3496 /*IN*/ NDIS_HANDLE NdisVcHandle /*OPTIONAL*/, |
|
3497 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
3498 /*IN OUT*/ PNDIS_REQUEST NdisRequest); |
|
3499 |
|
3500 NDISAPI |
|
3501 VOID |
|
3502 DDKAPI |
|
3503 NdisCoRequestComplete( |
|
3504 /*IN*/ NDIS_STATUS Status, |
|
3505 /*IN*/ NDIS_HANDLE NdisAfHandle, |
|
3506 /*IN*/ NDIS_HANDLE NdisVcHandle /*OPTIONAL*/, |
|
3507 /*IN*/ NDIS_HANDLE NdisPartyHandle /*OPTIONAL*/, |
|
3508 /*IN*/ PNDIS_REQUEST NdisRequest); |
|
3509 |
|
3510 NDISAPI |
|
3511 VOID |
|
3512 DDKAPI |
|
3513 NdisCoSendPackets( |
|
3514 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3515 /*IN*/ PPNDIS_PACKET PacketArray, |
|
3516 /*IN*/ UINT NumberOfPackets); |
|
3517 |
|
3518 NDISAPI |
|
3519 VOID |
|
3520 DDKAPI |
|
3521 NdisMCoActivateVcComplete( |
|
3522 /*IN*/ NDIS_STATUS Status, |
|
3523 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3524 /*IN*/ PCO_CALL_PARAMETERS CallParameters); |
|
3525 |
|
3526 NDISAPI |
|
3527 VOID |
|
3528 DDKAPI |
|
3529 NdisMCoDeactivateVcComplete( |
|
3530 /*IN*/ NDIS_STATUS Status, |
|
3531 /*IN*/ NDIS_HANDLE NdisVcHandle); |
|
3532 |
|
3533 NDISAPI |
|
3534 VOID |
|
3535 DDKAPI |
|
3536 NdisMCoIndicateReceivePacket( |
|
3537 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3538 /*IN*/ PPNDIS_PACKET PacketArray, |
|
3539 /*IN*/ UINT NumberOfPackets); |
|
3540 |
|
3541 NDISAPI |
|
3542 VOID |
|
3543 DDKAPI |
|
3544 NdisMCoIndicateStatus( |
|
3545 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3546 /*IN*/ NDIS_HANDLE NdisVcHandle /*OPTIONAL*/, |
|
3547 /*IN*/ NDIS_STATUS GeneralStatus, |
|
3548 /*IN*/ PVOID StatusBuffer /*OPTIONAL*/, |
|
3549 /*IN*/ ULONG StatusBufferSize); |
|
3550 |
|
3551 NDISAPI |
|
3552 VOID |
|
3553 DDKAPI |
|
3554 NdisMCoReceiveComplete( |
|
3555 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
3556 |
|
3557 NDISAPI |
|
3558 VOID |
|
3559 DDKAPI |
|
3560 NdisMCoRequestComplete( |
|
3561 /*IN*/ NDIS_STATUS Status, |
|
3562 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
3563 /*IN*/ PNDIS_REQUEST Request); |
|
3564 |
|
3565 NDISAPI |
|
3566 VOID |
|
3567 DDKAPI |
|
3568 NdisMCoSendComplete( |
|
3569 /*IN*/ NDIS_STATUS Status, |
|
3570 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3571 /*IN*/ PNDIS_PACKET Packet); |
|
3572 |
|
3573 |
|
3574 /* NDIS 5.0 extensions for intermediate drivers */ |
|
3575 |
|
3576 NDISAPI |
|
3577 VOID |
|
3578 DDKAPI |
|
3579 NdisIMAssociateMiniport( |
|
3580 /*IN*/ NDIS_HANDLE DriverHandle, |
|
3581 /*IN*/ NDIS_HANDLE ProtocolHandle); |
|
3582 |
|
3583 NDISAPI |
|
3584 NDIS_STATUS |
|
3585 DDKAPI |
|
3586 NdisIMCancelInitializeDeviceInstance( |
|
3587 /*IN*/ NDIS_HANDLE DriverHandle, |
|
3588 /*IN*/ PNDIS_STRING DeviceInstance); |
|
3589 |
|
3590 NDISAPI |
|
3591 VOID |
|
3592 DDKAPI |
|
3593 NdisIMCopySendCompletePerPacketInfo( |
|
3594 /*IN*/ PNDIS_PACKET DstPacket, |
|
3595 /*IN*/ PNDIS_PACKET SrcPacket); |
|
3596 |
|
3597 NDISAPI |
|
3598 VOID |
|
3599 DDKAPI |
|
3600 NdisIMCopySendPerPacketInfo( |
|
3601 /*IN*/ PNDIS_PACKET DstPacket, |
|
3602 /*IN*/ PNDIS_PACKET SrcPacket); |
|
3603 |
|
3604 NDISAPI |
|
3605 VOID |
|
3606 DDKAPI |
|
3607 NdisIMDeregisterLayeredMiniport( |
|
3608 /*IN*/ NDIS_HANDLE DriverHandle); |
|
3609 |
|
3610 NDISAPI |
|
3611 NDIS_HANDLE |
|
3612 DDKAPI |
|
3613 NdisIMGetBindingContext( |
|
3614 /*IN*/ NDIS_HANDLE NdisBindingHandle); |
|
3615 |
|
3616 NDISAPI |
|
3617 NDIS_HANDLE |
|
3618 DDKAPI |
|
3619 NdisIMGetDeviceContext( |
|
3620 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
3621 |
|
3622 NDISAPI |
|
3623 NDIS_STATUS |
|
3624 DDKAPI |
|
3625 NdisIMInitializeDeviceInstanceEx( |
|
3626 /*IN*/ NDIS_HANDLE DriverHandle, |
|
3627 /*IN*/ PNDIS_STRING DriverInstance, |
|
3628 /*IN*/ NDIS_HANDLE DeviceContext /*OPTIONAL*/); |
|
3629 |
|
3630 NDISAPI |
|
3631 PSINGLE_LIST_ENTRY |
|
3632 DDKAPI |
|
3633 NdisInterlockedPopEntrySList( |
|
3634 /*IN*/ PSLIST_HEADER ListHead, |
|
3635 /*IN*/ PKSPIN_LOCK Lock); |
|
3636 |
|
3637 NDISAPI |
|
3638 PSINGLE_LIST_ENTRY |
|
3639 DDKAPI |
|
3640 NdisInterlockedPushEntrySList( |
|
3641 /*IN*/ PSLIST_HEADER ListHead, |
|
3642 /*IN*/ PSINGLE_LIST_ENTRY ListEntry, |
|
3643 /*IN*/ PKSPIN_LOCK Lock); |
|
3644 |
|
3645 NDISAPI |
|
3646 VOID |
|
3647 DDKAPI |
|
3648 NdisQueryBufferSafe( |
|
3649 /*IN*/ PNDIS_BUFFER Buffer, |
|
3650 /*OUT*/ PVOID *VirtualAddress /*OPTIONAL*/, |
|
3651 /*OUT*/ PUINT Length, |
|
3652 /*IN*/ UINT Priority); |
|
3653 |
|
3654 |
|
3655 /* Prototypes for NDIS_MINIPORT_CHARACTERISTICS */ |
|
3656 |
|
3657 typedef BOOLEAN DDKAPI |
|
3658 (*W_CHECK_FOR_HANG_HANDLER)( |
|
3659 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3660 |
|
3661 typedef VOID DDKAPI |
|
3662 (*W_DISABLE_INTERRUPT_HANDLER)( |
|
3663 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3664 |
|
3665 typedef VOID DDKAPI |
|
3666 (*W_ENABLE_INTERRUPT_HANDLER)( |
|
3667 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3668 |
|
3669 typedef VOID DDKAPI |
|
3670 (*W_HALT_HANDLER)( |
|
3671 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3672 |
|
3673 typedef VOID DDKAPI |
|
3674 (*W_HANDLE_INTERRUPT_HANDLER)( |
|
3675 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3676 |
|
3677 typedef NDIS_STATUS DDKAPI |
|
3678 (*W_INITIALIZE_HANDLER)( |
|
3679 /*OUT*/ PNDIS_STATUS OpenErrorStatus, |
|
3680 /*OUT*/ PUINT SelectedMediumIndex, |
|
3681 /*IN*/ PNDIS_MEDIUM MediumArray, |
|
3682 /*IN*/ UINT MediumArraySize, |
|
3683 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3684 /*IN*/ NDIS_HANDLE WrapperConfigurationContext); |
|
3685 |
|
3686 typedef VOID DDKAPI |
|
3687 (*W_ISR_HANDLER)( |
|
3688 /*OUT*/ PBOOLEAN InterruptRecognized, |
|
3689 /*OUT*/ PBOOLEAN QueueMiniportHandleInterrupt, |
|
3690 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3691 |
|
3692 typedef NDIS_STATUS DDKAPI |
|
3693 (*W_QUERY_INFORMATION_HANDLER)( |
|
3694 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3695 /*IN*/ NDIS_OID Oid, |
|
3696 /*IN*/ PVOID InformationBuffer, |
|
3697 /*IN*/ ULONG InformationBufferLength, |
|
3698 /*OUT*/ PULONG BytesWritten, |
|
3699 /*OUT*/ PULONG BytesNeeded); |
|
3700 |
|
3701 typedef NDIS_STATUS DDKAPI |
|
3702 (*W_RECONFIGURE_HANDLER)( |
|
3703 /*OUT*/ PNDIS_STATUS OpenErrorStatus, |
|
3704 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3705 /*IN*/ NDIS_HANDLE WrapperConfigurationContext); |
|
3706 |
|
3707 typedef NDIS_STATUS DDKAPI |
|
3708 (*W_RESET_HANDLER)( |
|
3709 /*OUT*/ PBOOLEAN AddressingReset, |
|
3710 /*IN*/ NDIS_HANDLE MiniportAdapterContext); |
|
3711 |
|
3712 typedef NDIS_STATUS DDKAPI |
|
3713 (*W_SEND_HANDLER)( |
|
3714 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3715 /*IN*/ PNDIS_PACKET Packet, |
|
3716 /*IN*/ UINT Flags); |
|
3717 |
|
3718 typedef NDIS_STATUS DDKAPI |
|
3719 (*WM_SEND_HANDLER)( |
|
3720 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3721 /*IN*/ NDIS_HANDLE NdisLinkHandle, |
|
3722 /*IN*/ PNDIS_WAN_PACKET Packet); |
|
3723 |
|
3724 typedef NDIS_STATUS DDKAPI |
|
3725 (*W_SET_INFORMATION_HANDLER)( |
|
3726 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3727 /*IN*/ NDIS_OID Oid, |
|
3728 /*IN*/ PVOID InformationBuffer, |
|
3729 /*IN*/ ULONG InformationBufferLength, |
|
3730 /*OUT*/ PULONG BytesRead, |
|
3731 /*OUT*/ PULONG BytesNeeded); |
|
3732 |
|
3733 typedef NDIS_STATUS DDKAPI |
|
3734 (*W_TRANSFER_DATA_HANDLER)( |
|
3735 /*OUT*/ PNDIS_PACKET Packet, |
|
3736 /*OUT*/ PUINT BytesTransferred, |
|
3737 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3738 /*IN*/ NDIS_HANDLE MiniportReceiveContext, |
|
3739 /*IN*/ UINT ByteOffset, |
|
3740 /*IN*/ UINT BytesToTransfer); |
|
3741 |
|
3742 typedef NDIS_STATUS DDKAPI |
|
3743 (*WM_TRANSFER_DATA_HANDLER)( |
|
3744 VOID); |
|
3745 |
|
3746 |
|
3747 /* NDIS structures available only to miniport drivers */ |
|
3748 |
|
3749 #define NDIS30_MINIPORT_CHARACTERISTICS_S \ |
|
3750 UCHAR MajorNdisVersion; \ |
|
3751 UCHAR MinorNdisVersion; \ |
|
3752 UINT Reserved; \ |
|
3753 W_CHECK_FOR_HANG_HANDLER CheckForHangHandler; \ |
|
3754 W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler; \ |
|
3755 W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler; \ |
|
3756 W_HALT_HANDLER HaltHandler; \ |
|
3757 W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler; \ |
|
3758 W_INITIALIZE_HANDLER InitializeHandler; \ |
|
3759 W_ISR_HANDLER ISRHandler; \ |
|
3760 W_QUERY_INFORMATION_HANDLER QueryInformationHandler; \ |
|
3761 W_RECONFIGURE_HANDLER ReconfigureHandler; \ |
|
3762 W_RESET_HANDLER ResetHandler; \ |
|
3763 _ANONYMOUS_UNION union { \ |
|
3764 W_SEND_HANDLER SendHandler; \ |
|
3765 WM_SEND_HANDLER WanSendHandler; \ |
|
3766 } _UNION_NAME(u1); \ |
|
3767 W_SET_INFORMATION_HANDLER SetInformationHandler; \ |
|
3768 _ANONYMOUS_UNION union { \ |
|
3769 W_TRANSFER_DATA_HANDLER TransferDataHandler; \ |
|
3770 WM_TRANSFER_DATA_HANDLER WanTransferDataHandler; \ |
|
3771 } _UNION_NAME(u2); |
|
3772 |
|
3773 typedef struct _NDIS30_MINIPORT_CHARACTERISTICS { |
|
3774 NDIS30_MINIPORT_CHARACTERISTICS_S |
|
3775 } NDIS30_MINIPORT_CHARACTERISTICS, *PSNDIS30_MINIPORT_CHARACTERISTICS; |
|
3776 |
|
3777 |
|
3778 /* Extensions for NDIS 4.0 miniports */ |
|
3779 |
|
3780 typedef VOID DDKAPI |
|
3781 (*W_SEND_PACKETS_HANDLER)( |
|
3782 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3783 /*IN*/ PPNDIS_PACKET PacketArray, |
|
3784 /*IN*/ UINT NumberOfPackets); |
|
3785 |
|
3786 typedef VOID DDKAPI |
|
3787 (*W_RETURN_PACKET_HANDLER)( |
|
3788 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3789 /*IN*/ PNDIS_PACKET Packet); |
|
3790 |
|
3791 typedef VOID DDKAPI |
|
3792 (*W_ALLOCATE_COMPLETE_HANDLER)( |
|
3793 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3794 /*IN*/ PVOID VirtualAddress, |
|
3795 /*IN*/ PNDIS_PHYSICAL_ADDRESS PhysicalAddress, |
|
3796 /*IN*/ ULONG Length, |
|
3797 /*IN*/ PVOID Context); |
|
3798 |
|
3799 #ifdef __cplusplus |
|
3800 |
|
3801 #define NDIS40_MINIPORT_CHARACTERISTICS_S \ |
|
3802 NDIS30_MINIPORT_CHARACTERISTICS Ndis30Chars; \ |
|
3803 W_RETURN_PACKET_HANDLER ReturnPacketHandler; \ |
|
3804 W_SEND_PACKETS_HANDLER SendPacketsHandler; \ |
|
3805 W_ALLOCATE_COMPLETE_HANDLER AllocateCompleteHandler; |
|
3806 |
|
3807 #else /* !__cplusplus */ |
|
3808 |
|
3809 #define NDIS40_MINIPORT_CHARACTERISTICS_S \ |
|
3810 NDIS30_MINIPORT_CHARACTERISTICS_S \ |
|
3811 W_RETURN_PACKET_HANDLER ReturnPacketHandler; \ |
|
3812 W_SEND_PACKETS_HANDLER SendPacketsHandler; \ |
|
3813 W_ALLOCATE_COMPLETE_HANDLER AllocateCompleteHandler; |
|
3814 |
|
3815 #endif /* !__cplusplus */ |
|
3816 |
|
3817 typedef struct _NDIS40_MINIPORT_CHARACTERISTICS { |
|
3818 NDIS40_MINIPORT_CHARACTERISTICS_S |
|
3819 } NDIS40_MINIPORT_CHARACTERISTICS, *PNDIS40_MINIPORT_CHARACTERISTICS; |
|
3820 |
|
3821 |
|
3822 /* Extensions for NDIS 5.0 miniports */ |
|
3823 |
|
3824 typedef NDIS_STATUS DDKAPI |
|
3825 (*W_CO_CREATE_VC_HANDLER)( |
|
3826 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3827 /*IN*/ NDIS_HANDLE NdisVcHandle, |
|
3828 /*OUT*/ PNDIS_HANDLE MiniportVcContext); |
|
3829 |
|
3830 typedef NDIS_STATUS DDKAPI |
|
3831 (*W_CO_DELETE_VC_HANDLER)( |
|
3832 /*IN*/ NDIS_HANDLE MiniportVcContext); |
|
3833 |
|
3834 typedef NDIS_STATUS DDKAPI |
|
3835 (*W_CO_ACTIVATE_VC_HANDLER)( |
|
3836 /*IN*/ NDIS_HANDLE MiniportVcContext, |
|
3837 /*IN OUT*/ PCO_CALL_PARAMETERS CallParameters); |
|
3838 |
|
3839 typedef NDIS_STATUS DDKAPI |
|
3840 (*W_CO_DEACTIVATE_VC_HANDLER)( |
|
3841 /*IN*/ NDIS_HANDLE MiniportVcContext); |
|
3842 |
|
3843 typedef VOID DDKAPI |
|
3844 (*W_CO_SEND_PACKETS_HANDLER)( |
|
3845 /*IN*/ NDIS_HANDLE MiniportVcContext, |
|
3846 /*IN*/ PPNDIS_PACKET PacketArray, |
|
3847 /*IN*/ UINT NumberOfPackets); |
|
3848 |
|
3849 typedef NDIS_STATUS DDKAPI |
|
3850 (*W_CO_REQUEST_HANDLER)( |
|
3851 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3852 /*IN*/ NDIS_HANDLE MiniportVcContext /*OPTIONAL*/, |
|
3853 /*IN OUT*/ PNDIS_REQUEST NdisRequest); |
|
3854 |
|
3855 #ifdef __cplusplus |
|
3856 |
|
3857 #define NDIS50_MINIPORT_CHARACTERISTICS_S \ |
|
3858 NDIS40_MINIPORT_CHARACTERISTICS Ndis40Chars; \ |
|
3859 W_CO_CREATE_VC_HANDLER CoCreateVcHandler; \ |
|
3860 W_CO_DELETE_VC_HANDLER CoDeleteVcHandler; \ |
|
3861 W_CO_ACTIVATE_VC_HANDLER CoActivateVcHandler; \ |
|
3862 W_CO_DEACTIVATE_VC_HANDLER CoDeactivateVcHandler; \ |
|
3863 W_CO_SEND_PACKETS_HANDLER CoSendPacketsHandler; \ |
|
3864 W_CO_REQUEST_HANDLER CoRequestHandler; |
|
3865 |
|
3866 #else /* !__cplusplus */ |
|
3867 |
|
3868 #define NDIS50_MINIPORT_CHARACTERISTICS_S \ |
|
3869 NDIS40_MINIPORT_CHARACTERISTICS_S \ |
|
3870 W_CO_CREATE_VC_HANDLER CoCreateVcHandler; \ |
|
3871 W_CO_DELETE_VC_HANDLER CoDeleteVcHandler; \ |
|
3872 W_CO_ACTIVATE_VC_HANDLER CoActivateVcHandler; \ |
|
3873 W_CO_DEACTIVATE_VC_HANDLER CoDeactivateVcHandler; \ |
|
3874 W_CO_SEND_PACKETS_HANDLER CoSendPacketsHandler; \ |
|
3875 W_CO_REQUEST_HANDLER CoRequestHandler; |
|
3876 |
|
3877 #endif /* !__cplusplus */ |
|
3878 |
|
3879 typedef struct _NDIS50_MINIPORT_CHARACTERISTICS { |
|
3880 NDIS50_MINIPORT_CHARACTERISTICS_S |
|
3881 } NDIS50_MINIPORT_CHARACTERISTICS, *PSNDIS50_MINIPORT_CHARACTERISTICS; |
|
3882 |
|
3883 |
|
3884 /* Extensions for NDIS 5.1 miniports */ |
|
3885 |
|
3886 typedef VOID DDKAPI |
|
3887 (*W_CANCEL_SEND_PACKETS_HANDLER)( |
|
3888 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
3889 /*IN*/ PVOID CancelId); |
|
3890 |
|
3891 |
|
3892 #if defined(NDIS51) |
|
3893 typedef struct _NDIS_MINIPORT_CHARACTERISTICS { |
|
3894 NDIS50_MINIPORT_CHARACTERISTICS_S |
|
3895 } NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS; |
|
3896 #elif defined(NDIS50) |
|
3897 typedef struct _NDIS_MINIPORT_CHARACTERISTICS { |
|
3898 NDIS50_MINIPORT_CHARACTERISTICS_S |
|
3899 } NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS; |
|
3900 #elif defined(NDIS40) |
|
3901 typedef struct _NDIS_MINIPORT_CHARACTERISTICS { |
|
3902 NDIS40_MINIPORT_CHARACTERISTICS_S |
|
3903 } NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS; |
|
3904 #elif defined(NDIS30) |
|
3905 typedef struct _NDIS_MINIPORT_CHARACTERISTICS { |
|
3906 NDIS30_MINIPORT_CHARACTERISTICS_S |
|
3907 } NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS; |
|
3908 #endif /* NDIS30 */ |
|
3909 |
|
3910 |
|
3911 typedef NDIS_STATUS DDKAPI |
|
3912 (*SEND_HANDLER)( |
|
3913 /*IN*/ NDIS_HANDLE MacBindingHandle, |
|
3914 /*IN*/ PNDIS_PACKET Packet); |
|
3915 |
|
3916 typedef NDIS_STATUS DDKAPI |
|
3917 (*TRANSFER_DATA_HANDLER)( |
|
3918 /*IN*/ NDIS_HANDLE MacBindingHandle, |
|
3919 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
3920 /*IN*/ UINT ByteOffset, |
|
3921 /*IN*/ UINT BytesToTransfer, |
|
3922 /*OUT*/ PNDIS_PACKET Packet, |
|
3923 /*OUT*/ PUINT BytesTransferred); |
|
3924 |
|
3925 typedef NDIS_STATUS DDKAPI |
|
3926 (*RESET_HANDLER)( |
|
3927 /*IN*/ NDIS_HANDLE MacBindingHandle); |
|
3928 |
|
3929 typedef NDIS_STATUS DDKAPI |
|
3930 (*REQUEST_HANDLER)( |
|
3931 /*IN*/ NDIS_HANDLE MacBindingHandle, |
|
3932 /*IN*/ PNDIS_REQUEST NdisRequest); |
|
3933 |
|
3934 |
|
3935 |
|
3936 /* Structures available only to full MAC drivers */ |
|
3937 |
|
3938 typedef BOOLEAN DDKAPI |
|
3939 (*PNDIS_INTERRUPT_SERVICE)( |
|
3940 /*IN*/ PVOID InterruptContext); |
|
3941 |
|
3942 typedef VOID DDKAPI |
|
3943 (*PNDIS_DEFERRED_PROCESSING)( |
|
3944 /*IN*/ PVOID SystemSpecific1, |
|
3945 /*IN*/ PVOID InterruptContext, |
|
3946 /*IN*/ PVOID SystemSpecific2, |
|
3947 /*IN*/ PVOID SystemSpecific3); |
|
3948 |
|
3949 |
|
3950 |
|
3951 typedef struct _NDIS_MINIPORT_BLOCK NDIS_MINIPORT_BLOCK, *PNDIS_MINIPORT_BLOCK; |
|
3952 typedef struct _NDIS_PROTOCOL_BLOCK NDIS_PROTOCOL_BLOCK, *PNDIS_PROTOCOL_BLOCK; |
|
3953 typedef struct _NDIS_OPEN_BLOCK NDIS_OPEN_BLOCK, *PNDIS_OPEN_BLOCK; |
|
3954 typedef struct _NDIS_M_DRIVER_BLOCK NDIS_M_DRIVER_BLOCK, *PNDIS_M_DRIVER_BLOCK; |
|
3955 typedef struct _NDIS_AF_LIST NDIS_AF_LIST, *PNDIS_AF_LIST; |
|
3956 |
|
3957 |
|
3958 typedef struct _NDIS_MINIPORT_INTERRUPT { |
|
3959 PKINTERRUPT InterruptObject; |
|
3960 KSPIN_LOCK DpcCountLock; |
|
3961 PVOID MiniportIdField; |
|
3962 W_ISR_HANDLER MiniportIsr; |
|
3963 W_HANDLE_INTERRUPT_HANDLER MiniportDpc; |
|
3964 KDPC InterruptDpc; |
|
3965 PNDIS_MINIPORT_BLOCK Miniport; |
|
3966 UCHAR DpcCount; |
|
3967 BOOLEAN Filler1; |
|
3968 KEVENT DpcsCompletedEvent; |
|
3969 BOOLEAN SharedInterrupt; |
|
3970 BOOLEAN IsrRequested; |
|
3971 } NDIS_MINIPORT_INTERRUPT, *PNDIS_MINIPORT_INTERRUPT; |
|
3972 |
|
3973 typedef struct _NDIS_MINIPORT_TIMER { |
|
3974 KTIMER Timer; |
|
3975 KDPC Dpc; |
|
3976 PNDIS_TIMER_FUNCTION MiniportTimerFunction; |
|
3977 PVOID MiniportTimerContext; |
|
3978 PNDIS_MINIPORT_BLOCK Miniport; |
|
3979 struct _NDIS_MINIPORT_TIMER *NextDeferredTimer; |
|
3980 } NDIS_MINIPORT_TIMER, *PNDIS_MINIPORT_TIMER; |
|
3981 |
|
3982 typedef struct _NDIS_INTERRUPT { |
|
3983 PKINTERRUPT InterruptObject; |
|
3984 KSPIN_LOCK DpcCountLock; |
|
3985 PNDIS_INTERRUPT_SERVICE MacIsr; |
|
3986 PNDIS_DEFERRED_PROCESSING MacDpc; |
|
3987 KDPC InterruptDpc; |
|
3988 PVOID InterruptContext; |
|
3989 UCHAR DpcCount; |
|
3990 BOOLEAN Removing; |
|
3991 KEVENT DpcsCompletedEvent; |
|
3992 } NDIS_INTERRUPT, *PNDIS_INTERRUPT; |
|
3993 |
|
3994 |
|
3995 typedef struct _MAP_REGISTER_ENTRY { |
|
3996 PVOID MapRegister; |
|
3997 BOOLEAN WriteToDevice; |
|
3998 } MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY; |
|
3999 |
|
4000 |
|
4001 typedef enum _NDIS_WORK_ITEM_TYPE { |
|
4002 NdisWorkItemRequest, |
|
4003 NdisWorkItemSend, |
|
4004 NdisWorkItemReturnPackets, |
|
4005 NdisWorkItemResetRequested, |
|
4006 NdisWorkItemResetInProgress, |
|
4007 NdisWorkItemHalt, |
|
4008 NdisWorkItemSendLoopback, |
|
4009 NdisWorkItemMiniportCallback, |
|
4010 NdisMaxWorkItems |
|
4011 } NDIS_WORK_ITEM_TYPE, *PNDIS_WORK_ITEM_TYPE; |
|
4012 |
|
4013 #define NUMBER_OF_WORK_ITEM_TYPES NdisMaxWorkItems |
|
4014 #define NUMBER_OF_SINGLE_WORK_ITEMS 6 |
|
4015 |
|
4016 typedef struct _NDIS_MINIPORT_WORK_ITEM { |
|
4017 SINGLE_LIST_ENTRY Link; |
|
4018 NDIS_WORK_ITEM_TYPE WorkItemType; |
|
4019 PVOID WorkItemContext; |
|
4020 } NDIS_MINIPORT_WORK_ITEM, *PNDIS_MINIPORT_WORK_ITEM; |
|
4021 |
|
4022 |
|
4023 typedef struct _NDIS_BIND_PATHS { |
|
4024 UINT Number; |
|
4025 NDIS_STRING Paths[1]; |
|
4026 } NDIS_BIND_PATHS, *PNDIS_BIND_PATHS; |
|
4027 |
|
4028 #define DECLARE_UNKNOWN_STRUCT(BaseName) \ |
|
4029 typedef struct _##BaseName BaseName, *P##BaseName; |
|
4030 |
|
4031 #define DECLARE_UNKNOWN_PROTOTYPE(Name) \ |
|
4032 typedef VOID (*(Name))(VOID); |
|
4033 |
|
4034 #define ETH_LENGTH_OF_ADDRESS 6 |
|
4035 |
|
4036 DECLARE_UNKNOWN_STRUCT(ETH_BINDING_INFO) |
|
4037 |
|
4038 DECLARE_UNKNOWN_PROTOTYPE(ETH_ADDRESS_CHANGE) |
|
4039 DECLARE_UNKNOWN_PROTOTYPE(ETH_FILTER_CHANGE) |
|
4040 DECLARE_UNKNOWN_PROTOTYPE(ETH_DEFERRED_CLOSE) |
|
4041 |
|
4042 typedef struct _ETH_FILTER { |
|
4043 PNDIS_SPIN_LOCK Lock; |
|
4044 CHAR (*MCastAddressBuf)[ETH_LENGTH_OF_ADDRESS]; |
|
4045 struct _NDIS_MINIPORT_BLOCK *Miniport; |
|
4046 UINT CombinedPacketFilter; |
|
4047 PETH_BINDING_INFO OpenList; |
|
4048 ETH_ADDRESS_CHANGE AddressChangeAction; |
|
4049 ETH_FILTER_CHANGE FilterChangeAction; |
|
4050 ETH_DEFERRED_CLOSE CloseAction; |
|
4051 UINT MaxMulticastAddresses; |
|
4052 UINT NumAddresses; |
|
4053 UCHAR AdapterAddress[ETH_LENGTH_OF_ADDRESS]; |
|
4054 UINT OldCombinedPacketFilter; |
|
4055 CHAR (*OldMCastAddressBuf)[ETH_LENGTH_OF_ADDRESS]; |
|
4056 UINT OldNumAddresses; |
|
4057 PETH_BINDING_INFO DirectedList; |
|
4058 PETH_BINDING_INFO BMList; |
|
4059 PETH_BINDING_INFO MCastSet; |
|
4060 #if defined(_NDIS_) |
|
4061 UINT NumOpens; |
|
4062 PVOID BindListLock; |
|
4063 #endif |
|
4064 } ETH_FILTER, *PETH_FILTER; |
|
4065 |
|
4066 typedef VOID DDKAPI |
|
4067 (*ETH_RCV_COMPLETE_HANDLER)( |
|
4068 /*IN*/ PETH_FILTER Filter); |
|
4069 |
|
4070 typedef VOID DDKAPI |
|
4071 (*ETH_RCV_INDICATE_HANDLER)( |
|
4072 /*IN*/ PETH_FILTER Filter, |
|
4073 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
4074 /*IN*/ PCHAR Address, |
|
4075 /*IN*/ PVOID HeaderBuffer, |
|
4076 /*IN*/ UINT HeaderBufferSize, |
|
4077 /*IN*/ PVOID LookaheadBuffer, |
|
4078 /*IN*/ UINT LookaheadBufferSize, |
|
4079 /*IN*/ UINT PacketSize); |
|
4080 |
|
4081 typedef VOID DDKAPI |
|
4082 (*FDDI_RCV_COMPLETE_HANDLER)( |
|
4083 /*IN*/ PFDDI_FILTER Filter); |
|
4084 |
|
4085 typedef VOID DDKAPI |
|
4086 (*FDDI_RCV_INDICATE_HANDLER)( |
|
4087 /*IN*/ PFDDI_FILTER Filter, |
|
4088 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
4089 /*IN*/ PCHAR Address, |
|
4090 /*IN*/ UINT AddressLength, |
|
4091 /*IN*/ PVOID HeaderBuffer, |
|
4092 /*IN*/ UINT HeaderBufferSize, |
|
4093 /*IN*/ PVOID LookaheadBuffer, |
|
4094 /*IN*/ UINT LookaheadBufferSize, |
|
4095 /*IN*/ UINT PacketSize); |
|
4096 |
|
4097 typedef VOID DDKAPI |
|
4098 (*FILTER_PACKET_INDICATION_HANDLER)( |
|
4099 /*IN*/ NDIS_HANDLE Miniport, |
|
4100 /*IN*/ PPNDIS_PACKET PacketArray, |
|
4101 /*IN*/ UINT NumberOfPackets); |
|
4102 |
|
4103 typedef VOID DDKAPI |
|
4104 (*TR_RCV_COMPLETE_HANDLER)( |
|
4105 /*IN*/ PTR_FILTER Filter); |
|
4106 |
|
4107 typedef VOID DDKAPI |
|
4108 (*TR_RCV_INDICATE_HANDLER)( |
|
4109 /*IN*/ PTR_FILTER Filter, |
|
4110 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
4111 /*IN*/ PVOID HeaderBuffer, |
|
4112 /*IN*/ UINT HeaderBufferSize, |
|
4113 /*IN*/ PVOID LookaheadBuffer, |
|
4114 /*IN*/ UINT LookaheadBufferSize, |
|
4115 /*IN*/ UINT PacketSize); |
|
4116 |
|
4117 typedef VOID DDKAPI |
|
4118 (*WAN_RCV_COMPLETE_HANDLER)( |
|
4119 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4120 /*IN*/ NDIS_HANDLE NdisLinkContext); |
|
4121 |
|
4122 typedef VOID DDKAPI |
|
4123 (*WAN_RCV_HANDLER)( |
|
4124 /*OUT*/ PNDIS_STATUS Status, |
|
4125 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4126 /*IN*/ NDIS_HANDLE NdisLinkContext, |
|
4127 /*IN*/ PUCHAR Packet, |
|
4128 /*IN*/ ULONG PacketSize); |
|
4129 |
|
4130 typedef VOID DDKFASTAPI |
|
4131 (*NDIS_M_DEQUEUE_WORK_ITEM)( |
|
4132 /*IN*/ PNDIS_MINIPORT_BLOCK Miniport, |
|
4133 /*IN*/ NDIS_WORK_ITEM_TYPE WorkItemType, |
|
4134 /*OUT*/ PVOID *WorkItemContext); |
|
4135 |
|
4136 typedef NDIS_STATUS DDKFASTAPI |
|
4137 (*NDIS_M_QUEUE_NEW_WORK_ITEM)( |
|
4138 /*IN*/ PNDIS_MINIPORT_BLOCK Miniport, |
|
4139 /*IN*/ NDIS_WORK_ITEM_TYPE WorkItemType, |
|
4140 /*IN*/ PVOID WorkItemContext); |
|
4141 |
|
4142 typedef NDIS_STATUS DDKFASTAPI |
|
4143 (*NDIS_M_QUEUE_WORK_ITEM)( |
|
4144 /*IN*/ PNDIS_MINIPORT_BLOCK Miniport, |
|
4145 /*IN*/ NDIS_WORK_ITEM_TYPE WorkItemType, |
|
4146 /*IN*/ PVOID WorkItemContext); |
|
4147 |
|
4148 typedef VOID DDKAPI |
|
4149 (*NDIS_M_REQ_COMPLETE_HANDLER)( |
|
4150 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4151 /*IN*/ NDIS_STATUS Status); |
|
4152 |
|
4153 typedef VOID DDKAPI |
|
4154 (*NDIS_M_RESET_COMPLETE_HANDLER)( |
|
4155 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4156 /*IN*/ NDIS_STATUS Status, |
|
4157 /*IN*/ BOOLEAN AddressingReset); |
|
4158 |
|
4159 typedef VOID DDKAPI |
|
4160 (*NDIS_M_SEND_COMPLETE_HANDLER)( |
|
4161 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4162 /*IN*/ PNDIS_PACKET Packet, |
|
4163 /*IN*/ NDIS_STATUS Status); |
|
4164 |
|
4165 typedef VOID DDKAPI |
|
4166 (*NDIS_M_SEND_RESOURCES_HANDLER)( |
|
4167 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
4168 |
|
4169 typedef BOOLEAN DDKFASTAPI |
|
4170 (*NDIS_M_START_SENDS)( |
|
4171 /*IN*/ PNDIS_MINIPORT_BLOCK Miniport); |
|
4172 |
|
4173 typedef VOID DDKAPI |
|
4174 (*NDIS_M_STATUS_HANDLER)( |
|
4175 /*IN*/ NDIS_HANDLE MiniportHandle, |
|
4176 /*IN*/ NDIS_STATUS GeneralStatus, |
|
4177 /*IN*/ PVOID StatusBuffer, |
|
4178 /*IN*/ UINT StatusBufferSize); |
|
4179 |
|
4180 typedef VOID DDKAPI |
|
4181 (*NDIS_M_STS_COMPLETE_HANDLER)( |
|
4182 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
4183 |
|
4184 typedef VOID DDKAPI |
|
4185 (*NDIS_M_TD_COMPLETE_HANDLER)( |
|
4186 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4187 /*IN*/ PNDIS_PACKET Packet, |
|
4188 /*IN*/ NDIS_STATUS Status, |
|
4189 /*IN*/ UINT BytesTransferred); |
|
4190 |
|
4191 typedef VOID (DDKAPI *NDIS_WM_SEND_COMPLETE_HANDLER)( |
|
4192 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4193 /*IN*/ PVOID Packet, |
|
4194 /*IN*/ NDIS_STATUS Status); |
|
4195 |
|
4196 |
|
4197 #if ARCNET |
|
4198 |
|
4199 #define ARC_SEND_BUFFERS 8 |
|
4200 #define ARC_HEADER_SIZE 4 |
|
4201 |
|
4202 typedef struct _NDIS_ARC_BUF { |
|
4203 NDIS_HANDLE ArcnetBufferPool; |
|
4204 PUCHAR ArcnetLookaheadBuffer; |
|
4205 UINT NumFree; |
|
4206 ARC_BUFFER_LIST ArcnetBuffers[ARC_SEND_BUFFERS]; |
|
4207 } NDIS_ARC_BUF, *PNDIS_ARC_BUF; |
|
4208 |
|
4209 #endif /* ARCNET */ |
|
4210 |
|
4211 #define NDIS_MINIPORT_WORK_QUEUE_SIZE 10 |
|
4212 |
|
4213 typedef struct _NDIS_LOG { |
|
4214 PNDIS_MINIPORT_BLOCK Miniport; |
|
4215 KSPIN_LOCK LogLock; |
|
4216 PIRP Irp; |
|
4217 UINT TotalSize; |
|
4218 UINT CurrentSize; |
|
4219 UINT InPtr; |
|
4220 UINT OutPtr; |
|
4221 UCHAR LogBuf[1]; |
|
4222 } NDIS_LOG, *PNDIS_LOG; |
|
4223 |
|
4224 typedef struct _FILTERDBS { |
|
4225 _ANONYMOUS_UNION union { |
|
4226 PETH_FILTER EthDB; |
|
4227 PNULL_FILTER NullDB; |
|
4228 } DUMMYUNIONNAME; |
|
4229 PTR_FILTER TrDB; |
|
4230 PFDDI_FILTER FddiDB; |
|
4231 #if ARCNET |
|
4232 PARC_FILTER ArcDB; |
|
4233 #else /* !ARCNET */ |
|
4234 PVOID XXXDB; |
|
4235 #endif /* !ARCNET */ |
|
4236 } FILTERDBS, *PFILTERDBS; |
|
4237 |
|
4238 |
|
4239 struct _NDIS_MINIPORT_BLOCK { |
|
4240 PVOID Signature; |
|
4241 PNDIS_MINIPORT_BLOCK NextMiniport; |
|
4242 PNDIS_M_DRIVER_BLOCK DriverHandle; |
|
4243 NDIS_HANDLE MiniportAdapterContext; |
|
4244 UNICODE_STRING MiniportName; |
|
4245 PNDIS_BIND_PATHS BindPaths; |
|
4246 NDIS_HANDLE OpenQueue; |
|
4247 REFERENCE Ref; |
|
4248 NDIS_HANDLE DeviceContext; |
|
4249 UCHAR Padding1; |
|
4250 UCHAR LockAcquired; |
|
4251 UCHAR PmodeOpens; |
|
4252 UCHAR AssignedProcessor; |
|
4253 KSPIN_LOCK Lock; |
|
4254 PNDIS_REQUEST MediaRequest; |
|
4255 PNDIS_MINIPORT_INTERRUPT Interrupt; |
|
4256 ULONG Flags; |
|
4257 ULONG PnPFlags; |
|
4258 LIST_ENTRY PacketList; |
|
4259 PNDIS_PACKET FirstPendingPacket; |
|
4260 PNDIS_PACKET ReturnPacketsQueue; |
|
4261 ULONG RequestBuffer; |
|
4262 PVOID SetMCastBuffer; |
|
4263 PNDIS_MINIPORT_BLOCK PrimaryMiniport; |
|
4264 PVOID WrapperContext; |
|
4265 PVOID BusDataContext; |
|
4266 ULONG PnPCapabilities; |
|
4267 PCM_RESOURCE_LIST Resources; |
|
4268 NDIS_TIMER WakeUpDpcTimer; |
|
4269 UNICODE_STRING BaseName; |
|
4270 UNICODE_STRING SymbolicLinkName; |
|
4271 ULONG CheckForHangSeconds; |
|
4272 USHORT CFHangTicks; |
|
4273 USHORT CFHangCurrentTick; |
|
4274 NDIS_STATUS ResetStatus; |
|
4275 NDIS_HANDLE ResetOpen; |
|
4276 FILTERDBS FilterDbs; |
|
4277 FILTER_PACKET_INDICATION_HANDLER PacketIndicateHandler; |
|
4278 NDIS_M_SEND_COMPLETE_HANDLER SendCompleteHandler; |
|
4279 NDIS_M_SEND_RESOURCES_HANDLER SendResourcesHandler; |
|
4280 NDIS_M_RESET_COMPLETE_HANDLER ResetCompleteHandler; |
|
4281 NDIS_MEDIUM MediaType; |
|
4282 ULONG BusNumber; |
|
4283 NDIS_INTERFACE_TYPE BusType; |
|
4284 NDIS_INTERFACE_TYPE AdapterType; |
|
4285 PDEVICE_OBJECT DeviceObject; |
|
4286 PDEVICE_OBJECT PhysicalDeviceObject; |
|
4287 PDEVICE_OBJECT NextDeviceObject; |
|
4288 PMAP_REGISTER_ENTRY MapRegisters; |
|
4289 PNDIS_AF_LIST CallMgrAfList; |
|
4290 PVOID MiniportThread; |
|
4291 PVOID SetInfoBuf; |
|
4292 USHORT SetInfoBufLen; |
|
4293 USHORT MaxSendPackets; |
|
4294 NDIS_STATUS FakeStatus; |
|
4295 PVOID LockHandler; |
|
4296 PUNICODE_STRING pAdapterInstanceName; |
|
4297 PNDIS_MINIPORT_TIMER TimerQueue; |
|
4298 UINT MacOptions; |
|
4299 PNDIS_REQUEST PendingRequest; |
|
4300 UINT MaximumLongAddresses; |
|
4301 UINT MaximumShortAddresses; |
|
4302 UINT CurrentLookahead; |
|
4303 UINT MaximumLookahead; |
|
4304 W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler; |
|
4305 W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler; |
|
4306 W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler; |
|
4307 W_SEND_PACKETS_HANDLER SendPacketsHandler; |
|
4308 NDIS_M_START_SENDS DeferredSendHandler; |
|
4309 ETH_RCV_INDICATE_HANDLER EthRxIndicateHandler; |
|
4310 TR_RCV_INDICATE_HANDLER TrRxIndicateHandler; |
|
4311 FDDI_RCV_INDICATE_HANDLER FddiRxIndicateHandler; |
|
4312 ETH_RCV_COMPLETE_HANDLER EthRxCompleteHandler; |
|
4313 TR_RCV_COMPLETE_HANDLER TrRxCompleteHandler; |
|
4314 FDDI_RCV_COMPLETE_HANDLER FddiRxCompleteHandler; |
|
4315 NDIS_M_STATUS_HANDLER StatusHandler; |
|
4316 NDIS_M_STS_COMPLETE_HANDLER StatusCompleteHandler; |
|
4317 NDIS_M_TD_COMPLETE_HANDLER TDCompleteHandler; |
|
4318 NDIS_M_REQ_COMPLETE_HANDLER QueryCompleteHandler; |
|
4319 NDIS_M_REQ_COMPLETE_HANDLER SetCompleteHandler; |
|
4320 NDIS_WM_SEND_COMPLETE_HANDLER WanSendCompleteHandler; |
|
4321 WAN_RCV_HANDLER WanRcvHandler; |
|
4322 WAN_RCV_COMPLETE_HANDLER WanRcvCompleteHandler; |
|
4323 #if defined(_NDIS_) |
|
4324 PNDIS_MINIPORT_BLOCK NextGlobalMiniport; |
|
4325 SINGLE_LIST_ENTRY WorkQueue[NUMBER_OF_WORK_ITEM_TYPES]; |
|
4326 SINGLE_LIST_ENTRY SingleWorkItems[NUMBER_OF_SINGLE_WORK_ITEMS]; |
|
4327 UCHAR SendFlags; |
|
4328 UCHAR TrResetRing; |
|
4329 UCHAR ArcnetAddress; |
|
4330 UCHAR XState; |
|
4331 _ANONYMOUS_UNION union { |
|
4332 #if ARCNET |
|
4333 PNDIS_ARC_BUF ArcBuf; |
|
4334 #endif |
|
4335 PVOID BusInterface; |
|
4336 } DUMMYUNIONNAME; |
|
4337 PNDIS_LOG Log; |
|
4338 ULONG SlotNumber; |
|
4339 PCM_RESOURCE_LIST AllocatedResources; |
|
4340 PCM_RESOURCE_LIST AllocatedResourcesTranslated; |
|
4341 SINGLE_LIST_ENTRY PatternList; |
|
4342 NDIS_PNP_CAPABILITIES PMCapabilities; |
|
4343 DEVICE_CAPABILITIES DeviceCaps; |
|
4344 ULONG WakeUpEnable; |
|
4345 DEVICE_POWER_STATE CurrentDevicePowerState; |
|
4346 PIRP pIrpWaitWake; |
|
4347 SYSTEM_POWER_STATE WaitWakeSystemState; |
|
4348 LARGE_INTEGER VcIndex; |
|
4349 KSPIN_LOCK VcCountLock; |
|
4350 LIST_ENTRY WmiEnabledVcs; |
|
4351 PNDIS_GUID pNdisGuidMap; |
|
4352 PNDIS_GUID pCustomGuidMap; |
|
4353 USHORT VcCount; |
|
4354 USHORT cNdisGuidMap; |
|
4355 USHORT cCustomGuidMap; |
|
4356 USHORT CurrentMapRegister; |
|
4357 PKEVENT AllocationEvent; |
|
4358 USHORT BaseMapRegistersNeeded; |
|
4359 USHORT SGMapRegistersNeeded; |
|
4360 ULONG MaximumPhysicalMapping; |
|
4361 NDIS_TIMER MediaDisconnectTimer; |
|
4362 USHORT MediaDisconnectTimeOut; |
|
4363 USHORT InstanceNumber; |
|
4364 NDIS_EVENT OpenReadyEvent; |
|
4365 NDIS_PNP_DEVICE_STATE PnPDeviceState; |
|
4366 NDIS_PNP_DEVICE_STATE OldPnPDeviceState; |
|
4367 PGET_SET_DEVICE_DATA SetBusData; |
|
4368 PGET_SET_DEVICE_DATA GetBusData; |
|
4369 KDPC DeferredDpc; |
|
4370 #if 0 |
|
4371 /* FIXME: */ |
|
4372 NDIS_STATS NdisStats; |
|
4373 #else |
|
4374 ULONG NdisStats; |
|
4375 #endif |
|
4376 PNDIS_PACKET IndicatedPacket[MAXIMUM_PROCESSORS]; |
|
4377 PKEVENT RemoveReadyEvent; |
|
4378 PKEVENT AllOpensClosedEvent; |
|
4379 PKEVENT AllRequestsCompletedEvent; |
|
4380 ULONG InitTimeMs; |
|
4381 NDIS_MINIPORT_WORK_ITEM WorkItemBuffer[NUMBER_OF_SINGLE_WORK_ITEMS]; |
|
4382 PDMA_ADAPTER SystemAdapterObject; |
|
4383 ULONG DriverVerifyFlags; |
|
4384 POID_LIST OidList; |
|
4385 USHORT InternalResetCount; |
|
4386 USHORT MiniportResetCount; |
|
4387 USHORT MediaSenseConnectCount; |
|
4388 USHORT MediaSenseDisconnectCount; |
|
4389 PNDIS_PACKET *xPackets; |
|
4390 ULONG UserModeOpenReferences; |
|
4391 _ANONYMOUS_UNION union { |
|
4392 PVOID SavedSendHandler; |
|
4393 PVOID SavedWanSendHandler; |
|
4394 } DUMMYUNIONNAME2; |
|
4395 PVOID SavedSendPacketsHandler; |
|
4396 PVOID SavedCancelSendPacketsHandler; |
|
4397 W_SEND_PACKETS_HANDLER WSendPacketsHandler; |
|
4398 ULONG MiniportAttributes; |
|
4399 PDMA_ADAPTER SavedSystemAdapterObject; |
|
4400 USHORT NumOpens; |
|
4401 USHORT CFHangXTicks; |
|
4402 ULONG RequestCount; |
|
4403 ULONG IndicatedPacketsCount; |
|
4404 ULONG PhysicalMediumType; |
|
4405 PNDIS_REQUEST LastRequest; |
|
4406 LONG DmaAdapterRefCount; |
|
4407 PVOID FakeMac; |
|
4408 ULONG LockDbg; |
|
4409 ULONG LockDbgX; |
|
4410 PVOID LockThread; |
|
4411 ULONG InfoFlags; |
|
4412 KSPIN_LOCK TimerQueueLock; |
|
4413 PKEVENT ResetCompletedEvent; |
|
4414 PKEVENT QueuedBindingCompletedEvent; |
|
4415 PKEVENT DmaResourcesReleasedEvent; |
|
4416 FILTER_PACKET_INDICATION_HANDLER SavedPacketIndicateHandler; |
|
4417 ULONG RegisteredInterrupts; |
|
4418 PNPAGED_LOOKASIDE_LIST SGListLookasideList; |
|
4419 ULONG ScatterGatherListSize; |
|
4420 #endif /* _NDIS_ */ |
|
4421 }; |
|
4422 |
|
4423 |
|
4424 /* Handler prototypes for NDIS_OPEN_BLOCK */ |
|
4425 |
|
4426 typedef NDIS_STATUS (DDKAPI *WAN_SEND_HANDLER)( |
|
4427 /*IN*/ NDIS_HANDLE MacBindingHandle, |
|
4428 /*IN*/ NDIS_HANDLE LinkHandle, |
|
4429 /*IN*/ PVOID Packet); |
|
4430 |
|
4431 /* NDIS 4.0 extension */ |
|
4432 |
|
4433 typedef VOID (DDKAPI *SEND_PACKETS_HANDLER)( |
|
4434 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
4435 /*IN*/ PPNDIS_PACKET PacketArray, |
|
4436 /*IN*/ UINT NumberOfPackets); |
|
4437 |
|
4438 |
|
4439 typedef struct _NDIS_COMMON_OPEN_BLOCK { |
|
4440 PVOID MacHandle; |
|
4441 NDIS_HANDLE BindingHandle; |
|
4442 PNDIS_MINIPORT_BLOCK MiniportHandle; |
|
4443 PNDIS_PROTOCOL_BLOCK ProtocolHandle; |
|
4444 NDIS_HANDLE ProtocolBindingContext; |
|
4445 PNDIS_OPEN_BLOCK MiniportNextOpen; |
|
4446 PNDIS_OPEN_BLOCK ProtocolNextOpen; |
|
4447 NDIS_HANDLE MiniportAdapterContext; |
|
4448 BOOLEAN Reserved1; |
|
4449 BOOLEAN Reserved2; |
|
4450 BOOLEAN Reserved3; |
|
4451 BOOLEAN Reserved4; |
|
4452 PNDIS_STRING BindDeviceName; |
|
4453 KSPIN_LOCK Reserved5; |
|
4454 PNDIS_STRING RootDeviceName; |
|
4455 _ANONYMOUS_UNION union { |
|
4456 SEND_HANDLER SendHandler; |
|
4457 WAN_SEND_HANDLER WanSendHandler; |
|
4458 } DUMMYUNIONNAME; |
|
4459 TRANSFER_DATA_HANDLER TransferDataHandler; |
|
4460 SEND_COMPLETE_HANDLER SendCompleteHandler; |
|
4461 TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler; |
|
4462 RECEIVE_HANDLER ReceiveHandler; |
|
4463 RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler; |
|
4464 WAN_RECEIVE_HANDLER WanReceiveHandler; |
|
4465 REQUEST_COMPLETE_HANDLER RequestCompleteHandler; |
|
4466 RECEIVE_PACKET_HANDLER ReceivePacketHandler; |
|
4467 SEND_PACKETS_HANDLER SendPacketsHandler; |
|
4468 RESET_HANDLER ResetHandler; |
|
4469 REQUEST_HANDLER RequestHandler; |
|
4470 RESET_COMPLETE_HANDLER ResetCompleteHandler; |
|
4471 STATUS_HANDLER StatusHandler; |
|
4472 STATUS_COMPLETE_HANDLER StatusCompleteHandler; |
|
4473 #if defined(_NDIS_) |
|
4474 ULONG Flags; |
|
4475 ULONG References; |
|
4476 KSPIN_LOCK SpinLock; |
|
4477 NDIS_HANDLE FilterHandle; |
|
4478 ULONG ProtocolOptions; |
|
4479 USHORT CurrentLookahead; |
|
4480 USHORT ConnectDampTicks; |
|
4481 USHORT DisconnectDampTicks; |
|
4482 W_SEND_HANDLER WSendHandler; |
|
4483 W_TRANSFER_DATA_HANDLER WTransferDataHandler; |
|
4484 W_SEND_PACKETS_HANDLER WSendPacketsHandler; |
|
4485 W_CANCEL_SEND_PACKETS_HANDLER CancelSendPacketsHandler; |
|
4486 ULONG WakeUpEnable; |
|
4487 PKEVENT CloseCompleteEvent; |
|
4488 QUEUED_CLOSE QC; |
|
4489 ULONG AfReferences; |
|
4490 PNDIS_OPEN_BLOCK NextGlobalOpen; |
|
4491 #endif /* _NDIS_ */ |
|
4492 } NDIS_COMMON_OPEN_BLOCK; |
|
4493 |
|
4494 struct _NDIS_OPEN_BLOCK |
|
4495 { |
|
4496 NDIS_COMMON_OPEN_BLOCK NdisCommonOpenBlock; |
|
4497 #if defined(_NDIS_) |
|
4498 struct _NDIS_OPEN_CO |
|
4499 { |
|
4500 struct _NDIS_CO_AF_BLOCK * NextAf; |
|
4501 W_CO_CREATE_VC_HANDLER MiniportCoCreateVcHandler; |
|
4502 W_CO_REQUEST_HANDLER MiniportCoRequestHandler; |
|
4503 CO_CREATE_VC_HANDLER CoCreateVcHandler; |
|
4504 CO_DELETE_VC_HANDLER CoDeleteVcHandler; |
|
4505 PVOID CmActivateVcCompleteHandler; |
|
4506 PVOID CmDeactivateVcCompleteHandler; |
|
4507 PVOID CoRequestCompleteHandler; |
|
4508 LIST_ENTRY ActiveVcHead; |
|
4509 LIST_ENTRY InactiveVcHead; |
|
4510 LONG PendingAfNotifications; |
|
4511 PKEVENT AfNotifyCompleteEvent; |
|
4512 }; |
|
4513 #endif /* _NDIS_ */ |
|
4514 }; |
|
4515 |
|
4516 |
|
4517 |
|
4518 /* Routines for NDIS miniport drivers */ |
|
4519 |
|
4520 NDISAPI |
|
4521 VOID |
|
4522 DDKAPI |
|
4523 NdisInitializeWrapper( |
|
4524 /*OUT*/ PNDIS_HANDLE NdisWrapperHandle, |
|
4525 /*IN*/ PVOID SystemSpecific1, |
|
4526 /*IN*/ PVOID SystemSpecific2, |
|
4527 /*IN*/ PVOID SystemSpecific3); |
|
4528 |
|
4529 NDISAPI |
|
4530 NDIS_STATUS |
|
4531 DDKAPI |
|
4532 NdisMAllocateMapRegisters( |
|
4533 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4534 /*IN*/ UINT DmaChannel, |
|
4535 /*IN*/ BOOLEAN Dma32BitAddresses, |
|
4536 /*IN*/ ULONG PhysicalMapRegistersNeeded, |
|
4537 /*IN*/ ULONG MaximumPhysicalMapping); |
|
4538 |
|
4539 /* |
|
4540 * VOID |
|
4541 * NdisMArcIndicateReceive( |
|
4542 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4543 * IN PUCHAR HeaderBuffer, |
|
4544 * IN PUCHAR DataBuffer, |
|
4545 * IN UINT Length); |
|
4546 */ |
|
4547 #define NdisMArcIndicateReceive(MiniportAdapterHandle, \ |
|
4548 HeaderBuffer, \ |
|
4549 DataBuffer, \ |
|
4550 Length) \ |
|
4551 { \ |
|
4552 ArcFilterDprIndicateReceive( \ |
|
4553 (((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FilterDbs.ArcDB), \ |
|
4554 (HeaderBuffer), \ |
|
4555 (DataBuffer), \ |
|
4556 (Length)); \ |
|
4557 } |
|
4558 |
|
4559 /* |
|
4560 * VOID |
|
4561 * NdisMArcIndicateReceiveComplete( |
|
4562 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4563 */ |
|
4564 #define NdisMArcIndicateReceiveComplete(MiniportAdapterHandle) \ |
|
4565 { \ |
|
4566 if (((PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle)->EthDB) \ |
|
4567 { \ |
|
4568 NdisMEthIndicateReceiveComplete(_H); \ |
|
4569 } \ |
|
4570 \ |
|
4571 ArcFilterDprIndicateReceiveComplete( \ |
|
4572 ((PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle)->ArcDB); \ |
|
4573 } |
|
4574 |
|
4575 NDISAPI |
|
4576 VOID |
|
4577 DDKAPI |
|
4578 NdisMCloseLog( |
|
4579 /*IN*/ NDIS_HANDLE LogHandle); |
|
4580 |
|
4581 NDISAPI |
|
4582 NDIS_STATUS |
|
4583 DDKAPI |
|
4584 NdisMCreateLog( |
|
4585 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4586 /*IN*/ UINT Size, |
|
4587 /*OUT*/ PNDIS_HANDLE LogHandle); |
|
4588 |
|
4589 NDISAPI |
|
4590 VOID |
|
4591 DDKAPI |
|
4592 NdisMDeregisterAdapterShutdownHandler( |
|
4593 /*IN*/ NDIS_HANDLE MiniportHandle); |
|
4594 |
|
4595 NDISAPI |
|
4596 VOID |
|
4597 DDKAPI |
|
4598 NdisMDeregisterInterrupt( |
|
4599 /*IN*/ PNDIS_MINIPORT_INTERRUPT Interrupt); |
|
4600 |
|
4601 NDISAPI |
|
4602 VOID |
|
4603 DDKAPI |
|
4604 NdisMDeregisterIoPortRange( |
|
4605 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4606 /*IN*/ UINT InitialPort, |
|
4607 /*IN*/ UINT NumberOfPorts, |
|
4608 /*IN*/ PVOID PortOffset); |
|
4609 |
|
4610 /* |
|
4611 * VOID |
|
4612 * NdisMEthIndicateReceive( |
|
4613 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4614 * IN NDIS_HANDLE MiniportReceiveContext, |
|
4615 * IN PVOID HeaderBuffer, |
|
4616 * IN UINT HeaderBufferSize, |
|
4617 * IN PVOID LookaheadBuffer, |
|
4618 * IN UINT LookaheadBufferSize, |
|
4619 * IN UINT PacketSize); |
|
4620 */ |
|
4621 #define NdisMEthIndicateReceive(MiniportAdapterHandle, \ |
|
4622 MiniportReceiveContext, \ |
|
4623 HeaderBuffer, \ |
|
4624 HeaderBufferSize, \ |
|
4625 LookaheadBuffer, \ |
|
4626 LookaheadBufferSize, \ |
|
4627 PacketSize) \ |
|
4628 { \ |
|
4629 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->EthRxIndicateHandler)( \ |
|
4630 (((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FilterDbs.EthDB), \ |
|
4631 (MiniportReceiveContext), \ |
|
4632 (HeaderBuffer), \ |
|
4633 (HeaderBuffer), \ |
|
4634 (HeaderBufferSize), \ |
|
4635 (LookaheadBuffer), \ |
|
4636 (LookaheadBufferSize), \ |
|
4637 (PacketSize)); \ |
|
4638 } |
|
4639 |
|
4640 /* |
|
4641 * VOID |
|
4642 * NdisMEthIndicateReceiveComplete( |
|
4643 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4644 */ |
|
4645 #define NdisMEthIndicateReceiveComplete(MiniportAdapterHandle) \ |
|
4646 { \ |
|
4647 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->EthRxCompleteHandler)( \ |
|
4648 ((PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle)->FilterDbs.EthDB); \ |
|
4649 } |
|
4650 |
|
4651 /* |
|
4652 * VOID |
|
4653 * NdisMFddiIndicateReceive( |
|
4654 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4655 * IN NDIS_HANDLE MiniportReceiveContext, |
|
4656 * IN PVOID HeaderBuffer, |
|
4657 * IN UINT HeaderBufferSize, |
|
4658 * IN PVOID LookaheadBuffer, |
|
4659 * IN UINT LookaheadBufferSize, |
|
4660 * IN UINT PacketSize); |
|
4661 */ |
|
4662 #define NdisMFddiIndicateReceive(MiniportAdapterHandle, \ |
|
4663 MiniportReceiveContext, \ |
|
4664 HeaderBuffer, \ |
|
4665 HeaderBufferSize, \ |
|
4666 LookaheadBuffer, \ |
|
4667 LookaheadBufferSize, \ |
|
4668 PacketSize) \ |
|
4669 { \ |
|
4670 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FddiRxIndicateHandler)( \ |
|
4671 (((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FilterDbs.FddiDB), \ |
|
4672 (MiniportReceiveContext), \ |
|
4673 (PUCHAR)(HeaderBuffer) + 1, \ |
|
4674 (((*(PUCHAR*)(HeaderBuffer)) & 0x40) ? \ |
|
4675 FDDI_LENGTH_OF_LONG_ADDRESS : \ |
|
4676 FDDI_LENGTH_OF_SHORT_ADDRESS), \ |
|
4677 (HeaderBuffer), \ |
|
4678 (HeaderBufferSize), \ |
|
4679 (LookaheadBuffer), \ |
|
4680 (LookaheadBufferSize), \ |
|
4681 (PacketSize)); \ |
|
4682 } |
|
4683 |
|
4684 |
|
4685 |
|
4686 /* |
|
4687 * VOID |
|
4688 * NdisMFddiIndicateReceiveComplete( |
|
4689 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4690 */ |
|
4691 #define NdisMFddiIndicateReceiveComplete(MiniportAdapterHandle) \ |
|
4692 { \ |
|
4693 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FddiRxCompleteHandler)( \ |
|
4694 ((PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle)->FilterDbs.FddiDB); \ |
|
4695 } |
|
4696 |
|
4697 NDISAPI |
|
4698 VOID |
|
4699 DDKAPI |
|
4700 NdisMFlushLog( |
|
4701 /*IN*/ NDIS_HANDLE LogHandle); |
|
4702 |
|
4703 NDISAPI |
|
4704 VOID |
|
4705 DDKAPI |
|
4706 NdisMFreeMapRegisters( |
|
4707 /*IN*/ NDIS_HANDLE MiniportAdapterHandle); |
|
4708 |
|
4709 /* |
|
4710 * VOID |
|
4711 * NdisMIndicateStatus( |
|
4712 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4713 * IN NDIS_STATUS GeneralStatus, |
|
4714 * IN PVOID StatusBuffer, |
|
4715 * IN UINT StatusBufferSize); |
|
4716 */ |
|
4717 |
|
4718 #define NdisMIndicateStatus(MiniportAdapterHandle, \ |
|
4719 GeneralStatus, StatusBuffer, StatusBufferSize) \ |
|
4720 (*((PNDIS_MINIPORT_BLOCK)(_M))->StatusHandler)( \ |
|
4721 MiniportAdapterHandle, GeneralStatus, StatusBuffer, StatusBufferSize) |
|
4722 |
|
4723 /* |
|
4724 * VOID |
|
4725 * NdisMIndicateStatusComplete( |
|
4726 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4727 */ |
|
4728 #define NdisMIndicateStatusComplete(MiniportAdapterHandle) \ |
|
4729 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->StatusCompleteHandler)( \ |
|
4730 MiniportAdapterHandle) |
|
4731 |
|
4732 /* |
|
4733 * VOID |
|
4734 * NdisMInitializeWrapper( |
|
4735 * OUT PNDIS_HANDLE NdisWrapperHandle, |
|
4736 * IN PVOID SystemSpecific1, |
|
4737 * IN PVOID SystemSpecific2, |
|
4738 * IN PVOID SystemSpecific3); |
|
4739 */ |
|
4740 #define NdisMInitializeWrapper(NdisWrapperHandle, \ |
|
4741 SystemSpecific1, \ |
|
4742 SystemSpecific2, \ |
|
4743 SystemSpecific3) \ |
|
4744 NdisInitializeWrapper((NdisWrapperHandle), \ |
|
4745 (SystemSpecific1), \ |
|
4746 (SystemSpecific2), \ |
|
4747 (SystemSpecific3)) |
|
4748 |
|
4749 NDISAPI |
|
4750 NDIS_STATUS |
|
4751 DDKAPI |
|
4752 NdisMMapIoSpace( |
|
4753 /*OUT*/ PVOID *VirtualAddress, |
|
4754 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4755 /*IN*/ NDIS_PHYSICAL_ADDRESS PhysicalAddress, |
|
4756 /*IN*/ UINT Length); |
|
4757 |
|
4758 /* |
|
4759 * VOID |
|
4760 * NdisMQueryInformationComplete( |
|
4761 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4762 * IN NDIS_STATUS Status); |
|
4763 */ |
|
4764 #define NdisMQueryInformationComplete(MiniportAdapterHandle, Status) \ |
|
4765 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->QueryCompleteHandler)(MiniportAdapterHandle, Status) |
|
4766 |
|
4767 NDISAPI |
|
4768 VOID |
|
4769 DDKAPI |
|
4770 NdisMRegisterAdapterShutdownHandler( |
|
4771 /*IN*/ NDIS_HANDLE MiniportHandle, |
|
4772 /*IN*/ PVOID ShutdownContext, |
|
4773 /*IN*/ ADAPTER_SHUTDOWN_HANDLER ShutdownHandler); |
|
4774 |
|
4775 NDISAPI |
|
4776 NDIS_STATUS |
|
4777 DDKAPI |
|
4778 NdisMRegisterInterrupt( |
|
4779 /*OUT*/ PNDIS_MINIPORT_INTERRUPT Interrupt, |
|
4780 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4781 /*IN*/ UINT InterruptVector, |
|
4782 /*IN*/ UINT InterruptLevel, |
|
4783 /*IN*/ BOOLEAN RequestIsr, |
|
4784 /*IN*/ BOOLEAN SharedInterrupt, |
|
4785 /*IN*/ NDIS_INTERRUPT_MODE InterruptMode); |
|
4786 |
|
4787 NDISAPI |
|
4788 NDIS_STATUS |
|
4789 DDKAPI |
|
4790 NdisMRegisterIoPortRange( |
|
4791 /*OUT*/ PVOID *PortOffset, |
|
4792 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4793 /*IN*/ UINT InitialPort, |
|
4794 /*IN*/ UINT NumberOfPorts); |
|
4795 |
|
4796 NDISAPI |
|
4797 NDIS_STATUS |
|
4798 DDKAPI |
|
4799 NdisMRegisterMiniport( |
|
4800 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
4801 /*IN*/ PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, |
|
4802 /*IN*/ UINT CharacteristicsLength); |
|
4803 |
|
4804 |
|
4805 #if !defined(_NDIS_) |
|
4806 |
|
4807 /* |
|
4808 * VOID |
|
4809 * NdisMResetComplete( |
|
4810 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4811 * IN NDIS_STATUS Status, |
|
4812 * IN BOOLEAN AddressingReset); |
|
4813 */ |
|
4814 #define NdisMResetComplete(MiniportAdapterHandle, \ |
|
4815 Status, \ |
|
4816 AddressingReset) \ |
|
4817 { \ |
|
4818 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->ResetCompleteHandler)( \ |
|
4819 MiniportAdapterHandle, Status, AddressingReset); \ |
|
4820 } |
|
4821 |
|
4822 /* |
|
4823 * VOID |
|
4824 * NdisMSendComplete( |
|
4825 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4826 * IN PNDIS_PACKET Packet, |
|
4827 * IN NDIS_STATUS Status); |
|
4828 */ |
|
4829 #define NdisMSendComplete(MiniportAdapterHandle, \ |
|
4830 Packet, \ |
|
4831 Status) \ |
|
4832 { \ |
|
4833 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->SendCompleteHandler)( \ |
|
4834 MiniportAdapterHandle, Packet, Status); \ |
|
4835 } |
|
4836 |
|
4837 /* |
|
4838 * VOID |
|
4839 * NdisMSendResourcesAvailable( |
|
4840 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4841 */ |
|
4842 #define NdisMSendResourcesAvailable(MiniportAdapterHandle) \ |
|
4843 { \ |
|
4844 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->SendResourcesHandler)( \ |
|
4845 MiniportAdapterHandle); \ |
|
4846 } |
|
4847 |
|
4848 /* |
|
4849 * VOID |
|
4850 * NdisMTransferDataComplete( |
|
4851 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4852 * IN PNDIS_PACKET Packet, |
|
4853 * IN NDIS_STATUS Status, |
|
4854 * IN UINT BytesTransferred); |
|
4855 */ |
|
4856 #define NdisMTransferDataComplete(MiniportAdapterHandle, \ |
|
4857 Packet, \ |
|
4858 Status, \ |
|
4859 BytesTransferred) \ |
|
4860 { \ |
|
4861 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->TDCompleteHandler)( \ |
|
4862 MiniportAdapterHandle, Packet, Status, BytesTransferred) \ |
|
4863 } |
|
4864 |
|
4865 #endif /* !_NDIS_ */ |
|
4866 |
|
4867 |
|
4868 /* |
|
4869 * VOID |
|
4870 * NdisMSetAttributes( |
|
4871 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4872 * IN NDIS_HANDLE MiniportAdapterContext, |
|
4873 * IN BOOLEAN BusMaster, |
|
4874 * IN NDIS_INTERFACE_TYPE AdapterType); |
|
4875 */ |
|
4876 #define NdisMSetAttributes(MiniportAdapterHandle, \ |
|
4877 MiniportAdapterContext, \ |
|
4878 BusMaster, \ |
|
4879 AdapterType) \ |
|
4880 NdisMSetAttributesEx(MiniportAdapterHandle, \ |
|
4881 MiniportAdapterContext, \ |
|
4882 0, \ |
|
4883 (BusMaster) ? NDIS_ATTRIBUTE_BUS_MASTER : 0, \ |
|
4884 AdapterType) |
|
4885 |
|
4886 NDISAPI |
|
4887 VOID |
|
4888 DDKAPI |
|
4889 NdisMSetAttributesEx( |
|
4890 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4891 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
4892 /*IN*/ UINT CheckForHangTimeInSeconds /*OPTIONAL*/, |
|
4893 /*IN*/ ULONG AttributeFlags, |
|
4894 /*IN*/ NDIS_INTERFACE_TYPE AdapterType); |
|
4895 |
|
4896 /* |
|
4897 * VOID |
|
4898 * NdisMSetInformationComplete( |
|
4899 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4900 * IN NDIS_STATUS Status); |
|
4901 */ |
|
4902 #define NdisMSetInformationComplete(MiniportAdapterHandle, \ |
|
4903 Status) \ |
|
4904 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->SetCompleteHandler)( \ |
|
4905 MiniportAdapterHandle, Status) |
|
4906 |
|
4907 NDISAPI |
|
4908 VOID |
|
4909 DDKAPI |
|
4910 NdisMSleep( |
|
4911 /*IN*/ ULONG MicrosecondsToSleep); |
|
4912 |
|
4913 NDISAPI |
|
4914 BOOLEAN |
|
4915 DDKAPI |
|
4916 NdisMSynchronizeWithInterrupt( |
|
4917 /*IN*/ PNDIS_MINIPORT_INTERRUPT Interrupt, |
|
4918 /*IN*/ PVOID SynchronizeFunction, |
|
4919 /*IN*/ PVOID SynchronizeContext); |
|
4920 |
|
4921 /* |
|
4922 * VOID |
|
4923 * NdisMTrIndicateReceive( |
|
4924 * IN NDIS_HANDLE MiniportAdapterHandle, |
|
4925 * IN NDIS_HANDLE MiniportReceiveContext, |
|
4926 * IN PVOID HeaderBuffer, |
|
4927 * IN UINT HeaderBufferSize, |
|
4928 * IN PVOID LookaheadBuffer, |
|
4929 * IN UINT LookaheadBufferSize, |
|
4930 * IN UINT PacketSize); |
|
4931 */ |
|
4932 #define NdisMTrIndicateReceive(MiniportAdapterHandle, \ |
|
4933 MiniportReceiveContext, \ |
|
4934 HeaderBuffer, \ |
|
4935 HeaderBufferSize, \ |
|
4936 LookaheadBuffer, \ |
|
4937 LookaheadBufferSize, \ |
|
4938 PacketSize) \ |
|
4939 { \ |
|
4940 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->TrRxIndicateHandler)( \ |
|
4941 (((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->FilterDbs.TrDB), \ |
|
4942 (MiniportReceiveContext), \ |
|
4943 (HeaderBuffer), \ |
|
4944 (HeaderBuffer), \ |
|
4945 (HeaderBufferSize), \ |
|
4946 (LookaheadBuffer), \ |
|
4947 (LookaheadBufferSize), \ |
|
4948 (PacketSize)); \ |
|
4949 } |
|
4950 |
|
4951 /* |
|
4952 * VOID |
|
4953 * NdisMTrIndicateReceiveComplete( |
|
4954 * IN NDIS_HANDLE MiniportAdapterHandle); |
|
4955 */ |
|
4956 #define NdisMTrIndicateReceiveComplete(MiniportAdapterHandle) \ |
|
4957 { \ |
|
4958 (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->TrRxCompleteHandler)( \ |
|
4959 ((PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle)->FilterDbs.TrDB); \ |
|
4960 } |
|
4961 |
|
4962 NDISAPI |
|
4963 NDIS_STATUS |
|
4964 DDKAPI |
|
4965 NdisMWriteLogData( |
|
4966 /*IN*/ NDIS_HANDLE LogHandle, |
|
4967 /*IN*/ PVOID LogBuffer, |
|
4968 /*IN*/ UINT LogBufferSize); |
|
4969 |
|
4970 NDISAPI |
|
4971 VOID |
|
4972 DDKAPI |
|
4973 NdisMQueryAdapterResources( |
|
4974 /*OUT*/ PNDIS_STATUS Status, |
|
4975 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
4976 /*OUT*/ PNDIS_RESOURCE_LIST ResourceList, |
|
4977 /*IN OUT*/ PUINT BufferSize); |
|
4978 |
|
4979 NDISAPI |
|
4980 VOID |
|
4981 DDKAPI |
|
4982 NdisTerminateWrapper( |
|
4983 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
4984 /*IN*/ PVOID SystemSpecific); |
|
4985 |
|
4986 NDISAPI |
|
4987 VOID |
|
4988 DDKAPI |
|
4989 NdisMUnmapIoSpace( |
|
4990 /*IN*/ NDIS_HANDLE MiniportAdapterHandle, |
|
4991 /*IN*/ PVOID VirtualAddress, |
|
4992 /*IN*/ UINT Length); |
|
4993 |
|
4994 |
|
4995 |
|
4996 /* NDIS intermediate miniport structures */ |
|
4997 |
|
4998 typedef VOID (DDKAPI *W_MINIPORT_CALLBACK)( |
|
4999 /*IN*/ NDIS_HANDLE MiniportAdapterContext, |
|
5000 /*IN*/ PVOID CallbackContext); |
|
5001 |
|
5002 |
|
5003 |
|
5004 /* Routines for intermediate miniport drivers */ |
|
5005 |
|
5006 NDISAPI |
|
5007 NDIS_STATUS |
|
5008 DDKAPI |
|
5009 NdisIMDeInitializeDeviceInstance( |
|
5010 /*IN*/ NDIS_HANDLE NdisMiniportHandle); |
|
5011 |
|
5012 /* |
|
5013 * NDIS_STATUS |
|
5014 * NdisIMInitializeDeviceInstance( |
|
5015 * IN NDIS_HANDLE DriverHandle, |
|
5016 * IN PNDIS_STRING DeviceInstance); |
|
5017 */ |
|
5018 #define NdisIMInitializeDeviceInstance(DriverHandle, DeviceInstance) \ |
|
5019 NdisIMInitializeDeviceInstanceEx(DriverHandle, DeviceInstance, NULL) |
|
5020 |
|
5021 NDISAPI |
|
5022 NDIS_STATUS |
|
5023 DDKAPI |
|
5024 NdisIMRegisterLayeredMiniport( |
|
5025 /*IN*/ NDIS_HANDLE NdisWrapperHandle, |
|
5026 /*IN*/ PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, |
|
5027 /*IN*/ UINT CharacteristicsLength, |
|
5028 /*OUT*/ PNDIS_HANDLE DriverHandle); |
|
5029 |
|
5030 |
|
5031 /* Functions obsoleted by NDIS 5.0 */ |
|
5032 |
|
5033 NDISAPI |
|
5034 VOID |
|
5035 DDKAPI |
|
5036 NdisFreeDmaChannel( |
|
5037 /*IN*/ PNDIS_HANDLE NdisDmaHandle); |
|
5038 |
|
5039 NDISAPI |
|
5040 VOID |
|
5041 DDKAPI |
|
5042 NdisSetupDmaTransfer( |
|
5043 /*OUT*/ PNDIS_STATUS Status, |
|
5044 /*IN*/ PNDIS_HANDLE NdisDmaHandle, |
|
5045 /*IN*/ PNDIS_BUFFER Buffer, |
|
5046 /*IN*/ ULONG Offset, |
|
5047 /*IN*/ ULONG Length, |
|
5048 /*IN*/ BOOLEAN WriteToDevice); |
|
5049 |
|
5050 NDISAPI |
|
5051 NTSTATUS |
|
5052 DDKAPI |
|
5053 NdisUpcaseUnicodeString( |
|
5054 /*OUT*/ PUNICODE_STRING DestinationString, |
|
5055 /*IN*/ PUNICODE_STRING SourceString); |
|
5056 |
|
5057 |
|
5058 /* Routines for NDIS protocol drivers */ |
|
5059 |
|
5060 NDISAPI |
|
5061 VOID |
|
5062 DDKAPI |
|
5063 NdisRequest( |
|
5064 /*OUT*/ PNDIS_STATUS Status, |
|
5065 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
5066 /*IN*/ PNDIS_REQUEST NdisRequest); |
|
5067 |
|
5068 NDISAPI |
|
5069 VOID |
|
5070 DDKAPI |
|
5071 NdisReset( |
|
5072 /*OUT*/ PNDIS_STATUS Status, |
|
5073 /*IN*/ NDIS_HANDLE NdisBindingHandle); |
|
5074 |
|
5075 NDISAPI |
|
5076 VOID |
|
5077 DDKAPI |
|
5078 NdisSend( |
|
5079 /*OUT*/ PNDIS_STATUS Status, |
|
5080 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
5081 /*IN*/ PNDIS_PACKET Packet); |
|
5082 |
|
5083 NDISAPI |
|
5084 VOID |
|
5085 DDKAPI |
|
5086 NdisSendPackets( |
|
5087 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
5088 /*IN*/ PPNDIS_PACKET PacketArray, |
|
5089 /*IN*/ UINT NumberOfPackets); |
|
5090 |
|
5091 NDISAPI |
|
5092 VOID |
|
5093 DDKAPI |
|
5094 NdisTransferData( |
|
5095 /*OUT*/ PNDIS_STATUS Status, |
|
5096 /*IN*/ NDIS_HANDLE NdisBindingHandle, |
|
5097 /*IN*/ NDIS_HANDLE MacReceiveContext, |
|
5098 /*IN*/ UINT ByteOffset, |
|
5099 /*IN*/ UINT BytesToTransfer, |
|
5100 /*IN OUT*/ PNDIS_PACKET Packet, |
|
5101 /*OUT*/ PUINT BytesTransferred); |
|
5102 |
|
5103 NDISAPI |
|
5104 VOID |
|
5105 DDKAPI |
|
5106 NdisCloseAdapter( |
|
5107 /*OUT*/ PNDIS_STATUS Status, |
|
5108 /*IN*/ NDIS_HANDLE NdisBindingHandle); |
|
5109 |
|
5110 NDISAPI |
|
5111 VOID |
|
5112 DDKAPI |
|
5113 NdisCompleteBindAdapter( |
|
5114 /*IN*/ NDIS_HANDLE BindAdapterContext, |
|
5115 /*IN*/ NDIS_STATUS Status, |
|
5116 /*IN*/ NDIS_STATUS OpenStatus); |
|
5117 |
|
5118 NDISAPI |
|
5119 VOID |
|
5120 DDKAPI |
|
5121 NdisCompleteUnbindAdapter( |
|
5122 /*IN*/ NDIS_HANDLE UnbindAdapterContext, |
|
5123 /*IN*/ NDIS_STATUS Status); |
|
5124 |
|
5125 NDISAPI |
|
5126 VOID |
|
5127 DDKAPI |
|
5128 NdisDeregisterProtocol( |
|
5129 /*OUT*/ PNDIS_STATUS Status, |
|
5130 /*IN*/ NDIS_HANDLE NdisProtocolHandle); |
|
5131 |
|
5132 NDISAPI |
|
5133 VOID |
|
5134 DDKAPI |
|
5135 NdisOpenAdapter( |
|
5136 /*OUT*/ PNDIS_STATUS Status, |
|
5137 /*OUT*/ PNDIS_STATUS OpenErrorStatus, |
|
5138 /*OUT*/ PNDIS_HANDLE NdisBindingHandle, |
|
5139 /*OUT*/ PUINT SelectedMediumIndex, |
|
5140 /*IN*/ PNDIS_MEDIUM MediumArray, |
|
5141 /*IN*/ UINT MediumArraySize, |
|
5142 /*IN*/ NDIS_HANDLE NdisProtocolHandle, |
|
5143 /*IN*/ NDIS_HANDLE ProtocolBindingContext, |
|
5144 /*IN*/ PNDIS_STRING AdapterName, |
|
5145 /*IN*/ UINT OpenOptions, |
|
5146 /*IN*/ PSTRING AddressingInformation); |
|
5147 |
|
5148 NDISAPI |
|
5149 VOID |
|
5150 DDKAPI |
|
5151 NdisOpenProtocolConfiguration( |
|
5152 /*OUT*/ PNDIS_STATUS Status, |
|
5153 /*OUT*/ PNDIS_HANDLE ConfigurationHandle, |
|
5154 /*IN*/ PNDIS_STRING ProtocolSection); |
|
5155 |
|
5156 NDISAPI |
|
5157 VOID |
|
5158 DDKAPI |
|
5159 NdisRegisterProtocol( |
|
5160 /*OUT*/ PNDIS_STATUS Status, |
|
5161 /*OUT*/ PNDIS_HANDLE NdisProtocolHandle, |
|
5162 /*IN*/ PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics, |
|
5163 /*IN*/ UINT CharacteristicsLength); |
|
5164 |
|
5165 /* Obsoleted in Windows XP */ |
|
5166 |
|
5167 /* Prototypes for NDIS_MAC_CHARACTERISTICS */ |
|
5168 |
|
5169 typedef NDIS_STATUS (*OPEN_ADAPTER_HANDLER)( |
|
5170 /*OUT*/ PNDIS_STATUS OpenErrorStatus, |
|
5171 /*OUT*/ NDIS_HANDLE *MacBindingHandle, |
|
5172 /*OUT*/ PUINT SelectedMediumIndex, |
|
5173 /*IN*/ PNDIS_MEDIUM MediumArray, |
|
5174 /*IN*/ UINT MediumArraySize, |
|
5175 /*IN*/ NDIS_HANDLE NdisBindingContext, |
|
5176 /*IN*/ NDIS_HANDLE MacAdapterContext, |
|
5177 /*IN*/ UINT OpenOptions, |
|
5178 /*IN*/ PSTRING AddressingInformation /*OPTIONAL*/); |
|
5179 |
|
5180 typedef NDIS_STATUS (DDKAPI *CLOSE_ADAPTER_HANDLER)( |
|
5181 /*IN*/ NDIS_HANDLE MacBindingHandle); |
|
5182 |
|
5183 typedef NDIS_STATUS (DDKAPI *WAN_TRANSFER_DATA_HANDLER)( |
|
5184 VOID); |
|
5185 |
|
5186 typedef NDIS_STATUS (DDKAPI *QUERY_GLOBAL_STATISTICS_HANDLER)( |
|
5187 /*IN*/ NDIS_HANDLE MacAdapterContext, |
|
5188 /*IN*/ PNDIS_REQUEST NdisRequest); |
|
5189 |
|
5190 typedef VOID (DDKAPI *UNLOAD_MAC_HANDLER)( |
|
5191 /*IN*/ NDIS_HANDLE MacMacContext); |
|
5192 |
|
5193 typedef NDIS_STATUS (DDKAPI *ADD_ADAPTER_HANDLER)( |
|
5194 /*IN*/ NDIS_HANDLE MacMacContext, |
|
5195 /*IN*/ NDIS_HANDLE WrapperConfigurationContext, |
|
5196 /*IN*/ PNDIS_STRING AdapterName); |
|
5197 |
|
5198 typedef VOID (*REMOVE_ADAPTER_HANDLER)( |
|
5199 /*IN*/ NDIS_HANDLE MacAdapterContext); |
|
5200 |
|
5201 typedef struct _NDIS_MAC_CHARACTERISTICS { |
|
5202 UCHAR MajorNdisVersion; |
|
5203 UCHAR MinorNdisVersion; |
|
5204 UINT Reserved; |
|
5205 OPEN_ADAPTER_HANDLER OpenAdapterHandler; |
|
5206 CLOSE_ADAPTER_HANDLER CloseAdapterHandler; |
|
5207 SEND_HANDLER SendHandler; |
|
5208 TRANSFER_DATA_HANDLER TransferDataHandler; |
|
5209 RESET_HANDLER ResetHandler; |
|
5210 REQUEST_HANDLER RequestHandler; |
|
5211 QUERY_GLOBAL_STATISTICS_HANDLER QueryGlobalStatisticsHandler; |
|
5212 UNLOAD_MAC_HANDLER UnloadMacHandler; |
|
5213 ADD_ADAPTER_HANDLER AddAdapterHandler; |
|
5214 REMOVE_ADAPTER_HANDLER RemoveAdapterHandler; |
|
5215 NDIS_STRING Name; |
|
5216 } NDIS_MAC_CHARACTERISTICS, *PNDIS_MAC_CHARACTERISTICS; |
|
5217 |
|
5218 typedef NDIS_MAC_CHARACTERISTICS NDIS_WAN_MAC_CHARACTERISTICS; |
|
5219 typedef NDIS_WAN_MAC_CHARACTERISTICS *PNDIS_WAN_MAC_CHARACTERISTICS; |
|
5220 |
|
5221 #ifdef __cplusplus |
|
5222 } |
|
5223 #endif |
|
5224 |
|
5225 #endif /* __NDIS_H */ |
|
5226 |
|
5227 /* EOF */ |