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
13 #include "../include/miniport.h"
16 typedef struct _PROTOCOL_BINDING {
17 LIST_ENTRY ListEntry; /* Entry on global list */
18 KSPIN_LOCK Lock; /* Protecting spin lock */
19 ULONG RefCount; /* Reference count */
20 NDIS_PROTOCOL_CHARACTERISTICS Chars; /* Characteristics */
21 WORK_QUEUE_ITEM WorkItem; /* Work item */
22 LIST_ENTRY AdapterListHead; /* List of adapter bindings */
23 } PROTOCOL_BINDING, *PPROTOCOL_BINDING;
25 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
28 typedef struct _ADAPTER_BINDING {
29 NDIS_OPEN_BLOCK NdisOpenBlock; /* NDIS defined fields */
31 LIST_ENTRY ListEntry; /* Entry on global list */
32 LIST_ENTRY ProtocolListEntry; /* Entry on protocol binding adapter list */
33 LIST_ENTRY AdapterListEntry; /* Entry on logical adapter list */
34 KSPIN_LOCK Lock; /* Protecting spin lock */
35 ULONG RefCount; /* Reference count */
36 PPROTOCOL_BINDING ProtocolBinding; /* Protocol that opened adapter */
37 PLOGICAL_ADAPTER Adapter; /* Adapter opened by protocol */
38 } ADAPTER_BINDING, *PADAPTER_BINDING;
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 */