Annotation of ntddk/src/network/packet/driver/packet.h, revision 1.1.1.1

1.1       root        1: /*++
                      2: 
                      3: Copyright (c) 1989  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     packet.h
                      8: 
                      9: Abstract:
                     10: 
                     11: Author:
                     12: 
                     13: Revision History:
                     14: 
                     15: --*/
                     16: 
                     17: #define  MAX_REQUESTS   4
                     18: 
                     19: 
                     20: typedef struct _INTERNAL_REQUEST {
                     21:     LIST_ENTRY     ListElement;
                     22:     PIRP           Irp;
                     23:     NDIS_REQUEST   Request;
                     24: 
                     25:     } INTERNAL_REQUEST, *PINTERNAL_REQUEST;
                     26: 
                     27: 
                     28: 
                     29: //
                     30: // Port device extension.
                     31: //
                     32: 
                     33: typedef struct _DEVICE_EXTENSION {
                     34: 
                     35:     KSPIN_LOCK     DeviceSpinLock;
                     36: 
                     37:     PDEVICE_OBJECT DeviceObject;
                     38: 
                     39:     UNICODE_STRING MacDriverName;
                     40:     UNICODE_STRING DeviceName;
                     41: 
                     42:     NDIS_HANDLE    NdisProtocolHandle;
                     43: 
                     44:     NDIS_HANDLE    AdapterHandle;
                     45: 
                     46:     NDIS_STRING    AdapterName;
                     47: 
                     48:     PIRP           OpenCloseIrp;
                     49: 
                     50:     KSPIN_LOCK     FreePacketListSpinLock;
                     51:     LIST_ENTRY     FreePacketList;
                     52: 
                     53:     KSPIN_LOCK     RcvQSpinLock;
                     54:     LIST_ENTRY     RcvList;
                     55: 
                     56:     KSPIN_LOCK     RequestSpinLock;
                     57:     LIST_ENTRY     RequestList;
                     58: 
                     59:     LIST_ENTRY     ResetIrpList;
                     60: 
                     61:     NDIS_HANDLE    PacketPool;
                     62: 
                     63:     INTERNAL_REQUEST  Requests[MAX_REQUESTS];
                     64: 
                     65: } DEVICE_EXTENSION, *PDEVICE_EXTENSION;
                     66: 
                     67: 
                     68: typedef struct _PACKET_RESERVED {
                     69:     LIST_ENTRY     ListElement;
                     70:     PIRP           Irp;
                     71:     PMDL           pMdl;
                     72:     }  PACKET_RESERVED, *PPACKET_RESERVED;
                     73: 
                     74: typedef struct _INTERNAL_PACKET {
                     75:     NDIS_PACKET    Packet;
                     76:     PACKET_RESERVED Reserved;
                     77:     } INTERNAL_PACKET, *PINTERNAL_PACKET;
                     78: 
                     79: 
                     80: #define  ETHERNET_HEADER_LENGTH   14
                     81: 
                     82: #define RESERVED(_p) ((PPACKET_RESERVED)((_p)->ProtocolReserved))
                     83: 
                     84: #define  TRANSMIT_PACKETS    16
                     85: 
                     86: 
                     87: 
                     88: #define FILE_DEVICE_PROTOCOL        0x8000
                     89: 
                     90: #define PACKET_SET                  0x00c0
                     91: #define PACKET_QUERY                0x0080
                     92: 
                     93: #define PACKET_FILTER               0x000e
                     94: #define PACKET_RESET                0x00ff
                     95: 
                     96: 
                     97: 
                     98: #define IOCTL_PROTOCOL_SET_FILTER   CTL_CODE(FILE_DEVICE_PROTOCOL, PACKET_SET | PACKET_FILTER, METHOD_BUFFERED, FILE_ANY_ACCESS)
                     99: #define IOCTL_PROTOCOL_GET_FILTER   CTL_CODE(FILE_DEVICE_PROTOCOL, PACKET_QUERY | PACKET_FILTER, METHOD_BUFFERED, FILE_ANY_ACCESS)
                    100: 
                    101: #define IOCTL_PROTOCOL_RESET        CTL_CODE(FILE_DEVICE_PROTOCOL, PACKET_RESET, METHOD_BUFFERED, FILE_ANY_ACCESS)
                    102: 
                    103: 
                    104: 
                    105: 
                    106: 
                    107: 
                    108: 
                    109: 
                    110: 
                    111: VOID
                    112: PacketOpenAdapterComplete(
                    113:     IN NDIS_HANDLE  ProtocolBindingContext,
                    114:     IN NDIS_STATUS  Status,
                    115:     IN NDIS_STATUS  OpenErrorStatus
                    116:     );
                    117: 
                    118: VOID
                    119: PacketCloseAdapterComplete(
                    120:     IN NDIS_HANDLE  ProtocolBindingContext,
                    121:     IN NDIS_STATUS  Status
                    122:     );
                    123: 
                    124: 
                    125: NDIS_STATUS
                    126: PacketReceiveIndicate(
                    127:     IN NDIS_HANDLE ProtocolBindingContext,
                    128:     IN NDIS_HANDLE MacReceiveContext,
                    129:     IN PVOID HeaderBuffer,
                    130:     IN UINT HeaderBufferSize,
                    131:     IN PVOID LookAheadBuffer,
                    132:     IN UINT LookaheadBufferSize,
                    133:     IN UINT PacketSize
                    134:     );
                    135: 
                    136: VOID
                    137: PacketReceiveComplete(
                    138:     IN NDIS_HANDLE  ProtocolBindingContext
                    139:     );
                    140: 
                    141: 
                    142: VOID
                    143: PacketRequestComplete(
                    144:     IN NDIS_HANDLE   ProtocolBindingContext,
                    145:     IN PNDIS_REQUEST pRequest,
                    146:     IN NDIS_STATUS   Status
                    147:     );
                    148: 
                    149: VOID
                    150: PacketSendComplete(
                    151:     IN NDIS_HANDLE   ProtocolBindingContext,
                    152:     IN PNDIS_PACKET  pPacket,
                    153:     IN NDIS_STATUS   Status
                    154:     );
                    155: 
                    156: 
                    157: VOID
                    158: PacketResetComplete(
                    159:     IN NDIS_HANDLE  ProtocolBindingContext,
                    160:     IN NDIS_STATUS  Status
                    161:     );
                    162: 
                    163: 
                    164: VOID
                    165: PacketStatus(
                    166:     IN NDIS_HANDLE   ProtocolBindingContext,
                    167:     IN NDIS_STATUS   Status,
                    168:     IN PVOID         StatusBuffer,
                    169:     IN UINT          StatusBufferSize
                    170:     );
                    171: 
                    172: 
                    173: VOID
                    174: PacketStatusComplete(
                    175:     IN NDIS_HANDLE  ProtocolBindingContext
                    176:     );
                    177: 
                    178: VOID
                    179: PacketTransferDataComplete(
                    180:     IN NDIS_HANDLE ProtocolBindingContext,
                    181:     IN PNDIS_PACKET Packet,
                    182:     IN NDIS_STATUS Status,
                    183:     IN UINT BytesTransferred
                    184:     );
                    185: 
                    186: 
                    187: VOID
                    188: PacketRemoveReference(
                    189:     IN PDEVICE_EXTENSION DeviceExtension
                    190:     );
                    191: 
                    192: 
                    193: NTSTATUS
                    194: PacketCleanup(
                    195:     IN PDEVICE_OBJECT DeviceObject,
                    196:     IN PIRP FlushIrp
                    197:     );
                    198: 
                    199: 
                    200: NTSTATUS
                    201: PacketShutdown(
                    202:     IN PDEVICE_OBJECT DeviceObject,
                    203:     IN PIRP Irp
                    204:     );
                    205: 
                    206: VOID
                    207: PacketUnload(
                    208:     IN PDRIVER_OBJECT DriverObject
                    209:     );
                    210: 
                    211: 
                    212: 
                    213: NTSTATUS
                    214: PacketOpen(
                    215:     IN PDEVICE_OBJECT DeviceObject,
                    216:     IN PIRP Irp
                    217:     );
                    218: 
                    219: NTSTATUS
                    220: PacketClose(
                    221:     IN PDEVICE_OBJECT DeviceObject,
                    222:     IN PIRP Irp
                    223:     );
                    224: 
                    225: NTSTATUS
                    226: PacketWrite(
                    227:     IN PDEVICE_OBJECT DeviceObject,
                    228:     IN PIRP Irp
                    229:     );
                    230: 
                    231: NTSTATUS
                    232: PacketRead(
                    233:     IN PDEVICE_OBJECT DeviceObject,
                    234:     IN PIRP Irp
                    235:     );
                    236: 
                    237: NTSTATUS
                    238: PacketIoControl(
                    239:     IN PDEVICE_OBJECT DeviceObject,
                    240:     IN PIRP Irp
                    241:     );

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.