📄 ndissys.h
字号:
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS NDIS library
* FILE: ndissys.h
* PURPOSE: NDIS library definitions
* NOTES: Spin lock acquire order:
* - Miniport list lock
* - Adapter list lock
*/
#ifndef __NDISSYS_H
#define __NDISSYS_H
typedef unsigned long NDIS_STATS;
#include <ntifs.h>
#include <ndis.h>
#include <xfilter.h>
#include <afilter.h>
#include <atm.h>
struct _ADAPTER_BINDING;
typedef struct _NDISI_PACKET_POOL {
NDIS_SPIN_LOCK SpinLock;
struct _NDIS_PACKET *FreeList;
UINT PacketLength;
UCHAR Buffer[1];
} NDISI_PACKET_POOL, * PNDISI_PACKET_POOL;
/* WDK Compatibility. Taken from w32api DDK */
#ifndef __NDIS_H
typedef struct _X_FILTER FDDI_FILTER, *PFDDI_FILTER;
typedef VOID
(NTAPI *FDDI_RCV_COMPLETE_HANDLER)(
IN PFDDI_FILTER Filter);
typedef VOID
(NTAPI *FDDI_RCV_INDICATE_HANDLER)(
IN PFDDI_FILTER Filter,
IN NDIS_HANDLE MacReceiveContext,
IN PCHAR Address,
IN UINT AddressLength,
IN PVOID HeaderBuffer,
IN UINT HeaderBufferSize,
IN PVOID LookaheadBuffer,
IN UINT LookaheadBufferSize,
IN UINT PacketSize);
typedef enum _NDIS_WORK_ITEM_TYPE {
NdisWorkItemRequest,
NdisWorkItemSend,
NdisWorkItemReturnPackets,
NdisWorkItemResetRequested,
NdisWorkItemResetInProgress,
NdisWorkItemHalt,
NdisWorkItemSendLoopback,
NdisWorkItemMiniportCallback,
NdisMaxWorkItems
} NDIS_WORK_ITEM_TYPE, *PNDIS_WORK_ITEM_TYPE;
#define NUMBER_OF_WORK_ITEM_TYPES NdisMaxWorkItems
#define NUMBER_OF_SINGLE_WORK_ITEMS 6
typedef struct _NDIS_MINIPORT_WORK_ITEM {
SINGLE_LIST_ENTRY Link;
NDIS_WORK_ITEM_TYPE WorkItemType;
PVOID WorkItemContext;
} NDIS_MINIPORT_WORK_ITEM, *PNDIS_MINIPORT_WORK_ITEM;
typedef VOID (NTAPI *W_MINIPORT_CALLBACK)(
IN NDIS_HANDLE MiniportAdapterContext,
IN PVOID CallbackContext);
typedef struct _NDIS_BIND_PATHS {
UINT Number;
NDIS_STRING Paths[1];
} NDIS_BIND_PATHS, *PNDIS_BIND_PATHS;
#if ARCNET
#define FILTERDBS_ARCNET_S \
PARC_FILTER ArcDB;
#else /* !ARCNET */
#define FILTERDBS_ARCNET_S \
PVOID XXXDB;
#endif /* !ARCNET */
#define FILTERDBS_S \
union { \
PETH_FILTER EthDB; \
PNULL_FILTER NullDB; \
}; \
PTR_FILTER TrDB; \
PFDDI_FILTER FddiDB; \
FILTERDBS_ARCNET_S
typedef struct _NDIS_LOG {
PNDIS_MINIPORT_BLOCK Miniport;
KSPIN_LOCK LogLock;
PIRP Irp;
UINT TotalSize;
UINT CurrentSize;
UINT InPtr;
UINT OutPtr;
UCHAR LogBuf[1];
} NDIS_LOG, *PNDIS_LOG;
typedef enum _NDIS_PNP_DEVICE_STATE {
NdisPnPDeviceAdded,
NdisPnPDeviceStarted,
NdisPnPDeviceQueryStopped,
NdisPnPDeviceStopped,
NdisPnPDeviceQueryRemoved,
NdisPnPDeviceRemoved,
NdisPnPDeviceSurpriseRemoved
} NDIS_PNP_DEVICE_STATE;
typedef struct _OID_LIST OID_LIST, *POID_LIST;
struct _NDIS_MINIPORT_BLOCK {
PVOID Signature;
PNDIS_MINIPORT_BLOCK NextMiniport;
PNDIS_M_DRIVER_BLOCK DriverHandle;
NDIS_HANDLE MiniportAdapterContext;
UNICODE_STRING MiniportName;
PNDIS_BIND_PATHS BindPaths;
NDIS_HANDLE OpenQueue;
REFERENCE ShortRef;
NDIS_HANDLE DeviceContext;
UCHAR Padding1;
UCHAR LockAcquired;
UCHAR PmodeOpens;
UCHAR AssignedProcessor;
KSPIN_LOCK Lock;
PNDIS_REQUEST MediaRequest;
PNDIS_MINIPORT_INTERRUPT Interrupt;
ULONG Flags;
ULONG PnPFlags;
LIST_ENTRY PacketList;
PNDIS_PACKET FirstPendingPacket;
PNDIS_PACKET ReturnPacketsQueue;
ULONG RequestBuffer;
PVOID SetMCastBuffer;
PNDIS_MINIPORT_BLOCK PrimaryMiniport;
PVOID WrapperContext;
PVOID BusDataContext;
ULONG PnPCapabilities;
PCM_RESOURCE_LIST Resources;
NDIS_TIMER WakeUpDpcTimer;
UNICODE_STRING BaseName;
UNICODE_STRING SymbolicLinkName;
ULONG CheckForHangSeconds;
USHORT CFHangTicks;
USHORT CFHangCurrentTick;
NDIS_STATUS ResetStatus;
NDIS_HANDLE ResetOpen;
FILTERDBS_S
FILTER_PACKET_INDICATION_HANDLER PacketIndicateHandler;
NDIS_M_SEND_COMPLETE_HANDLER SendCompleteHandler;
NDIS_M_SEND_RESOURCES_HANDLER SendResourcesHandler;
NDIS_M_RESET_COMPLETE_HANDLER ResetCompleteHandler;
NDIS_MEDIUM MediaType;
ULONG BusNumber;
NDIS_INTERFACE_TYPE BusType;
NDIS_INTERFACE_TYPE AdapterType;
PDEVICE_OBJECT DeviceObject;
PDEVICE_OBJECT PhysicalDeviceObject;
PDEVICE_OBJECT NextDeviceObject;
PMAP_REGISTER_ENTRY MapRegisters;
PNDIS_AF_LIST CallMgrAfList;
PVOID MiniportThread;
PVOID SetInfoBuf;
USHORT SetInfoBufLen;
USHORT MaxSendPackets;
NDIS_STATUS FakeStatus;
PVOID LockHandler;
PUNICODE_STRING pAdapterInstanceName;
PNDIS_MINIPORT_TIMER TimerQueue;
UINT MacOptions;
PNDIS_REQUEST PendingRequest;
UINT MaximumLongAddresses;
UINT MaximumShortAddresses;
UINT CurrentLookahead;
UINT MaximumLookahead;
W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler;
W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
W_SEND_PACKETS_HANDLER SendPacketsHandler;
NDIS_M_START_SENDS DeferredSendHandler;
ETH_RCV_INDICATE_HANDLER EthRxIndicateHandler;
TR_RCV_INDICATE_HANDLER TrRxIndicateHandler;
FDDI_RCV_INDICATE_HANDLER FddiRxIndicateHandler;
ETH_RCV_COMPLETE_HANDLER EthRxCompleteHandler;
TR_RCV_COMPLETE_HANDLER TrRxCompleteHandler;
FDDI_RCV_COMPLETE_HANDLER FddiRxCompleteHandler;
NDIS_M_STATUS_HANDLER StatusHandler;
NDIS_M_STS_COMPLETE_HANDLER StatusCompleteHandler;
NDIS_M_TD_COMPLETE_HANDLER TDCompleteHandler;
NDIS_M_REQ_COMPLETE_HANDLER QueryCompleteHandler;
NDIS_M_REQ_COMPLETE_HANDLER SetCompleteHandler;
NDIS_WM_SEND_COMPLETE_HANDLER WanSendCompleteHandler;
WAN_RCV_HANDLER WanRcvHandler;
WAN_RCV_COMPLETE_HANDLER WanRcvCompleteHandler;
#if defined(NDIS_WRAPPER)
PNDIS_MINIPORT_BLOCK NextGlobalMiniport;
SINGLE_LIST_ENTRY WorkQueue[NUMBER_OF_WORK_ITEM_TYPES];
SINGLE_LIST_ENTRY SingleWorkItems[NUMBER_OF_SINGLE_WORK_ITEMS];
UCHAR SendFlags;
UCHAR TrResetRing;
UCHAR ArcnetAddress;
UCHAR XState;
union {
#if ARCNET
PNDIS_ARC_BUF ArcBuf;
#endif
PVOID BusInterface;
};
PNDIS_LOG Log;
ULONG SlotNumber;
PCM_RESOURCE_LIST AllocatedResources;
PCM_RESOURCE_LIST AllocatedResourcesTranslated;
SINGLE_LIST_ENTRY PatternList;
NDIS_PNP_CAPABILITIES PMCapabilities;
DEVICE_CAPABILITIES DeviceCaps;
ULONG WakeUpEnable;
DEVICE_POWER_STATE CurrentDevicePowerState;
PIRP pIrpWaitWake;
SYSTEM_POWER_STATE WaitWakeSystemState;
LARGE_INTEGER VcIndex;
KSPIN_LOCK VcCountLock;
LIST_ENTRY WmiEnabledVcs;
PNDIS_GUID pNdisGuidMap;
PNDIS_GUID pCustomGuidMap;
USHORT VcCount;
USHORT cNdisGuidMap;
USHORT cCustomGuidMap;
USHORT CurrentMapRegister;
PKEVENT AllocationEvent;
USHORT BaseMapRegistersNeeded;
USHORT SGMapRegistersNeeded;
ULONG MaximumPhysicalMapping;
NDIS_TIMER MediaDisconnectTimer;
USHORT MediaDisconnectTimeOut;
USHORT InstanceNumber;
NDIS_EVENT OpenReadyEvent;
NDIS_PNP_DEVICE_STATE PnPDeviceState;
NDIS_PNP_DEVICE_STATE OldPnPDeviceState;
PGET_SET_DEVICE_DATA SetBusData;
PGET_SET_DEVICE_DATA GetBusData;
KDPC DeferredDpc;
#if 0
/* FIXME: */
NDIS_STATS NdisStats;
#else
ULONG NdisStats;
#endif
PNDIS_PACKET IndicatedPacket[MAXIMUM_PROCESSORS];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -