📄 nic_def.h
字号:
/*++
_condition - condition to wait for
_timeout_ms - timeout value in milliseconds
_result - TRUE if condition becomes true before it times out
--*/
#define MP_STALL_AND_WAIT(_condition, _timeout_ms, _result) \
{ \
int counter; \
_result = FALSE; \
for(counter = _timeout_ms * 50; counter != 0; counter--) \
{ \
if(_condition) \
{ \
_result = TRUE; \
break; \
} \
KeStallExecutionProcessor(20); \
} \
}
__inline VOID MP_STALL_EXECUTION(
IN ULONG MsecDelay) //Eliyas UINT to ULONG
{
// Delay in 100 usec increments
MsecDelay *= 10;
while (MsecDelay)
{
KeStallExecutionProcessor(100);
MsecDelay--;
}
}
typedef struct _FDO_DATA FDO_DATA, *PFDO_DATA;
NTSTATUS
NICInitializeDeviceExtension(
IN OUT PFDO_DATA FdoData
);
NTSTATUS
NICGetDeviceInformation(
IN OUT PFDO_DATA FdoData
);
NTSTATUS
NICAllocateDeviceResources(
IN OUT PFDO_DATA FdoData,
IN PIRP Irp
);
NTSTATUS
NICMapHWResources(
IN OUT PFDO_DATA FdoData,
IN PIRP Irp
);
NTSTATUS
NICUnmapHWResources(
IN OUT PFDO_DATA FdoData
);
NTSTATUS
NICFreeDeviceResources(
IN OUT PFDO_DATA FdoData
);
NTSTATUS
NICInitializeAdapter(
IN PFDO_DATA FdoData
);
NTSTATUS
NICReadAdapterInfo(
IN PFDO_DATA FdoData
);
NTSTATUS
NICSelfTest(
IN PFDO_DATA FdoData
);
VOID
HwSoftwareReset(
IN PFDO_DATA FdoData
);
BOOLEAN
NICInterruptHandler(
IN PKINTERRUPT Interupt,
IN PVOID ServiceContext
);
#if 0
NTSTATUS
ReadWriteConfigSpace(
IN PDEVICE_OBJECT DeviceObject,
IN ULONG ReadOrWrite, // 0 for read 1 for write
IN PVOID Buffer,
IN ULONG Offset,
IN ULONG Length
);
#endif
NTSTATUS
GetPCIBusInterfaceStandard(
IN PDEVICE_OBJECT DeviceObject,
OUT PBUS_INTERFACE_STANDARD BusInterfaceStandard
);
NTSTATUS
NICAllocAdapterMemory(
IN PFDO_DATA FdoData
);
VOID
NICFreeAdapterMemory(
IN PFDO_DATA FdoData
);
NTSTATUS
NICAllocRfd(
IN PFDO_DATA FdoData,
IN PMP_RFD pMpRfd
);
VOID
NICFreeRfd(
IN PFDO_DATA FdoData,
IN PMP_RFD pMpRfd
);
VOID
NICReturnRFD(
IN PFDO_DATA FdoData,
IN PMP_RFD pMpRfd
);
NTSTATUS
HwConfigure(
IN PFDO_DATA FdoData
);
NTSTATUS
HwSetupIAAddress(
IN PFDO_DATA FdoData
);
NTSTATUS
HwClearAllCounters(
IN PFDO_DATA FdoData
);
NTSTATUS
NICInitRecv(
IN PFDO_DATA FdoData
);
VOID
NICInitSend(
IN PFDO_DATA FdoData
);
NTSTATUS
NICLinkDetection(
IN PFDO_DATA FdoData
);
NTSTATUS
NICHandleQueryOidRequest(
IN PFDO_DATA FdoData,
IN PIRP Irp,
OUT PULONG BytesWritten
);
NTSTATUS
NICHandleSetOidRequest(
IN PFDO_DATA FdoData,
IN PIRP Irp
);
VOID
NICServiceIndicateStatusIrp(
IN PFDO_DATA FdoData
);
NTSTATUS
NICGetStatsCounters(
IN PFDO_DATA FdoData,
IN NDIS_OID Oid,
OUT PULONG64 pCounter);
NTSTATUS
NICSetPacketFilter(
IN PFDO_DATA FdoData,
IN ULONG PacketFilter);
NTSTATUS
NICSetMulticastList(
IN PFDO_DATA FdoData);
ULONG
NICGetMediaConnectStatus(
IN PFDO_DATA FdoData);
NTSTATUS
NICWrite(
IN PFDO_DATA FdoData,
IN PIRP Irp
);
VOID
NICWritePacket(
IN PFDO_DATA FdoData,
IN PIRP Irp,
IN BOOLEAN bFromQueue
);
NTSTATUS
NICSendPacket(
IN PFDO_DATA FdoData,
IN PMP_TCB pMpTcb,
IN PSCATTER_GATHER_LIST pFragList);
NTSTATUS
NICStartSend(
IN PFDO_DATA FdoData,
IN PMP_TCB pMpTcb);;
VOID
NICProcessSGList(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,//unused
IN PSCATTER_GATHER_LIST pSGL,
IN PVOID Context
);
VOID
NICDpcForIsr(
IN PKDPC Dpc,
IN PDEVICE_OBJECT DeviceObject,
IN PIRP SystemArgument1,
IN PVOID SystemArgument2
);
NTSTATUS
NICHandleSendInterrupt(
IN PFDO_DATA FdoData
);
VOID
NICFreeQueuedSendPackets(
IN PFDO_DATA FdoData
);
VOID
NICFreeBusySendPackets(
IN PFDO_DATA FdoData
);
VOID
NICCompleteSendRequest(
PFDO_DATA FdoData,
PIRP Irp,
NTSTATUS Status,
ULONG Information,
BOOLEAN AtDispatchLevel
);
VOID
NICShutdown(
IN PFDO_DATA FdoData
);
VOID
NICHandleRecvInterrupt(
IN PFDO_DATA FdoData
);
NTSTATUS
NICStartRecv(
IN PFDO_DATA FdoData
);
VOID
NICResetRecv(
IN PFDO_DATA FdoData
);
VOID
NICServiceReadIrps(
PFDO_DATA FdoData,
PMP_RFD *PacketArray,
ULONG PacketArrayCount
);
VOID
NICWatchDogTimerDpc(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3
);
BOOLEAN
NICCheckForHang(
IN PFDO_DATA FdoData
);
NTSTATUS
NICReset(
IN PFDO_DATA FdoData
);
MEDIA_STATE
NICIndicateMediaState(
IN PFDO_DATA FdoData
);
MEDIA_STATE
NICGetMediaState(
IN PFDO_DATA FdoData
);
VOID
NICExtractPMInfoFromPciSpace(
PFDO_DATA FdoData,
PUCHAR pPciConfig
);
NTSTATUS
NICSetPower(
PFDO_DATA FdoData ,
DEVICE_POWER_STATE PowerState
);
VOID
NICFillPoMgmtCaps (
IN PFDO_DATA FdoData,
IN OUT PNDIS_PNP_CAPABILITIES pPower_Management_Capabilities,
IN OUT PNDIS_STATUS pStatus,
IN OUT PULONG pulInfoLen
);
NTSTATUS
NICAddWakeUpPattern(
IN PFDO_DATA FdoData,
IN PVOID InformationBuffer,
IN UINT InformationBufferLength,
OUT PULONG BytesRead,
OUT PULONG BytesNeeded
);
NTSTATUS
NICRemoveWakeUpPattern(
IN PFDO_DATA FdoData,
IN PVOID InformationBuffer,
IN UINT InformationBufferLength,
OUT PULONG BytesRead,
OUT PULONG BytesNeeded
);
VOID
NICRemoveAllWakeUpPatterns(
PFDO_DATA FdoData
);
NTSTATUS
NICConfigureForWakeUp(
IN PFDO_DATA FdoData,
IN BOOLEAN AddPattern
);
VOID
NICGetDeviceInfSettings(
IN OUT PFDO_DATA FdoData
);
VOID
NICAllocRfdWorkItem(
IN PDEVICE_OBJECT DeviceObject,
IN PVOID Context
);
VOID
NICFreeRfdWorkItem(
IN PDEVICE_OBJECT DeviceObject,
IN PVOID Context
);
typedef
USHORT
(*PREAD_PORT)(
IN USHORT *Register
);
typedef
VOID
(*PWRITE_PORT)(
IN USHORT *Register,
IN USHORT Value
);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -