880{
886 UINT *RegNetworkAddress = 0;
887 UINT RegNetworkAddressLength = 0;
888
890
891
894 break;
895
897 {
899 DPRINT1(
"unsupported media\n");
902 }
903
905
906
909 {
911 DPRINT1(
"Insufficient resources\n");
914 }
915
917
919
920
922
923 do
924 {
925
928 {
929 DPRINT1(
"MiQueryCard failed\n");
931 break;
932 }
933
934
938 {
940 break;
941 }
942
943
947 {
949 break;
950 }
951
952 MapRegistersAllocated =
TRUE;
953
954
958 {
960 break;
961 }
962
963 InterruptRegistered =
TRUE;
964
965
968 {
971 break;
972 }
973
974
976
977
980 {
983 {
985 DPRINT(
"NdisReadNetworkAddress returned successfully, address %x:%x:%x:%x:%x:%x\n",
986 RegNetworkAddress[0], RegNetworkAddress[1], RegNetworkAddress[2], RegNetworkAddress[3],
987 RegNetworkAddress[4], RegNetworkAddress[5]);
988
989 for(
i = 0;
i < 6;
i++)
990 Adapter->InitializationBlockVirt->PADR[
i] = RegNetworkAddress[
i];
991 }
992
994 }
995
996 DPRINT(
"Interrupt registered successfully\n");
997
998
1000
1002
1004 }
1005 while(0);
1006
1008 {
1009 DPRINT(
"Error; freeing stuff\n");
1010
1012
1013 if(MapRegistersAllocated)
1015
1016 if(Adapter->PortOffset)
1018
1019 if(InterruptRegistered)
1021
1023 }
1024
1026 {
1028 Adapter->MiniportAdapterHandle,
1030 Adapter);
1034 Adapter,
1036 }
1037
1038#if DBG
1039 if(!MiTestCard(Adapter))
1041#endif
1042
1046}
VOID EXPORT NdisCloseConfiguration(IN NDIS_HANDLE ConfigurationHandle)
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)
NDIS_STATUS EXPORT NdisMAllocateMapRegisters(IN NDIS_HANDLE MiniportAdapterHandle, IN UINT DmaChannel, IN NDIS_DMA_SIZE DmaSize, IN ULONG BaseMapRegistersNeeded, IN ULONG MaximumBufferSize)
NDIS_STATUS EXPORT NdisMRegisterIoPortRange(OUT PVOID *PortOffset, IN NDIS_HANDLE MiniportAdapterHandle, IN UINT InitialPort, IN UINT NumberOfPorts)
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)
NDIS_STATUS EXPORT NdisAllocateMemoryWithTag(OUT PVOID *VirtualAddress, IN UINT Length, IN ULONG Tag)
VOID EXPORT NdisMSetPeriodicTimer(IN PNDIS_MINIPORT_TIMER Timer, IN UINT MillisecondsPeriod)
VOID EXPORT NdisMInitializeTimer(IN OUT PNDIS_MINIPORT_TIMER Timer, IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_TIMER_FUNCTION TimerFunction, IN PVOID FunctionContext)
#define NDIS_ATTRIBUTE_BUS_MASTER
#define NdisInterruptLevelSensitive
#define NdisAllocateSpinLock(_SpinLock)
_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
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _In_ NDIS_HANDLE WrapperConfigurationContext
_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_STATUS OpenErrorStatus
#define NDIS_STATUS_ADAPTER_NOT_FOUND
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 NdisMRegisterAdapterShutdownHandler(IN NDIS_HANDLE MiniportHandle, IN PVOID ShutdownContext, IN ADAPTER_SHUTDOWN_HANDLER ShutdownHandler)
static VOID MiPrepareInitializationBlock(PADAPTER Adapter)
VOID NTAPI MiniportShutdown(PVOID Context)
static NDIS_STATUS MiAllocateSharedMemory(PADAPTER Adapter)
static VOID NTAPI MiniportMediaDetectionTimer(IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3)
static NDIS_STATUS MiQueryCard(IN PADAPTER Adapter)
static VOID MiInitChip(PADAPTER Adapter)
#define MEDIA_DETECTION_INTERVAL