36 &ConfigurationParameter,
82 Adapter->WrapperConfigurationHandle);
92 Adapter->OptimizationMode = GenericUlong;
100 Adapter->FlowControlMode = GenericUlong;
108 switch (GenericUlong)
152 Adapter->MaximumFrameSize = GenericUlong;
220 UINT i, ResourceListSize = 0;
227 Adapter->WrapperConfigurationHandle,
246 Adapter->WrapperConfigurationHandle,
255 for (
i = 0;
i < AssignedResources->Count; ++
i)
263 Adapter->IoAddress =
Descriptor->u.Memory.Start;
264 Adapter->IoLength =
Descriptor->u.Memory.Length;
270 Adapter->InterruptVector =
Descriptor->u.Interrupt.Vector;
271 Adapter->InterruptLevel =
Descriptor->u.Interrupt.Level;
282 if (!Adapter->IoAddress.QuadPart || !Adapter->InterruptVector)
290 Adapter->IoAddress.QuadPart,
291 Adapter->IoAddress.QuadPart + Adapter->IoLength));
293 Adapter->InterruptVector,
294 Adapter->InterruptLevel));
297 Adapter->AdapterHandle,
333 Adapter->SendBuffer = CoalesceBuffer;
349 CoalesceBuffer->PhysicalAddress.QuadPart =
355 PushEntryList(&Adapter->Send.BufferList, &CoalesceBuffer->Link);
388 Adapter->Send.HeadTcb = Tcb;
389 Adapter->Send.CurrentTcb = Tcb;
390 Adapter->Send.LastTcb = Tcb;
417 &Adapter->TbdOriginal,
418 &Adapter->TbdPhysOriginal);
419 if (!Adapter->TbdOriginal)
425 Adapter->Send.HeadTbd = Tbd;
426 Adapter->Send.CurrentTbd = Tbd;
461 &Adapter->RbdOriginal,
462 &Adapter->RbdPhysOriginal);
463 if (!Adapter->RbdOriginal)
483 (
PVOID*)&Adapter->ReceiveBuffer,
484 &Adapter->ReceiveBufferPhys);
485 if (!Adapter->ReceiveBuffer)
563 Adapter->CurrentRx = 0;
569 NvRbd.
x64 = &Adapter->Receive.NvRbd.x64[
i];
583 NvRbd.
x32 = &Adapter->Receive.NvRbd.x32[
i];
615 if (Adapter->Interrupt.InterruptObject)
618 Adapter->Interrupt.InterruptObject =
NULL;
629 if (Adapter->TbdOriginal)
634 Adapter->TbdOriginal,
635 Adapter->TbdPhysOriginal);
636 Adapter->TbdOriginal =
NULL;
638 if (Adapter->RbdOriginal)
643 Adapter->RbdOriginal,
644 Adapter->RbdPhysOriginal);
645 Adapter->RbdOriginal =
NULL;
647 if (Adapter->SendBuffer)
666 Adapter->SendBuffer =
NULL;
669 if (Adapter->ReceiveBuffer)
674 Adapter->ReceiveBuffer,
675 Adapter->ReceiveBufferPhys);
676 Adapter->ReceiveBuffer =
NULL;
684 Adapter->IoBase =
NULL;
687 if (Adapter->Lock.SpinLock)
689 if (Adapter->Send.Lock.SpinLock)
691 if (Adapter->Receive.Lock.SpinLock)
710 PVOID UnalignedAdapter;
854 #if defined(SARCH_XBOX)
struct _NVNET_DESCRIPTOR_32 NVNET_DESCRIPTOR_32
static VOID QueryInteger(_In_ NDIS_HANDLE ConfigurationHandle, _In_ PCWSTR EntryName, _Out_ PULONG EntryContext, _In_ ULONG DefaultValue, _In_ ULONG Minimum, _In_ ULONG Maximum)
#define ETH_IS_LOCALLY_ADMINISTERED(Address)
#define NV_SEND_LARGE_SEND
#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS
#define ETH_IS_BROADCAST(Address)
#define NdisInterruptLevelSensitive
VOID NvNetInitTransmitMemory(_In_ PNVNET_ADAPTER Adapter)
struct _NVNET_ADAPTER NVNET_ADAPTER
#define NVREG_IRQSTAT_MASK
NDIS_STATUS NvNetRecognizeHardware(_Inout_ PNVNET_ADAPTER Adapter)
static NDIS_STATUS AllocateReceiveBuffers(_In_ PNVNET_ADAPTER Adapter)
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID EXPORT NdisAllocateSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
VOID EXPORT NdisMAllocateSharedMemory(IN NDIS_HANDLE MiniportAdapterHandle, IN ULONG Length, IN BOOLEAN Cached, OUT PVOID *VirtualAddress, OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress)
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS OpenErrorStatus
VOID EXPORT NdisMQueryAdapterResources(OUT PNDIS_STATUS Status, IN NDIS_HANDLE WrapperConfigurationContext, OUT PNDIS_RESOURCE_LIST ResourceList, IN OUT PUINT BufferSize)
NDIS_STATUS NvNetInitNIC(_In_ PNVNET_ADAPTER Adapter, _In_ BOOLEAN InitPhy)
NDIS_STATUS EXPORT NdisAllocateMemoryWithTag(OUT PVOID *VirtualAddress, IN UINT Length, IN ULONG Tag)
VOID NvNetFreeAdapter(_In_ PNVNET_ADAPTER Adapter)
#define NDIS_ERROR_CODE_RESOURCE_CONFLICT
#define NDIS_ERROR_CODE_HARDWARE_FAILURE
VOID EXPORT NdisOpenConfiguration(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE ConfigurationHandle, IN NDIS_HANDLE WrapperConfigurationContext)
#define NVREG_MIISTAT_MASK_ALL
#define NV_FORCE_SPEED_AND_DUPLEX
struct _NVNET_DESCRIPTOR_64 NVNET_DESCRIPTOR_64
_In_ NDIS_HANDLE MiniportAdapterHandle
#define NDIS_ERROR_CODE_NETWORK_ADDRESS
VOID EXPORT NdisMUnmapIoSpace(IN NDIS_HANDLE MiniportAdapterHandle, IN PVOID VirtualAddress, IN UINT Length)
#define NvNetLogError(Adapter, ErrorCode)
IN PVOID IN PVOID IN USHORT IN USHORT Size
NDIS_STATUS EXPORT NdisMInitializeScatterGatherDma(IN NDIS_HANDLE MiniportAdapterHandle, IN BOOLEAN Dma64BitAddresses, IN ULONG MaximumPhysicalMapping)
static NDIS_STATUS AllocateTransmitBlocks(_In_ PNVNET_ADAPTER Adapter)
NDIS_HANDLE WrapperConfigurationHandle
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT SelectedMediumIndex
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT MediumArraySize
#define NVNET_TRANSMIT_BLOCKS
#define NDIS_STATUS_UNSUPPORTED_MEDIA
NVNET_TRANSMIT_PACKET NvNetTransmitPacket64
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _In_ NDIS_HANDLE WrapperConfigurationContext
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
PNVNET_TRANSMIT_PACKET TransmitPacket
VOID EXPORT NdisMFreeSharedMemory(IN NDIS_HANDLE MiniportAdapterHandle, IN ULONG Length, IN BOOLEAN Cached, IN PVOID VirtualAddress, IN NDIS_PHYSICAL_ADDRESS PhysicalAddress)
#define NDIS_STATUS_NOT_RECOGNIZED
#define NDIS_ERROR_CODE_ADAPTER_NOT_FOUND
VOID EXPORT NdisReadConfiguration(OUT PNDIS_STATUS Status, OUT PNDIS_CONFIGURATION_PARAMETER *ParameterValue, IN NDIS_HANDLE ConfigurationHandle, IN PNDIS_STRING Keyword, IN NDIS_PARAMETER_TYPE ParameterType)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define NdisGetPhysicalAddressHigh(PhysicalAddress)
#define NVNET_MAXIMUM_VLAN_ID
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptors64
static NDIS_STATUS NvNetInitializeAdapterResources(_Inout_ PNVNET_ADAPTER Adapter)
#define ETH_COPY_NETWORK_ADDRESS(_D, _S)
UCHAR PermanentMacAddress[ETH_LENGTH_OF_ADDRESS]
NDIS_PHYSICAL_ADDRESS PhysicalAddress
#define NV_USE_SOFT_MAC_ADDRESS
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
VOID EXPORT NdisFreeSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
FORCEINLINE VOID NV_WRITE(_In_ PNVNET_ADAPTER Adapter, _In_ NVNET_REGISTER Register, _In_ ULONG Value)
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
ULONG EXPORT NdisGetSharedDataAlignment(VOID)
VOID EXPORT NdisCloseConfiguration(IN NDIS_HANDLE ConfigurationHandle)
NDIS_STATUS EXPORT NdisMRegisterInterrupt(OUT PNDIS_MINIPORT_INTERRUPT Interrupt, IN NDIS_HANDLE MiniportAdapterHandle, IN UINT InterruptVector, IN UINT InterruptLevel, IN BOOLEAN RequestIsr, IN BOOLEAN SharedInterrupt, IN NDIS_INTERRUPT_MODE InterruptMode)
#define NVNET_TRANSMIT_BUFFERS
static NDIS_STATUS NvNetReadConfiguration(_Inout_ PNVNET_ADAPTER Adapter)
#define NVNET_TRANSMIT_DESCRIPTORS
#define NV_USER_SPEED_100
#define NDIS_ATTRIBUTE_BUS_MASTER
#define NdisInterruptLatched
VOID NvNetStartAdapter(_In_ PNVNET_ADAPTER Adapter)
static NDIS_STATUS AllocateReceiveDescriptors(_In_ PNVNET_ADAPTER Adapter)
_Must_inspect_result_ _Out_ PNDIS_STATUS _Outptr_result_bytebuffer_to_ NetworkAddressLength PVOID * NetworkAddress
NVNET_TRANSMIT_PACKET NvNetTransmitPacket32
#define NDIS_STATUS_ADAPTER_NOT_FOUND
NDIS_STATUS NvNetGetPermanentMacAddress(_Inout_ PNVNET_ADAPTER Adapter, _Out_writes_bytes_all_(ETH_LENGTH_OF_ADDRESS) PUCHAR MacAddress)
#define NDIS_STATUS_SUCCESS
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE ConfigurationHandle
VOID EXPORT NdisReadNetworkAddress(OUT PNDIS_STATUS Status, OUT PVOID *NetworkAddress, OUT PUINT NetworkAddressLength, IN NDIS_HANDLE ConfigurationHandle)
VOID EXPORT NdisInitUnicodeString(IN OUT PNDIS_STRING DestinationString, IN PCWSTR SourceString)
static NDIS_STATUS AllocateTransmitDescriptors(_In_ PNVNET_ADAPTER Adapter)
#define NVNET_MAXIMUM_FRAME_SIZE_JUMBO
#define ALIGN_UP_POINTER_BY(ptr, align)
enum _NDIS_MEDIUM * PNDIS_MEDIUM
UCHAR CurrentMacAddress[ETH_LENGTH_OF_ADDRESS]
static const WCHAR Cleanup[]
PNVNET_PROCESS_TRANSMIT ProcessTransmit
#define NDIS_ERROR_CODE_OUT_OF_RESOURCES
#define NVNET_MAXIMUM_FRAME_SIZE
NDIS_HANDLE AdapterHandle
_In_ SIZE_T DescriptorSize
#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 ETH_IS_MULTICAST(Address)
#define NDIS_ERROR_CODE_INTERRUPT_CONNECT
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptorsLegacy
#define NVNET_RECEIVE_BUFFER_SIZE
#define ETH_LENGTH_OF_ADDRESS
#define CmResourceTypeInterrupt
#define NDIS_DbgPrint(_t_, _x_)
#define NdisZeroMemory(Destination, Length)
#define NVNET_RECEIVE_DESCRIPTORS
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptors32
#define NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION
#define NDIS_STATUS_RESOURCES
#define DEV_HAS_LARGEDESC
NDIS_STATUS EXPORT NdisMMapIoSpace(OUT PVOID *VirtualAddress, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_PHYSICAL_ADDRESS PhysicalAddress, IN UINT Length)
static NDIS_STATUS AllocateAdapterMemory(_In_ PNVNET_ADAPTER Adapter)
#define ALIGN_UP_BY(size, align)
NDIS_MINIPORT_INTERRUPT Interrupt
static VOID NvNetInitReceiveMemory(_In_ PNVNET_ADAPTER Adapter)
#define NdisGetPhysicalAddressLow(PhysicalAddress)
#define CmResourceTypeMemory
NDIS_STATUS NTAPI MiniportInitialize(_Out_ PNDIS_STATUS OpenErrorStatus, _Out_ PUINT SelectedMediumIndex, _In_ PNDIS_MEDIUM MediumArray, _In_ UINT MediumArraySize, _In_ NDIS_HANDLE MiniportAdapterHandle, _In_ NDIS_HANDLE WrapperConfigurationContext)
VOID EXPORT NdisMDeregisterInterrupt(IN PNDIS_MINIPORT_INTERRUPT Interrupt)
union _NDIS_CONFIGURATION_PARAMETER::@2055 ParameterData
static NDIS_STATUS AllocateTransmitBuffers(_In_ PNVNET_ADAPTER Adapter)
#define NDIS_STATUS_FAILURE
VOID EXPORT NdisFreeMemory(IN PVOID VirtualAddress, IN UINT Length, IN UINT MemoryFlags)
VOID EXPORT NdisMSetAttributesEx(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE MiniportAdapterContext, IN UINT CheckForHangTimeInSeconds OPTIONAL, IN ULONG AttributeFlags, IN NDIS_INTERFACE_TYPE AdapterType)
#define NvNetDisableInterrupts(Adapter)
#define NV_FORCE_FULL_DUPLEX