blob: 78f8b5ca9908dad5a63e7099c1f8fb08e763dd7b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE.
Module Name:
TcbRcb.H
Abstract:
This module declares the TCB and RCB structures, and the functions to
manipulate them.
See the comments in TcbRcb.c.
--*/
#ifndef _TCBRCB_H
#define _TCBRCB_H
//
// TCB (Transmit Control Block)
// -----------------------------------------------------------------------------
//
typedef struct _TCB
{
LIST_ENTRY TcbLink;
PNET_BUFFER NetBuffer;
ULONG FrameType;
ULONG BytesActuallySent;
} TCB, *PTCB;
VOID
ReturnTCB(
_In_ PMP_ADAPTER Adapter,
_In_ PTCB Tcb);
//
// RCB (Receive Control Block)
// -----------------------------------------------------------------------------
//
typedef struct _RCB
{
LIST_ENTRY RcbLink;
PNET_BUFFER_LIST Nbl;
PVOID Data;
#if (NDIS_SUPPORT_NDIS620)
PVOID LookaheadData;
#endif
} RCB, *PRCB;
_Must_inspect_result_
_Success_(return != NULL)
PRCB
GetRCB(
_In_ PMP_ADAPTER Adapter,
_In_ PNDIS_NET_BUFFER_LIST_8021Q_INFO Nbl1QInfo,
_In_ PFRAME Frame);
VOID
ReturnRCB(
_In_ PMP_ADAPTER Adapter,
_In_ PRCB Rcb);
#endif // _TCBRCB_H
|