25#define DC_RECEIVE_BUFFER_SIZE (DC_RECEIVE_BLOCK_SIZE - 4)
28#define DC_MEM_BLOCK_SIZE_RCB \
29 (DC_RECEIVE_BLOCK_SIZE + SYSTEM_CACHE_ALIGNMENT_SIZE - 1)
31#define DC_MEM_BLOCK_SIZE_RBD \
32 (sizeof(DC_RBD) * DC_RECEIVE_BUFFERS_DEFAULT + SYSTEM_CACHE_ALIGNMENT_SIZE - 1)
34#define DC_MEM_BLOCK_SIZE_TBD_AUX \
35 (sizeof(DC_TBD) * DC_TRANSMIT_DESCRIPTORS + SYSTEM_CACHE_ALIGNMENT_SIZE - 1 + \
36 DC_SETUP_FRAME_SIZE + SYSTEM_CACHE_ALIGNMENT_SIZE - 1 + \
37 DC_LOOPBACK_FRAME_SIZE * DC_LOOPBACK_FRAMES + SYSTEM_CACHE_ALIGNMENT_SIZE - 1)
39#define DC_MEM_BLOCK_SIZE_TX_BUFFER \
40 (DC_TRANSMIT_BLOCK_SIZE + SYSTEM_CACHE_ALIGNMENT_SIZE - 1)
63 &ConfigurationParameter,
69 TRACE(
"'%S' request failed, default value %u\n", EntryName, DefaultValue);
82 WARN(
"'%S' value out of range\n", EntryName);
106 Adapter->WrapperConfigurationHandle);
116 Adapter->DefaultMedia = GenericUlong;
129 ERR(
"Invalid software MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n",
139 INFO(
"Using software MAC address\n");
160 if (Rcb->VirtualAddressOriginal)
165 Rcb->VirtualAddressOriginal,
166 Rcb->PhysicalAddressOriginal);
254 &Adapter->PacketPool,
261 &Adapter->BufferPool,
272 WARN(
"RCB allocation failed, total buffers %u\n", Adapter->RcbCount);
284 Adapter->RcbFree = Adapter->RcbCount;
287 Adapter->TailRbd = Adapter->HeadRbd + Adapter->RcbCount - 1;
295 WARN(
"Extra RCB allocation failed\n");
303 sizeof(
PVOID) * Adapter->RcbCount,
324 &Adapter->RbdOriginal,
325 &Adapter->RbdPhysOriginal);
326 if (!Adapter->RbdOriginal)
330 ASSERT(Adapter->RbdPhysOriginal.HighPart == 0);
338 Adapter->HeadRbd = Rbd;
362 Adapter->HeadTcb = Tcb;
383 &Adapter->TbdOriginal,
384 &Adapter->TbdPhysOriginal);
385 if (!Adapter->TbdOriginal)
389 ASSERT(Adapter->TbdPhysOriginal.HighPart == 0);
391 BufferVa = (
ULONG_PTR)Adapter->TbdOriginal;
392 BufferPa = Adapter->TbdPhysOriginal.LowPart;
399 Adapter->TbdPhys = (
ULONG)BufferPa;
400 Adapter->HeadTbd = (
PDC_TBD)BufferVa;
411 Adapter->SetupFrame = (
PVOID)BufferVa;
412 Adapter->SetupFramePhys = BufferPa;
422 Adapter->LoopbackFrame[
i] = (
PVOID)BufferVa;
423 Adapter->LoopbackFramePhys[
i] = BufferPa;
461 Adapter->CoalesceBuffer = CoalesceBuffer;
491 if (!Adapter->SendBufferList.Next)
509 Tcb = Adapter->HeadTcb;
511 Adapter->CurrentTcb = Tcb;
512 Adapter->LastTcb = Tcb;
517 Adapter->TcbCompleted = 0;
519 Tbd = Adapter->HeadTbd;
520 Adapter->CurrentTbd = Tbd;
540 Rbd = Adapter->HeadRbd;
541 Adapter->CurrentRbd = Rbd;
544 Rcb = (
PDC_RCB)Adapter->UsedRcbList.Next;
546 for (
Entry = Adapter->UsedRcbList.Next;
569 ASSERT(Rbd == Adapter->TailRbd);
582 Rbd = Adapter->HeadRbd;
583 Adapter->CurrentRbd = Rbd;
585 for (
i = 0;
i < Adapter->RcbCount; ++
i)
595 ASSERT(Rbd == Adapter->TailRbd);
659 Adapter->CurrentMacAddress,
664 Adapter->CurrentMacAddress,
681 UINT i, ResourceListSize = 0;
686 Adapter->WrapperConfigurationHandle,
699 Adapter->WrapperConfigurationHandle,
705 for (
i = 0;
i < AssignedResources->
Count; ++
i)
722 if (!InterruptDescriptor)
732 if (!IoDescriptor || !InterruptDescriptor)
738 Adapter->InterruptVector = InterruptDescriptor->
u.
Interrupt.Vector;
739 Adapter->InterruptLevel = InterruptDescriptor->
u.
Interrupt.Level;
740 Adapter->InterruptFlags = InterruptDescriptor->
Flags;
744 Adapter->IoBaseAddress = IoDescriptor->
u.
Port.Start;
750 Adapter->AdapterHandle,
751 Adapter->IoBaseAddress.LowPart,
757 Adapter->AdapterHandle,
758 Adapter->IoBaseAddress,
766 INFO(
"IO Base %p\n", Adapter->IoBase);
767 INFO(
"IRQ Level %u, Vector %u\n",
768 Adapter->InterruptLevel,
769 Adapter->InterruptVector);
770 INFO(
"IRQ ShareDisposition %u, InterruptFlags %lx\n",
772 InterruptDescriptor->
Flags);
801 sizeof(PropertyValue),
808 Adapter->DeviceNumber = (PropertyValue >> 16) & 0x000000FF;
812 sizeof(PropertyValue),
828 ULONG DefaultMode, NewMode;
838 INFO(
"PCI Cache Line Size %u\n", PciData->CacheLineSize * 4);
839 INFO(
"PCI Command %04lx\n", PciData->Command);
842 switch (PciData->CacheLineSize)
892 Adapter->DeviceId = PciConfig->DeviceID;
893 Adapter->RevisionId = PciConfig->RevisionID;
895 switch ((PciConfig->DeviceID << 16) | PciConfig->VendorID)
923 if ((PciConfig->RevisionID & 0xF0) < 0x20)
951 if ((PciConfig->RevisionID & 0xF0) < 0x20)
965 if ((PciConfig->RevisionID & 0xF0) > 0x30)
1004 INFO(
"Bus Mode %08lx\n", Adapter->BusMode);
1013 Adapter->AdapterHandle,
1014 MediaMonitorRoutine,
1031 if (Adapter->Interrupt.InterruptObject)
1036 if (Adapter->IoBase)
1047 Adapter->IoBaseAddress.LowPart,
1053 if (Adapter->HeadTcb)
1057 if (Adapter->RcbArray)
1061 if (Adapter->SetupFrameSaved)
1066 while (Adapter->AllocRcbList.Next)
1074 if (Adapter->RbdOriginal)
1079 Adapter->RbdOriginal,
1080 Adapter->RbdPhysOriginal);
1082 if (Adapter->TbdOriginal)
1087 Adapter->TbdOriginal,
1088 Adapter->TbdPhysOriginal);
1090 if (Adapter->CoalesceBuffer)
1107 if (Adapter->PacketPool)
1109 if (Adapter->BufferPool)
1112 if (Adapter->SendLock.SpinLock)
1114 if (Adapter->ReceiveLock.SpinLock)
1116 if (Adapter->ModeLock.SpinLock)
1134 PVOID UnalignedAdapter;
1154 ERR(
"No supported media\n");
1159 AdapterSize =
sizeof(*Adapter) +
Alignment;
1164 ERR(
"Failed to allocate adapter context\n");
1271 WARN(
"No PHY devices found\n");
1289 ERR(
"Failed to initialize the NIC\n");
1293 Adapter->
Flags &= ~DC_FIRST_SETUP;
1305 ERR(
"Unable to register interrupt\n");
1316 ERR(
"Initialization failed with status %08lx\n",
Status);
#define ALIGN_UP_BY(size, align)
VOID DcStartAdapter(_In_ PDC21X4_ADAPTER Adapter)
VOID NTAPI DcTransmitTimeoutRecoveryWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
VOID NTAPI DcResetWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
VOID DcWriteGpio(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG Value)
NDIS_STATUS DcSetupAdapter(_In_ PDC21X4_ADAPTER Adapter)
VOID DcPowerSave(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN Enable)
#define DC_RECEIVE_BUFFERS_MIN
VOID MediaSelectMiiPort(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN ResetPhy)
#define DC_HAS_POWER_MANAGEMENT
#define DC_NEED_RX_OVERFLOW_WORKAROUND
#define DC_LOOPBACK_FRAMES
VOID DcDisableHw(_In_ PDC21X4_ADAPTER Adapter)
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21143
VOID NTAPI DcPowerWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
#define DC_ENABLE_PCI_COMMANDS
VOID DcSetupFrameInitialize(_In_ PDC21X4_ADAPTER Adapter)
FORCEINLINE ULONG DC_READ(_In_ PDC21X4_ADAPTER Adapter, _In_ DC_CSR Register)
VOID MediaInitMediaList(_In_ PDC21X4_ADAPTER Adapter)
#define DC_TRANSMIT_DESCRIPTORS
NDIS_TIMER_FUNCTION MediaMonitor21041Dpc
#define DC_MULTICAST_LIST_SIZE
#define DC_RECEIVE_BUFFERS_DEFAULT
#define DC_TRANSMIT_BUFFERS
#define DC_RECEIVE_BUFFERS_EXTRA
NDIS_TIMER_FUNCTION MediaMonitor21143Dpc
VOID MediaInitDefaultMedia(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG MediaNumber)
#define DC_SIA_ANALOG_CONTROL
#define DC_TRANSMIT_BLOCKS
#define DC_TRANSMIT_BLOCK_SIZE
NDIS_TIMER_FUNCTION MediaMonitor21140Dpc
#define DC_RECEIVE_BLOCK_SIZE
NDIS_TIMER_FUNCTION MediaMonitor21040Dpc
#define DC_PERFECT_FILTERING_ONLY
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21041
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21040
#define DC_HAS_POWER_SAVING
NDIS_STATUS DcReadEeprom(_In_ PDC21X4_ADAPTER Adapter)
VOID DcFreeEeprom(_In_ PDC21X4_ADAPTER Adapter)
#define DC_LOOPBACK_FRAME_SIZE
BOOLEAN DcFindMiiPhy(_In_ PDC21X4_ADAPTER Adapter)
#define DC_WRITE(Adapter, Register, Value)
#define DC_ETHERNET_HEADER_SIZE
#define DC_IRQ_LINK_CHANGED
#define DC_RBD_CONTROL_CHAINED
#define DC_DEV_INTEL_21143
#define DC_OPMODE_TX_ENABLE
#define DC_BUS_MODE_BURST_LENGTH_NO_LIMIT
#define DC_DEV_DECCHIP_21140
#define DC_DESCRIPTOR_ALIGNMENT
#define DC_BUS_MODE_BURST_LENGTH_16
#define DC_BUS_MODE_CACHE_ALIGNMENT_16
#define DC_BUS_MODE_BURST_LENGTH_8
#define DC_RECEIVE_BUFFER_SIZE_MULTIPLE
#define DC_BUS_MODE_READ_LINE
#define DC_HPNA_ANALOG_CTRL
#define DC_BUS_MODE_SOFT_RESET
#define DC_DEV_DECCHIP_21040
#define DC_DEV_INTEL_21145
#define DC_GENERIC_IRQ_MASK
#define DC_OPMODE_RX_ENABLE
#define DC_BUS_MODE_BURST_LENGTH_32
#define DC_RECEIVE_BUFFER_ALIGNMENT
#define DC_DEV_DECCHIP_21041
#define DC_BUS_MODE_WRITE_INVALIDATE
#define DC_TBD_CONTROL_END_OF_RING
#define DC_BUS_MODE_CACHE_ALIGNMENT_8
#define DC_SETUP_FRAME_SIZE
#define DC_BUS_MODE_CACHE_ALIGNMENT_32
#define DC_OPMODE_PORT_ALWAYS
#define DC_SETUP_FRAME_ALIGNMENT
#define DC_RBD_STATUS_OWNED
#define DC_SETUP_FRAME_ADDRESSES
#define NT_SUCCESS(StatCode)
static const WCHAR Cleanup[]
#define DC_MEM_BLOCK_SIZE_TX_BUFFER
static VOID DcInitTestPacket(_In_ PDC21X4_ADAPTER Adapter)
static PDC_RCB DcAllocateRcb(_In_ PDC21X4_ADAPTER Adapter)
#define DC_MEM_BLOCK_SIZE_RCB
static NDIS_STATUS DcRecognizeHardware(_In_ PDC21X4_ADAPTER Adapter)
static VOID DcFreeRcb(_In_ PDC21X4_ADAPTER Adapter, _In_ __drv_freesMem(Mem) PDC_RCB Rcb)
#define DC_RECEIVE_BUFFER_SIZE
static VOID DcConfigQueryInteger(_In_ NDIS_HANDLE ConfigurationHandle, _In_ PCWSTR EntryName, _Out_ PULONG EntryContext, _In_ ULONG DefaultValue, _In_ ULONG Minimum, _In_ ULONG Maximum)
static NDIS_STATUS DcReadConfiguration(_In_ PDC21X4_ADAPTER Adapter)
VOID DcInitRxRing(_In_ PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcInitializeAdapterResources(_In_ PDC21X4_ADAPTER Adapter)
#define DC_MEM_BLOCK_SIZE_RBD
static NDIS_STATUS DcAllocateReceiveDescriptors(_In_ PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcAllocateReceiveBuffers(_In_ PDC21X4_ADAPTER Adapter)
static ULONG DcGetBusModeParameters(_In_ PDC21X4_ADAPTER Adapter, _In_ PPCI_COMMON_CONFIG PciData)
#define DC_MEM_BLOCK_SIZE_TBD_AUX
VOID DcFreeAdapter(_In_ __drv_freesMem(Mem) PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcInitializeAdapterLocation(_In_ PDC21X4_ADAPTER Adapter)
static VOID DcCreateRxRing(_In_ PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcAllocateTransmitBuffers(_In_ PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcAllocateTransmitBlocks(_In_ PDC21X4_ADAPTER Adapter)
VOID DcInitTxRing(_In_ PDC21X4_ADAPTER Adapter)
static NDIS_STATUS DcAllocateMemory(_In_ PDC21X4_ADAPTER Adapter)
NDIS_STATUS NTAPI DcInitialize(_Out_ PNDIS_STATUS OpenErrorStatus, _Out_ PUINT SelectedMediumIndex, _In_ PNDIS_MEDIUM MediumArray, _In_ UINT MediumArraySize, _In_ NDIS_HANDLE MiniportAdapterHandle, _In_ NDIS_HANDLE WrapperConfigurationContext)
static NDIS_STATUS DcAllocateTransmitDescriptorsAndBuffers(_In_ PDC21X4_ADAPTER Adapter)
#define ETH_IS_LOCALLY_ADMINISTERED(Address)
#define ETH_IS_EMPTY(Address)
VOID EXPORT NdisAllocateBuffer(OUT PNDIS_STATUS Status, OUT PNDIS_BUFFER *Buffer, IN NDIS_HANDLE PoolHandle, IN PVOID VirtualAddress, IN UINT Length)
VOID EXPORT NdisFreePacket(IN PNDIS_PACKET Packet)
VOID EXPORT NdisAllocateBufferPool(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE PoolHandle, IN UINT NumberOfDescriptors)
VOID EXPORT NdisFreeBufferPool(IN NDIS_HANDLE PoolHandle)
VOID EXPORT NdisAllocatePacket(OUT PNDIS_STATUS Status, OUT PNDIS_PACKET *Packet, IN NDIS_HANDLE PoolHandle)
VOID EXPORT NdisFreePacketPool(IN NDIS_HANDLE PoolHandle)
VOID EXPORT NdisAllocatePacketPool(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE PoolHandle, IN UINT NumberOfDescriptors, IN UINT ProtocolReservedLength)
VOID EXPORT NdisCloseConfiguration(IN NDIS_HANDLE ConfigurationHandle)
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)
VOID EXPORT NdisReadNetworkAddress(OUT PNDIS_STATUS Status, OUT PVOID *NetworkAddress, OUT PUINT NetworkAddressLength, IN NDIS_HANDLE ConfigurationHandle)
VOID EXPORT NdisOpenConfiguration(OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE ConfigurationHandle, IN NDIS_HANDLE WrapperConfigurationContext)
ULONG EXPORT NdisReadPciSlotInformation(IN NDIS_HANDLE NdisAdapterHandle, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length)
VOID EXPORT NdisMQueryAdapterResources(OUT PNDIS_STATUS Status, IN NDIS_HANDLE WrapperConfigurationContext, OUT PNDIS_RESOURCE_LIST ResourceList, IN OUT PUINT BufferSize)
NDIS_STATUS EXPORT NdisMMapIoSpace(OUT PVOID *VirtualAddress, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_PHYSICAL_ADDRESS PhysicalAddress, IN UINT Length)
VOID EXPORT NdisMDeregisterInterrupt(IN PNDIS_MINIPORT_INTERRUPT Interrupt)
VOID EXPORT NdisMDeregisterIoPortRange(IN NDIS_HANDLE MiniportAdapterHandle, IN UINT InitialPort, IN UINT NumberOfPorts, IN PVOID PortOffset)
NDIS_STATUS EXPORT NdisMRegisterIoPortRange(OUT PVOID *PortOffset, IN NDIS_HANDLE MiniportAdapterHandle, IN UINT InitialPort, IN UINT NumberOfPorts)
VOID EXPORT NdisMUnmapIoSpace(IN NDIS_HANDLE MiniportAdapterHandle, IN PVOID VirtualAddress, IN UINT Length)
NDIS_STATUS EXPORT NdisMInitializeScatterGatherDma(IN NDIS_HANDLE MiniportAdapterHandle, IN BOOLEAN Dma64BitAddresses, IN ULONG MaximumPhysicalMapping)
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)
VOID EXPORT NdisFreeMemory(IN PVOID VirtualAddress, IN UINT Length, IN UINT MemoryFlags)
NDIS_STATUS EXPORT NdisAllocateMemoryWithTag(OUT PVOID *VirtualAddress, IN UINT Length, IN ULONG Tag)
VOID EXPORT NdisMAllocateSharedMemory(IN NDIS_HANDLE MiniportAdapterHandle, IN ULONG Length, IN BOOLEAN Cached, OUT PVOID *VirtualAddress, OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress)
VOID EXPORT NdisMFreeSharedMemory(IN NDIS_HANDLE MiniportAdapterHandle, IN ULONG Length, IN BOOLEAN Cached, IN PVOID VirtualAddress, IN NDIS_PHYSICAL_ADDRESS PhysicalAddress)
ULONG EXPORT NdisGetSharedDataAlignment(VOID)
VOID EXPORT NdisInitUnicodeString(IN OUT PNDIS_STRING DestinationString, IN PCWSTR SourceString)
VOID EXPORT NdisMInitializeTimer(IN OUT PNDIS_MINIPORT_TIMER Timer, IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_TIMER_FUNCTION TimerFunction, IN PVOID FunctionContext)
#define __drv_freesMem(kind)
#define ETH_LENGTH_OF_ADDRESS
#define InitializeListHead(ListHead)
union Alignment_ Alignment
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 CmResourceTypeMemory
#define CmResourceTypePort
#define CmResourceTypeInterrupt
_Must_inspect_result_ _Out_ PNDIS_STATUS _Outptr_result_bytebuffer_to_ NetworkAddressLength PVOID * NetworkAddress
#define NDIS_STATUS_NOT_RECOGNIZED
#define NdisInterruptLatched
#define NdisZeroMemory(Destination, Length)
#define NdisInitializeWorkItem(_WI_, _R_, _C_)
NDIS_TIMER_FUNCTION * PNDIS_TIMER_FUNCTION
#define NDIS_SET_PACKET_HEADER_SIZE(_Packet, _HdrSize)
#define NDIS_ATTRIBUTE_BUS_MASTER
#define NdisInterruptLevelSensitive
#define NdisAllocateSpinLock(_SpinLock)
#define NDIS_STATUS_FAILURE
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT SelectedMediumIndex
#define NDIS_STATUS_SUCCESS
#define NDIS_ATTRIBUTE_DESERIALIZE
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT MediumArraySize
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _In_ NDIS_HANDLE WrapperConfigurationContext
#define PROTOCOL_RESERVED_SIZE_IN_PACKET
_In_ NDIS_HANDLE MiniportAdapterHandle
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE ConfigurationHandle
#define NDIS_STATUS_UNSUPPORTED_MEDIA
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_CONFIGURATION_PARAMETER _In_ NDIS_HANDLE _In_ PNDIS_STRING Keyword
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS OpenErrorStatus
#define NdisFreeSpinLock(_SpinLock)
#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS
#define NdisChainBufferAtFront(Packet, Buffer)
#define NdisMoveMemory(Destination, Source, Length)
#define NDIS_STATUS_RESOURCES
#define CM_RESOURCE_PORT_IO
#define CM_RESOURCE_INTERRUPT_LATCHED
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
VOID EXPORT NdisMSetAttributesEx(IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE MiniportAdapterContext, IN UINT CheckForHangTimeInSeconds OPTIONAL, IN ULONG AttributeFlags, IN NDIS_INTERFACE_TYPE AdapterType)
VOID EXPORT NdisMGetDeviceProperty(IN NDIS_HANDLE MiniportAdapterHandle, IN OUT PDEVICE_OBJECT *PhysicalDeviceObject OPTIONAL, IN OUT PDEVICE_OBJECT *FunctionalDeviceObject OPTIONAL, IN OUT PDEVICE_OBJECT *NextDeviceObject OPTIONAL, IN OUT PCM_RESOURCE_LIST *AllocatedResources OPTIONAL, IN OUT PCM_RESOURCE_LIST *AllocatedResourcesTranslated OPTIONAL)
VOID EXPORT NdisMSleep(IN ULONG MicrosecondsToSleep)
#define SYSTEM_CACHE_ALIGNMENT_SIZE
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
enum _NDIS_MEDIUM * PNDIS_MEDIUM
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
#define DC_RCB_FROM_PACKET(Packet)
FORCEINLINE PDC_RCB * DC_GET_RCB_SLOT(_In_ PDC21X4_ADAPTER Adapter, _In_ PDC_RBD Rbd)
base of all file and directory entries
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391::@393 Port
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@391::@394 Interrupt
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
UCHAR CurrentMacAddress[ETH_LENGTH_OF_ADDRESS]
NDIS_HANDLE WrapperConfigurationHandle
UCHAR PermanentMacAddress[ETH_LENGTH_OF_ADDRESS]
USHORT ResetStream[SROM_MAX_STREAM_REGS]
NDIS_WORK_ITEM ResetWorkItem
ULONG LinkStateChangeMask
NDIS_HANDLE AdapterHandle
NDIS_MINIPORT_INTERRUPT Interrupt
NDIS_WORK_ITEM PowerWorkItem
NDIS_WORK_ITEM TxRecoveryWorkItem
SINGLE_LIST_ENTRY ListEntry
PVOID VirtualAddressOriginal
SINGLE_LIST_ENTRY ListEntry
NDIS_PHYSICAL_ADDRESS PhysicalAddressOriginal
SINGLE_LIST_ENTRY AllocListEntry
NDIS_PHYSICAL_ADDRESS PhysicalAddress
union _NDIS_CONFIGURATION_PARAMETER::@2104 ParameterData
struct _SINGLE_LIST_ENTRY * Next
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
#define ALIGN_UP_POINTER_BY(ptr, align)
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
#define PCI_ENABLE_WRITE_AND_INVALIDATE
struct _PCI_COMMON_CONFIG * PPCI_COMMON_CONFIG
@ DevicePropertyBusNumber
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
#define ETH_IS_BROADCAST(Address)
#define ETH_IS_MULTICAST(Address)