32 *InterruptRecognized =
TRUE;
34 *QueueMiniportHandleInterrupt =
TRUE;
39 *InterruptRecognized =
FALSE;
40 *QueueMiniportHandleInterrupt =
FALSE;
49 ULONG InterruptPending;
63 InterruptPending &= ~E1000_IMS_LSC;
81 ULONG RxDescHead, RxDescTail, CurrRxDesc;
113 goto NextReceiveDescriptor;
116 if (ReceiveDescriptor->
Length != 0 && ReceiveDescriptor->
Address != 0)
124 (
PCHAR)(EthHeader + 1),
135NextReceiveDescriptor:
137 ReceiveDescriptor->
Status = 0;
139 RxDescTail = CurrRxDesc;
172 TransmitDescriptor->
Status = 0;
189 for (
i = 0;
i < NumPackets; ++
i)
196 ASSERT(InterruptPending == 0);
struct _ETH_HEADER * PETH_HEADER
#define NDIS_DbgPrint(_t_, _x_)
VOID NTAPI NICUpdateLinkStatus(IN PE1000_ADAPTER Adapter)
VOID NTAPI MiniportISR(OUT PBOOLEAN InterruptRecognized, OUT PBOOLEAN QueueMiniportHandleInterrupt, IN NDIS_HANDLE MiniportAdapterContext)
VOID NTAPI MiniportHandleInterrupt(IN NDIS_HANDLE MiniportAdapterContext)
struct _E1000_ADAPTER * PE1000_ADAPTER
FORCEINLINE VOID E1000ReadUlong(_In_ PE1000_ADAPTER Adapter, _In_ ULONG Address, _Out_ PULONG Value)
FORCEINLINE VOID E1000WriteUlong(_In_ PE1000_ADAPTER Adapter, _In_ ULONG Address, _In_ ULONG Value)
#define E1000_RDESC_STATUS_PIF
#define E1000_RDESC_STATUS_IXSM
#define E1000_RDESC_STATUS_DD
#define E1000_IMS_TXD_LOW
#define E1000_TDESC_STATUS_DD
#define NUM_RECEIVE_DESCRIPTORS
#define E1000_RDESC_STATUS_EOP
#define NUM_TRANSMIT_DESCRIPTORS
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
long _InterlockedOr(_Interlocked_operand_ long volatile *_Value, long _Mask)
long __cdecl _InterlockedExchange(_Interlocked_operand_ long volatile *_Target, long _Value)
#define NDIS_STATUS_MEDIA_CONNECT
#define NdisMEthIndicateReceiveComplete(MiniportAdapterHandle)
#define NdisMIndicateStatusComplete(MiniportAdapterHandle)
#define NdisMEthIndicateReceive(MiniportAdapterHandle, MiniportReceiveContext, HeaderBuffer, HeaderBufferSize, LookaheadBuffer, LookaheadBufferSize, PacketSize)
#define NDIS_STATUS_MEDIA_DISCONNECT
#define NDIS_STATUS_SUCCESS
#define NdisMSendComplete(MiniportAdapterHandle, Packet, Status)
#define NdisMIndicateStatus(MiniportAdapterHandle, GeneralStatus, StatusBuffer, StatusBufferSize)
@ NdisMediaStateConnected
PE1000_RECEIVE_DESCRIPTOR ReceiveDescriptors
ULONG ReceiveBufferEntrySize
PE1000_TRANSMIT_DESCRIPTOR TransmitDescriptors
PNDIS_PACKET TransmitPackets[NUM_TRANSMIT_DESCRIPTORS]
NDIS_HANDLE AdapterHandle
_Interlocked_ volatile LONG InterruptPending
volatile PUCHAR ReceiveBuffer
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value