📄 ndissys.h
字号:
PKEVENT RemoveReadyEvent;
PKEVENT AllOpensClosedEvent;
PKEVENT AllRequestsCompletedEvent;
ULONG InitTimeMs;
NDIS_MINIPORT_WORK_ITEM WorkItemBuffer[NUMBER_OF_SINGLE_WORK_ITEMS];
PDMA_ADAPTER SystemAdapterObject;
ULONG DriverVerifyFlags;
POID_LIST OidList;
USHORT InternalResetCount;
USHORT MiniportResetCount;
USHORT MediaSenseConnectCount;
USHORT MediaSenseDisconnectCount;
PNDIS_PACKET *xPackets;
ULONG UserModeOpenReferences;
union {
PVOID SavedSendHandler;
PVOID SavedWanSendHandler;
};
PVOID SavedSendPacketsHandler;
PVOID SavedCancelSendPacketsHandler;
W_SEND_PACKETS_HANDLER WSendPacketsHandler;
ULONG MiniportAttributes;
PDMA_ADAPTER SavedSystemAdapterObject;
USHORT NumOpens;
USHORT CFHangXTicks;
ULONG RequestCount;
ULONG IndicatedPacketsCount;
ULONG PhysicalMediumType;
PNDIS_REQUEST LastRequest;
LONG DmaAdapterRefCount;
PVOID FakeMac;
ULONG LockDbg;
ULONG LockDbgX;
PVOID LockThread;
ULONG InfoFlags;
KSPIN_LOCK TimerQueueLock;
PKEVENT ResetCompletedEvent;
PKEVENT QueuedBindingCompletedEvent;
PKEVENT DmaResourcesReleasedEvent;
FILTER_PACKET_INDICATION_HANDLER SavedPacketIndicateHandler;
ULONG RegisteredInterrupts;
PNPAGED_LOOKASIDE_LIST SGListLookasideList;
ULONG ScatterGatherListSize;
#endif /* _NDIS_ */
};
#if 1
/* FIXME: */
typedef PVOID QUEUED_CLOSE;
#endif
#if defined(NDIS_WRAPPER)
#define NDIS_COMMON_OPEN_BLOCK_WRAPPER_S \
ULONG Flags; \
ULONG References; \
KSPIN_LOCK SpinLock; \
NDIS_HANDLE FilterHandle; \
ULONG ProtocolOptions; \
USHORT CurrentLookahead; \
USHORT ConnectDampTicks; \
USHORT DisconnectDampTicks; \
W_SEND_HANDLER WSendHandler; \
W_TRANSFER_DATA_HANDLER WTransferDataHandler; \
W_SEND_PACKETS_HANDLER WSendPacketsHandler; \
W_CANCEL_SEND_PACKETS_HANDLER CancelSendPacketsHandler; \
ULONG WakeUpEnable; \
PKEVENT CloseCompleteEvent; \
QUEUED_CLOSE QC; \
ULONG AfReferences; \
PNDIS_OPEN_BLOCK NextGlobalOpen;
#else
#define NDIS_COMMON_OPEN_BLOCK_WRAPPER_S
#endif
#define NDIS_COMMON_OPEN_BLOCK_S \
PVOID MacHandle; \
NDIS_HANDLE BindingHandle; \
PNDIS_MINIPORT_BLOCK MiniportHandle; \
PNDIS_PROTOCOL_BLOCK ProtocolHandle; \
NDIS_HANDLE ProtocolBindingContext; \
PNDIS_OPEN_BLOCK MiniportNextOpen; \
PNDIS_OPEN_BLOCK ProtocolNextOpen; \
NDIS_HANDLE MiniportAdapterContext; \
BOOLEAN Reserved1; \
BOOLEAN Reserved2; \
BOOLEAN Reserved3; \
BOOLEAN Reserved4; \
PNDIS_STRING BindDeviceName; \
KSPIN_LOCK Reserved5; \
PNDIS_STRING RootDeviceName; \
union { \
SEND_HANDLER SendHandler; \
WAN_SEND_HANDLER WanSendHandler; \
}; \
TRANSFER_DATA_HANDLER TransferDataHandler; \
SEND_COMPLETE_HANDLER SendCompleteHandler; \
TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler; \
RECEIVE_HANDLER ReceiveHandler; \
RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler; \
WAN_RECEIVE_HANDLER WanReceiveHandler; \
REQUEST_COMPLETE_HANDLER RequestCompleteHandler; \
RECEIVE_PACKET_HANDLER ReceivePacketHandler; \
SEND_PACKETS_HANDLER SendPacketsHandler; \
RESET_HANDLER ResetHandler; \
REQUEST_HANDLER RequestHandler; \
RESET_COMPLETE_HANDLER ResetCompleteHandler; \
STATUS_HANDLER StatusHandler; \
STATUS_COMPLETE_HANDLER StatusCompleteHandler; \
NDIS_COMMON_OPEN_BLOCK_WRAPPER_S
typedef struct _NDIS_COMMON_OPEN_BLOCK {
NDIS_COMMON_OPEN_BLOCK_S
} NDIS_COMMON_OPEN_BLOCK;
struct _NDIS_OPEN_BLOCK
{
#ifdef __cplusplus
NDIS_COMMON_OPEN_BLOCK NdisCommonOpenBlock;
#else
NDIS_COMMON_OPEN_BLOCK_S
#endif
#if defined(NDIS_WRAPPER)
struct _NDIS_OPEN_CO
{
struct _NDIS_CO_AF_BLOCK * NextAf;
W_CO_CREATE_VC_HANDLER MiniportCoCreateVcHandler;
W_CO_REQUEST_HANDLER MiniportCoRequestHandler;
CO_CREATE_VC_HANDLER CoCreateVcHandler;
CO_DELETE_VC_HANDLER CoDeleteVcHandler;
PVOID CmActivateVcCompleteHandler;
PVOID CmDeactivateVcCompleteHandler;
PVOID CoRequestCompleteHandler;
LIST_ENTRY ActiveVcHead;
LIST_ENTRY InactiveVcHead;
LONG PendingAfNotifications;
PKEVENT AfNotifyCompleteEvent;
};
#endif /* _NDIS_ */
};
#define NDIS30_PROTOCOL_CHARACTERISTICS_S \
UCHAR MajorNdisVersion; \
UCHAR MinorNdisVersion; \
USHORT Filler; \
union { \
UINT Reserved; \
UINT Flags; \
}; \
OPEN_ADAPTER_COMPLETE_HANDLER OpenAdapterCompleteHandler; \
CLOSE_ADAPTER_COMPLETE_HANDLER CloseAdapterCompleteHandler; \
union { \
SEND_COMPLETE_HANDLER SendCompleteHandler; \
WAN_SEND_COMPLETE_HANDLER WanSendCompleteHandler; \
}; \
union { \
TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler; \
WAN_TRANSFER_DATA_COMPLETE_HANDLER WanTransferDataCompleteHandler; \
}; \
RESET_COMPLETE_HANDLER ResetCompleteHandler; \
REQUEST_COMPLETE_HANDLER RequestCompleteHandler; \
union { \
RECEIVE_HANDLER ReceiveHandler; \
WAN_RECEIVE_HANDLER WanReceiveHandler; \
}; \
RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler; \
STATUS_HANDLER StatusHandler; \
STATUS_COMPLETE_HANDLER StatusCompleteHandler; \
NDIS_STRING Name;
typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS {
NDIS30_PROTOCOL_CHARACTERISTICS_S
} NDIS30_PROTOCOL_CHARACTERISTICS, *PNDIS30_PROTOCOL_CHARACTERISTICS;
#define NDIS30_MINIPORT_CHARACTERISTICS_S \
UCHAR MajorNdisVersion; \
UCHAR MinorNdisVersion; \
USHORT Filler; \
UINT Reserved; \
W_CHECK_FOR_HANG_HANDLER CheckForHangHandler; \
W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler; \
W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler; \
W_HALT_HANDLER HaltHandler; \
W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler; \
W_INITIALIZE_HANDLER InitializeHandler; \
W_ISR_HANDLER ISRHandler; \
W_QUERY_INFORMATION_HANDLER QueryInformationHandler; \
W_RECONFIGURE_HANDLER ReconfigureHandler; \
W_RESET_HANDLER ResetHandler; \
union { \
W_SEND_HANDLER SendHandler; \
WM_SEND_HANDLER WanSendHandler; \
}u1; \
W_SET_INFORMATION_HANDLER SetInformationHandler; \
union { \
W_TRANSFER_DATA_HANDLER TransferDataHandler; \
WM_TRANSFER_DATA_HANDLER WanTransferDataHandler; \
}u2;
typedef struct _NDIS30_MINIPORT_CHARACTERISTICS {
NDIS30_MINIPORT_CHARACTERISTICS_S
} NDIS30_MINIPORT_CHARACTERISTICS, *PSNDIS30_MINIPORT_CHARACTERISTICS;
#ifdef __cplusplus
#define NDIS40_MINIPORT_CHARACTERISTICS_S \
NDIS30_MINIPORT_CHARACTERISTICS Ndis30Chars; \
W_RETURN_PACKET_HANDLER ReturnPacketHandler; \
W_SEND_PACKETS_HANDLER SendPacketsHandler; \
W_ALLOCATE_COMPLETE_HANDLER AllocateCompleteHandler;
#else /* !__cplusplus */
#define NDIS40_MINIPORT_CHARACTERISTICS_S \
NDIS30_MINIPORT_CHARACTERISTICS_S \
W_RETURN_PACKET_HANDLER ReturnPacketHandler; \
W_SEND_PACKETS_HANDLER SendPacketsHandler; \
W_ALLOCATE_COMPLETE_HANDLER AllocateCompleteHandler;
#endif /* !__cplusplus */
typedef struct _NDIS40_MINIPORT_CHARACTERISTICS {
NDIS40_MINIPORT_CHARACTERISTICS_S
} NDIS40_MINIPORT_CHARACTERISTICS, *PNDIS40_MINIPORT_CHARACTERISTICS;
#endif
#include "miniport.h"
#include "protocol.h"
#include <debug.h>
/* Exported functions */
#ifndef EXPORT
#define EXPORT NTAPI
#endif
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define NDIS_TAG 0x4e4d4953
#define MIN(value1, value2) \
((value1 < value2)? value1 : value2)
#define MAX(value1, value2) \
((value1 > value2)? value1 : value2)
#define ExInterlockedRemoveEntryList(_List,_Lock) \
{ KIRQL OldIrql; \
KeAcquireSpinLock(_Lock, &OldIrql); \
RemoveEntryList(_List); \
KeReleaseSpinLock(_Lock, OldIrql); \
}
#endif /* __NDISSYS_H */
/* EOF */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -