Annotation of ntddk/src/network/packet/driver/packet.h, revision 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.