ReactOS  0.4.14-dev-845-g8381e29
protocol.h
Go to the documentation of this file.
1 /*
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
6  */
7 
8 #pragma once
9 
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 */
17 
18 #define GET_PROTOCOL_BINDING(Handle)((PPROTOCOL_BINDING)Handle)
19 
20 
21 typedef struct _ADAPTER_BINDING {
22  NDIS_OPEN_BLOCK NdisOpenBlock; /* NDIS defined fields */
23 
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 */
31 
32 typedef struct _NDIS_REQUEST_MAC_BLOCK {
38 
39 #define GET_ADAPTER_BINDING(Handle)((PADAPTER_BINDING)Handle)
40 
41 
44 
45 
48  PLOGICAL_ADAPTER Adapter,
50 
51 VOID NTAPI
56 
58 NTAPI
61  PIRP Irp);
62 
64 NTAPI
67  PIRP Irp);
68 
71 
72 VOID
73 NTAPI
75 
76 /* EOF */
_In_ PPNDIS_PACKET _In_ UINT NumberOfPackets
Definition: ndis.h:5120
#define IN
Definition: typedefs.h:38
LIST_ENTRY AdapterListHead
Definition: protocol.h:15
NDIS_OPEN_BLOCK NdisOpenBlock
Definition: protocol.h:22
NTSTATUS NTAPI NdisIPnPQueryStopDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: protocol.c:154
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
Definition: ndis.h:1548
struct _PROTOCOL_BINDING * PPROTOCOL_BINDING
_In_ PIRP Irp
Definition: csq.h:116
LIST_ENTRY ProtocolListHead
Definition: protocol.c:19
LONG NTSTATUS
Definition: precomp.h:26
* PNDIS_STATUS
Definition: ndis.h:45
LIST_ENTRY AdapterListEntry
Definition: protocol.h:26
WORK_QUEUE_ITEM WorkItem
Definition: protocol.h:14
int NDIS_STATUS
Definition: ntddndis.h:471
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ PPNDIS_PACKET PacketArray
Definition: ndis.h:5120
NTSTATUS NTAPI NdisIPnPCancelStopDevice(IN PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: protocol.c:172
PPROTOCOL_BINDING ProtocolBinding
Definition: protocol.h:28
KSPIN_LOCK Lock
Definition: protocol.h:12
struct _NDIS_REQUEST_MAC_BLOCK * PNDIS_REQUEST_MAC_BLOCK
PLOGICAL_ADAPTER Adapter
Definition: protocol.h:29
PNDIS_OPEN_BLOCK Binding
Definition: protocol.h:34
NDIS_STATUS proSendPacketToMiniport(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
Definition: protocol.c:389
VOID NTAPI ProSendPackets(IN NDIS_HANDLE NdisBindingHandle, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets)
Definition: protocol.c:577
Definition: typedefs.h:117
Status
Definition: gdiplustypes.h:24
struct _NDIS_REQUEST_MAC_BLOCK NDIS_REQUEST_MAC_BLOCK
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
VOID NTAPI ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protocol)
Definition: protocol.c:908
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
unsigned int UINT
Definition: ndis.h:50
struct _ADAPTER_BINDING * PADAPTER_BINDING
struct _ADAPTER_BINDING ADAPTER_BINDING
KSPIN_LOCK Lock
Definition: protocol.h:27
struct _PROTOCOL_BINDING PROTOCOL_BINDING
LIST_ENTRY ListEntry
Definition: protocol.h:24
#define OUT
Definition: typedefs.h:39
LIST_ENTRY ListEntry
Definition: protocol.h:11
LIST_ENTRY ProtocolListEntry
Definition: protocol.h:25
KSPIN_LOCK ProtocolListLock
Definition: protocol.c:20
_Must_inspect_result_ _In_ NDIS_HANDLE NdisBindingHandle
Definition: ndis.h:4735
NDIS_PROTOCOL_CHARACTERISTICS Chars
Definition: protocol.h:13
NDIS_STATUS ProIndicatePacket(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
Definition: protocol.c:243