2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndis/protocol.h
5 * PURPOSE: Definitions for routines used by NDIS protocol drivers
11 typedef struct _PROTOCOL_BINDING
{
12 LIST_ENTRY ListEntry
; /* Entry on global list */
13 KSPIN_LOCK Lock
; /* Protecting spin lock */
14 NDIS_PROTOCOL_CHARACTERISTICS Chars
; /* Characteristics */
15 WORK_QUEUE_ITEM WorkItem
; /* Work item */
16 LIST_ENTRY AdapterListHead
; /* List of adapter bindings */
17 } PROTOCOL_BINDING
, *PPROTOCOL_BINDING
;
19 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
22 typedef struct _ADAPTER_BINDING
{
23 NDIS_OPEN_BLOCK NdisOpenBlock
; /* NDIS defined fields */
25 LIST_ENTRY ListEntry
; /* Entry on global list */
26 LIST_ENTRY ProtocolListEntry
; /* Entry on protocol binding adapter list */
27 LIST_ENTRY AdapterListEntry
; /* Entry on logical adapter list */
28 KSPIN_LOCK Lock
; /* Protecting spin lock */
29 PPROTOCOL_BINDING ProtocolBinding
; /* Protocol that opened adapter */
30 PLOGICAL_ADAPTER Adapter
; /* Adapter opened by protocol */
31 } ADAPTER_BINDING
, *PADAPTER_BINDING
;
33 typedef struct _NDIS_REQUEST_MAC_BLOCK
{
35 PNDIS_OPEN_BLOCK Binding
;
38 } NDIS_REQUEST_MAC_BLOCK
, *PNDIS_REQUEST_MAC_BLOCK
;
40 #define GET_ADAPTER_BINDING(Handle)((PADAPTER_BINDING)Handle)
43 extern LIST_ENTRY ProtocolListHead
;
44 extern KSPIN_LOCK ProtocolListLock
;
49 PLOGICAL_ADAPTER Adapter
,
52 #endif /* __PROTOCOL_H */