545 ULONG Temp[2], TxPoll;
559 MacAddress[0] = (Temp[0] >> 0) & 0xFF;
560 MacAddress[1] = (Temp[0] >> 8) & 0xFF;
561 MacAddress[2] = (Temp[0] >> 16) & 0xFF;
562 MacAddress[3] = (Temp[0] >> 24) & 0xFF;
563 MacAddress[4] = (Temp[1] >> 0) & 0xFF;
564 MacAddress[5] = (Temp[1] >> 8) & 0xFF;
570 MacAddress[0] = (Temp[0] >> 0) & 0xFF;
571 MacAddress[1] = (Temp[0] >> 8) & 0xFF;
572 MacAddress[2] = (Temp[0] >> 16) & 0xFF;
573 MacAddress[3] = (Temp[0] >> 24) & 0xFF;
574 MacAddress[4] = (Temp[1] >> 0) & 0xFF;
575 MacAddress[5] = (Temp[1] >> 8) & 0xFF;
582 Temp[0] = (MacAddress[5] << 0) | (MacAddress[4] << 8) |
583 (MacAddress[3] << 16) | (MacAddress[2] << 24);
584 Temp[1] = (MacAddress[1] << 0) | (MacAddress[0] << 8);
589 MacAddress[0] = (Temp[1] >> 8) & 0xFF;
590 MacAddress[1] = (Temp[1] >> 0) & 0xFF;
591 MacAddress[2] = (Temp[0] >> 24) & 0xFF;
592 MacAddress[3] = (Temp[0] >> 16) & 0xFF;
593 MacAddress[4] = (Temp[0] >> 8) & 0xFF;
594 MacAddress[5] = (Temp[0] >> 0) & 0xFF;
603 Adapter->OriginalMacAddress[0] = Temp[0];
604 Adapter->OriginalMacAddress[1] = Temp[1];
631 MacAddress[3] << 24 | MacAddress[2] << 16 | MacAddress[1] << 8 | MacAddress[0]);
693 if (PciConfig.VendorID != 0x10DE)
696 Adapter->DeviceId = PciConfig.DeviceID;
697 Adapter->RevisionId = PciConfig.RevisionID;
699 switch (PciConfig.DeviceID)
826 Adapter->VlanControl = 0;
872 switch (Adapter->FlowControlMode)
921 Adapter->AdapterHandle,
#define DEV_HAS_TEST_EXTENDED
#define NVREG_TXRXCTL_DESC_3
#define NV_SEND_LARGE_SEND
#define NVREG_TX_WM_DESC2_3_DEFAULT
enum _NVNET_REGISTER NVNET_REGISTER
BOOLEAN MiiWrite(_In_ PNVNET_ADAPTER Adapter, _In_ ULONG PhyAddress, _In_ ULONG RegAddress, _In_ ULONG Data)
BOOLEAN NTAPI NvNetInitPhaseSynchronized(_In_ PVOID SynchronizeContext)
#define NV_PAUSEFRAME_TX_REQ
#define NVREG_TX_PAUSEFRAME_ENABLE_V2
#define NVREG_IRQSTAT_MASK
NDIS_STATUS NvNetRecognizeHardware(_Inout_ PNVNET_ADAPTER Adapter)
#define NVREG_LINKSPEED_FORCE
#define DEV_HAS_STATISTICS_V3
#define NVREG_TXRXCTL_BIT2
VOID NvNetBackoffSetSlotTime(_In_ PNVNET_ADAPTER Adapter)
#define NVREG_POLL_DEFAULT_CPU
#define DEV_HAS_POWER_CNTRL
VOID NvNetStartReceiver(_In_ PNVNET_ADAPTER Adapter)
static VOID NvNetResetMac(_In_ PNVNET_ADAPTER Adapter)
NDIS_STATUS NvNetInitNIC(_In_ PNVNET_ADAPTER Adapter, _In_ BOOLEAN InitPhy)
VOID NvNetUpdatePauseFrame(_Inout_ PNVNET_ADAPTER Adapter, _In_ ULONG PauseFlags)
#define NV_WAKEUPPATTERNS_V2
#define UNREFERENCED_PARAMETER(P)
#define NVREG_ADAPTCTL_PHYVALID
VOID EXPORT NdisDprReleaseSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
#define NV_PAUSEFRAME_RX_CAPABLE
#define NVREG_MIISTAT_MASK_ALL
#define NDIS_STATUS_INVALID_ADDRESS
#define NVREG_XMITCTL_START
#define NVREG_MCASTMASKA_NONE
#define NVREG_IRQMASK_THROUGHPUT
static VOID NvNetClearStatisticsCounters(_In_ PNVNET_ADAPTER Adapter)
VOID NvNetStartTransmitter(_In_ PNVNET_ADAPTER Adapter)
_In_ PVOID _In_ PVOID _In_ PVOID SystemSpecific3
#define DEV_NEED_TX_LIMIT2
#define NVREG_MIISPEED_BIT8
VOID NvNetStopReceiver(_In_ PNVNET_ADAPTER Adapter)
#define NVREG_POLL_DEFAULT_THROUGHPUT
#define NVREG_RINGSZ_TXSHIFT
#define NVREG_TX_PAUSEFRAME_ENABLE_V3
#define DEV_HAS_COLLISION_FIX
#define NV_SETUP5_DELAYMAX
#define NVREG_RCVSTAT_BUSY
#define NVREG_XMITSTAT_BUSY
_In_ PVOID FunctionContext
#define NVREG_POWERSTATE_VALID
BOOLEAN MiiRead(_In_ PNVNET_ADAPTER Adapter, _In_ ULONG PhyAddress, _In_ ULONG RegAddress, _Out_ PULONG Data)
#define NDIS_STATUS_NOT_RECOGNIZED
#define DEV_HAS_GEAR_MODE
#define NVREG_ADAPTCTL_PHYSHIFT
#define NVREG_ADAPTCTL_RUNNING
VOID EXPORT NdisDprAcquireSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
#define NV_PAUSEFRAME_RX_ENABLE
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID EXPORT NdisMInitializeTimer(IN OUT PNDIS_MINIPORT_TIMER Timer, IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_TIMER_FUNCTION TimerFunction, IN PVOID FunctionContext)
#define NdisGetPhysicalAddressHigh(PhysicalAddress)
#define NVREG_MISC1_FORCE
#define NV_PAUSEFRAME_AUTONEG
#define _Out_writes_bytes_all_(size)
FORCEINLINE VOID NV_WRITE(_In_ PNVNET_ADAPTER Adapter, _In_ NVNET_REGISTER Register, _In_ ULONG Value)
#define NVREG_UNKSETUP6_VAL
#define NVREG_RX_DEFERRAL_DEFAULT
#define DEV_NEED_LINKTIMER
#define NVREG_TXRXCTL_DESC_2
VOID EXPORT NdisMIndicateStatusComplete(IN NDIS_HANDLE MiniportAdapterHandle)
#define DEV_NEED_TIMERIRQ
#define DEV_NEED_TX_LIMIT
#define NVREG_MII_LINKCHANGE
#define NDIS_STATUS_MEDIA_CONNECT
static VOID NvNetValidateConfiguration(_Inout_ PNVNET_ADAPTER Adapter)
VOID NvNetStopTransmitter(_In_ PNVNET_ADAPTER Adapter)
#define NVNET_TRANSMIT_DESCRIPTORS
BOOLEAN NvNetUpdateLinkSpeed(_In_ PNVNET_ADAPTER Adapter)
#define DEV_HAS_MGMT_UNIT
#define DEV_HAS_PAUSEFRAME_TX_V3
#define NVREG_IRQMASK_CPU
VOID NvNetIdleTransmitter(_In_ PNVNET_ADAPTER Adapter, _In_ BOOLEAN ClearPhyControl)
#define MII_CR_POWER_DOWN
#define NVREG_TXRXCTL_RESET
#define DEV_HAS_STATISTICS_COUNTERS
#define ETH_IS_EMPTY(Address)
#define NV_TXSTOP_DELAY1MAX
#define DEV_HAS_PAUSEFRAME_TX_V1
#define NVREG_MCASTMASKB_NONE
#define NVREG_RINGSZ_RXSHIFT
#define DEV_NEED_LOW_POWER_FIX
#define DEV_HAS_TX_PAUSEFRAME
#define NVREG_PFF_PAUSE_RX
VOID NTAPI NvNetMediaDetectionDpc(_In_ PVOID SystemSpecific1, _In_ PVOID FunctionContext, _In_ PVOID SystemSpecific2, _In_ PVOID SystemSpecific3)
#define NDIS_STATUS_ADAPTER_NOT_FOUND
#define NVREG_MAC_RESET_ASSERT
NDIS_STATUS NvNetGetPermanentMacAddress(_Inout_ PNVNET_ADAPTER Adapter, _Out_writes_bytes_all_(ETH_LENGTH_OF_ADDRESS) PUCHAR MacAddress)
#define NDIS_STATUS_SUCCESS
#define NVREG_TX_PAUSEFRAMELIMIT_ENABLE
#define NVREG_MISC1_PAUSE_TX
_In_ PVOID _In_ PVOID SystemSpecific2
#define NVREG_TXRXCTL_DESC_1
#define NVREG_TX_DEFERRAL_DEFAULT
#define DEV_HAS_STATISTICS_V2
#define DEV_HAS_PAUSEFRAME_TX_V2
#define NVREG_TX_PAUSEFRAME_ENABLE_V1
#define NV_TXIDLE_ATTEMPTS
#define NVNET_MAXIMUM_FRAME_SIZE
NDIS_HANDLE AdapterHandle
#define NV_PAUSEFRAME_TX_ENABLE
VOID NvNetResetReceiverAndTransmitter(_In_ PNVNET_ADAPTER Adapter)
_In_ PKSYNCHRONIZE_ROUTINE _In_opt_ __drv_aliasesMem PVOID SynchronizeContext
#define NV_PAUSEFRAME_TX_CAPABLE
ULONG EXPORT NdisReadPciSlotInformation(IN NDIS_HANDLE NdisAdapterHandle, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length)
#define NvNetApplyInterruptMask(Adapter)
#define NV_SEND_ERRATA_PRESENT
#define NVREG_TXRXCTL_IDLE
#define DEV_NEED_PHY_INIT_FIX
#define NVREG_TRANSMITPOLL_MAC_ADDR_REV
#define NV_PACKET_PRIORITY
VOID NvNetSetupMacAddress(_In_ PNVNET_ADAPTER Adapter, _In_reads_bytes_(ETH_LENGTH_OF_ADDRESS) PUCHAR MacAddress)
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
#define NVREG_RCVCTL_START
#define ETH_IS_MULTICAST(Address)
#define DEV_HAS_CORRECT_MACADDR
NDIS_STATUS NvNetPhyInit(_In_ PNVNET_ADAPTER Adapter)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
#define NV_RXSTOP_DELAY1MAX
#define FIELD_OFFSET(t, f)
#define ETH_LENGTH_OF_ADDRESS
#define NV_WAKEUPPATTERNS
#define NDIS_DbgPrint(_t_, _x_)
static LARGE_INTEGER Counter
VOID NvNetToggleClockPowerGating(_In_ PNVNET_ADAPTER Adapter, _In_ BOOLEAN Gate)
#define NVNET_RECEIVE_DESCRIPTORS
#define NV_TXRX_RESET_DELAY
#define DEV_HAS_LARGEDESC
#define NVREG_UNKSETUP5_BIT31
#define NdisStallExecution
#define NVREG_LINKSPEED_10
#define NVREG_RCVCTL_RX_PATH_EN
#define NdisGetPhysicalAddressLow(PhysicalAddress)
#define NVREG_XMITCTL_TX_PATH_EN
#define NV_PAUSEFRAME_RX_REQ
#define NVREG_TX_WM_DESC1_DEFAULT
VOID EXPORT NdisMIndicateStatus(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize)
FORCEINLINE ULONG NV_READ(_In_ PNVNET_ADAPTER Adapter, _In_ NVNET_REGISTER Register)
#define NDIS_STATUS_MEDIA_DISCONNECT
#define NV_MAC_RESET_DELAY
#define NVREG_TX_PAUSEFRAME_DISABLE
#define NVREG_TXRXCTL_BIT1
#define NVREG_POWERSTATE2_GATE_CLOCKS
#define DEV_HAS_STATISTICS_V1
#define PCI_COMMON_HDR_LENGTH
#define _In_reads_bytes_(size)