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
10 typedef struct _PROTOCOL_BINDING
{
11 LIST_ENTRY ListEntry
; /* Entry on global list */
12 KSPIN_LOCK Lock
; /* Protecting spin lock */
13 NDIS_PROTOCOL_CHARACTERISTICS Chars
; /* Characteristics */
14 WORK_QUEUE_ITEM WorkItem
; /* Work item */
15 LIST_ENTRY AdapterListHead
; /* List of adapter bindings */
16 } PROTOCOL_BINDING
, *PPROTOCOL_BINDING
;
18 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
21 typedef struct _ADAPTER_BINDING
{
22 NDIS_OPEN_BLOCK NdisOpenBlock
; /* NDIS defined fields */
24 LIST_ENTRY ListEntry
; /* Entry on global list */
25 LIST_ENTRY ProtocolListEntry
; /* Entry on protocol binding adapter list */
26 LIST_ENTRY AdapterListEntry
; /* Entry on logical adapter list */
27 KSPIN_LOCK Lock
; /* Protecting spin lock */
28 PPROTOCOL_BINDING ProtocolBinding
; /* Protocol that opened adapter */
29 PLOGICAL_ADAPTER Adapter
; /* Adapter opened by protocol */
30 } ADAPTER_BINDING
, *PADAPTER_BINDING
;
32 typedef struct _NDIS_REQUEST_MAC_BLOCK
{
34 PNDIS_OPEN_BLOCK Binding
;
37 } NDIS_REQUEST_MAC_BLOCK
, *PNDIS_REQUEST_MAC_BLOCK
;
39 #define GET_ADAPTER_BINDING(Handle)((PADAPTER_BINDING)Handle)
42 extern LIST_ENTRY ProtocolListHead
;
43 extern KSPIN_LOCK ProtocolListLock
;
48 PLOGICAL_ADAPTER Adapter
,
53 IN NDIS_HANDLE NdisBindingHandle
,
54 IN PPNDIS_PACKET PacketArray
,
55 IN UINT NumberOfPackets
);
59 NdisIPnPQueryStopDevice(
60 IN PDEVICE_OBJECT DeviceObject
,
65 NdisIPnPCancelStopDevice(
66 IN PDEVICE_OBJECT DeviceObject
,
70 proSendPacketToMiniport(PLOGICAL_ADAPTER Adapter
, PNDIS_PACKET Packet
);