NDIS Binary-Compatibility on Windows 98 and Windows 2000 ?

Hi, people
I write a miniport driver based on Win2K DDK,
and it works well under Win2k. but It couldn’t be
loaded under Win98se though I define “BINARY_COMPATIBLE”
in my driver.
Is there anyone give me some suggestion ?
Thanks.
Yee

Hi,

Win98SE supports only a subset of the NDIS functions. If you use any function that is not supported then your driver does not get loaded.
Below you will find a list of the NDIS functions that are supported on Win98SE.


Udo Eberhardt
Thesycon GmbH, Germany
xxxxx@thesycon.de
www.thesycon.de

Win98SE NDIS functions

NdisAcquireSpinLock
NdisAllocateBuffer
NdisAllocateBufferPool
NdisAllocateMemory
NdisAllocatePacketPool
NdisAllocatePacket
NdisAllocateSpinLock
NdisCancelTimer
NdisCloseAdapter
NdisCloseConfiguration
NdisCloseFile
NdisCompleteBindAdapter
NdisCompleteCloseAdapter
NdisCompleteDmaTransfer
NdisCompleteOpenAdapter
NdisCompleteQueryStatistics
NdisCompleteUnbindAdapter
NdisCopyBuffer
NdisCopyFromPacketToPacket
NdisDeregisterProtocol
NdisEqualString
NdisFreeBuffer
NdisFreeBufferPool
NdisFreeMemory
NdisFreePacket
NdisFreePacketPool
NdisFreeSpinLock
NdisInitializeWrapper
NdisMapFile
NdisOpenAdapter
NdisOpenConfiguration
NdisOpenFile
NdisOpenProtocolConfiguration
NdisQueryBuffer
NdisReadConfiguration
NdisReadEisaSlotInformation
NdisReadMcaPosInformation
NdisReadNetworkAddress
NdisRegisterProtocol
NdisReleaseSpinLock
NdisRequest
NdisReset
NdisSend
NdisSetTimer
NdisSetupDmaTransfer
NdisTerminateWrapper
NdisTransferData
NdisUnchainBufferAtBack
NdisUnchainBufferAtFront
NdisUnmapFile
NdisWriteErrorLogEntry
NdisMAllocateMapRegisters
NdisMAllocateSharedMemory
NdisMCancelTimer
NdisMDeregisterDmaChannel
NdisMDeregisterInterrupt
NdisMDeregisterIoPortRange
NdisMFreeMapRegisters
NdisMFreeSharedMemory
NdisImmediateReadPortUchar
NdisImmediateReadPortUshort
NdisImmediateReadPortUlong
NdisImmediateWritePortUchar
NdisImmediateWritePortUshort
NdisImmediateWritePortUlong
NdisMIndicateStatus
NdisMIndicateStatusComplete
NdisMInitializeTimer
NdisMMapIoSpace
NdisMQueryInformationComplete
NdisMReadDmaCounter
NdisMRegisterDmaChannel
NdisMRegisterMiniport
NdisMRegisterInterrupt
NdisMRegisterIoPortRange
NdisMResetComplete
NdisMSendComplete
NdisMSendResourcesAvailable
NdisMSetAttributes
NdisMSetInformationComplete
NdisMSynchronizeWithInterrupt
NdisMTransferDataComplete
NdisMUnmapIoSpace
NdisMWanIndicateReceive
NdisMWanIndicateReceiveComplete
NdisMWanSendComplete
FddiCreateFilter
FddiDeleteFilter
FddiNoteFilterOpenAdapter
FddiDeleteFilterOpenAdapter
FddiChangeFilterLongAddresses
FddiChangeFilterShortAddresses
FddiShouldAddressLoopBack
FddiFilterAdjust
FddiNumberOfOpenFilterLongAddresses
FddiNumberOfOpenFilterShortAddresses
FddiQueryGlobalFilterLongAddresses
FddiQueryGlobalFilterShortAddresses
FddiQueryOpenFilterLongAddresses
FddiQueryOpenFilterShortAddresses
FddiFilterIndicateReceive
FddiFilterDprIndicateReceive
FddiFilterIndicateReceiveComplete
FddiFilterDprIndicateReceiveComplete
ArcFilterDprIndicateReceiveComplete
ArcFilterDprIndicateReceive
EthCreateFilter
EthDeleteFilter
EthNoteFilterOpenAdapter
EthDeleteFilterOpenAdapter
EthChangeFilterAddresses
EthShouldAddressLoopBack
EthFilterAdjust
EthNumberOfOpenFilterAddresses
EthQueryGlobalFilterAddresses
EthQueryOpenFilterAddresses
EthFilterIndicateReceive
EthFilterDprIndicateReceive
EthFilterIndicateReceiveComplete
EthFilterDprIndicateReceiveComplete
TrCreateFilter
TrDeleteFilter
TrNoteFilterOpenAdapter
TrDeleteFilterOpenAdapter
TrChangeFunctionalAddress
TrChangeGroupAddress
TrShouldAddressLoopBack
TrFilterAdjust
TrFilterIndicateReceive
TrFilterDprIndicateReceive
TrFilterIndicateReceiveComplete
TrFilterDprIndicateReceiveComplete
NDIS_BUFFER_TO_SPAN_PAGES
NdisSystemProcessorCount
NdisMStartBufferPhysicalMapping
NdisMCompleteBufferPhysicalMapping
NdisWriteConfiguration
NdisMRegisterAdapterShutdownHandler
NdisMDeregisterAdapterShutdownHandler
NdisImmediateReadPciSlotInformation
NdisImmediateWritePciSlotInformation
NdisReadPciSlotInformation
NdisWritePciSlotInformation
NdisMPciAssignResources
NdisOverrideBusNumber
NdisUpdateSharedMemory
NdisMQueryAdapterResources
NdisQueryBufferOffset
NdisInitializeEvent
NdisSetEvent
NdisResetEvent
NdisWaitEvent
NdisMSetAttributesEx
NdisMSetPeriodicTimer
NdisMSleep
NdisAdjustBufferLength
NdisIMSwitchToMiniport
NdisIMRevertBack
NdisIMQueueMiniportCallback
NdisGetCurrentProcessorCpuUsage
NdisGetCurrentSystemTime
NdisDprAcquireSpinLock
NdisDprReleaseSpinLock
NdisQueryMapRegisterCount
NdisMCreateLog
NdisMCloseLog
NdisMWriteLogData
NdisMFlushLog
NdisInitAnsiString
NdisInitUnicodeString
NdisAnsiStringToUnicodeString
NdisUnicodeStringToAnsiString
NdisIMRegisterLayeredMiniport
NdisIMInitializeDeviceInstance
NdisReturnPackets
NdisMAllocateSharedMemoryAsync
NdisCmRegisterAddressFamily
NdisClOpenAddressFamily
NdisCmOpenAddressFamilyComplete
NdisClCloseAddressFamily
NdisCmCloseAddressFamilyComplete
NdisClRegisterSap
NdisCmRegisterSapComplete
NdisClDeregisterSap
NdisCmDeregisterSapComplete
NdisClMakeCall
NdisCmMakeCallComplete
NdisCmDispatchIncomingCall
NdisClIncomingCallComplete
NdisCmDispatchCallConnected
NdisClModifyCallQoS
NdisCmModifyCallQoSComplete
NdisCmDispatchIncomingCallQoSChange
NdisClCloseCall
NdisCmCloseCallComplete
NdisCmDispatchIncomingCloseCall
NdisClAddParty
NdisCmAddPartyComplete
NdisClDropParty
NdisCmDropPartyComplete
NdisCmDispatchIncomingDropParty
NdisCoCreateVc
NdisCoDeleteVc
NdisCmActivateVc
NdisMCoActivateVcComplete
NdisCmDeactivateVc
NdisMCoDeactivateVcComplete
NdisCoRequest
NdisCoRequestComplete
NdisMCoIndicateReceivePacket
NdisMCoReceiveComplete
NdisCoSendPackets
NdisMCoSendComplete
NdisMCoIndicateStatus
NdisMCmRegisterAddressFamily
NdisMCoRequestComplete
NdisGetBufferPhysicalArraySize
NdisInitializeTimer
NdisOpenConfigurationKeyByName
NdisOpenConfigurationKeyByIndex
NdisAllocateMemoryWithTag
NdisConvertStringToAtmAddress
NdisOpenGlobalConfiguration
NdisInterlockedIncrement
NdisInterlockedDecrement
NdisInterlockedAddUlong
NdisInterlockedInsertHeadList
NdisInterlockedInsertTailList
NdisInterlockedRemoveHeadList
NdisInterlockedPopEntryList
NdisInterlockedPushEntryList
NdisWriteEventLogEntry
NdisGetFirstBufferFromPacket
NdisQueryReceiveInformation
NdisIMDeInitializeDeviceInstance
NdisSendPackets
NdisGetSystemUpTime
NdisDprAllocatePacket
NdisDprAllocatePacketNonInterlocked
NdisDprFreePacket
NdisDprFreePacketNonInterlocked
NdisImmediateReadSharedMemory
NdisImmediateWriteSharedMemory
NdisMCmCreateVc
NdisMCmActivateVc
NdisMCmDeactivateVc
NdisScheduleWorkItem
NdisIMInitializeDeviceInstanceEx
NdisIMGetDeviceContext
NdisBufferVirtualAddress
NdisIMGetBindingContext
NdisAllocatePacketPoolEx
NdisReadPcmciaAttributeMemory
NdisWritePcmciaAttributeMemory
NdisPacketPoolUsage
NdisSetPacketPoolProtocolId
NdisIMRegisterDevice
NdisIMDeregisterDevice
NdisIMDeregisterLayeredMiniport
NdisQueryAdapterInstanceName
NdisMGetDeviceProperty
NdisCompletePnPEvent
NdisMInitializeScatterGatherDma
NdisGetReceivedPacket
NdisBufferLength
NdisReEnumerateProtocolBindings
NdisIMAssociateMiniport
NdisMRegisterDevice
NdisMDeregisterDevice
NdisMPromoteMiniport
NdisMSetMiniportSecondary
NdisMRemoveMiniport
NdisInitializeReadWriteLock
NdisAcquireReadWriteLock
NdisReleaseReadWriteLock
NdisSetProtocolFilter
NdisCoAssignInstanceName

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Yee
Sent: Monday, March 18, 2002 5:29 PM
To: NT Developers Interest List
Subject: [ntdev] NDIS Binary-Compatibility on Windows 98 and Windows
2000 ?

Hi, people
I write a miniport driver based on Win2K DDK,
and it works well under Win2k. but It couldn’t be
loaded under Win98se though I define “BINARY_COMPATIBLE”
in my driver.
Is there anyone give me some suggestion ?
Thanks.
Yee


You are currently subscribed to ntdev as: xxxxx@thesycon.de
To unsubscribe send a blank email to %%email.unsub%%

Hi,

Also, you can download a freeware (WdmCheck) from Walter Oney’s website (www.oneysoft.com) to check against your binary.

Best Regards,

Jack

It is not the mountain we conquer but ourselves - Edmund Hillary

Join 18 million Eudora users by signing up for a free Eudora Web-Mail account at http://www.eudoramail.com

For NDIS drivers, do not specify BINARY_COMPATIBLE directly. Instead,
define NDIS_MINIPORT_DRIVER in your “sources” file.

Depending on the NDIS version your driver is built for, also define
one of

NDIS50_MINIPORT
NDIS40_MINIPORT

If none defined, NDIS 3.0 is assumed.

Note: W2K and W98 both support NDIS 5.0.

Stephan

On Mon, 18 Mar 2002 11:28:45 -0500, “Yee” wrote:

>
>Hi, people
> I write a miniport driver based on Win2K DDK,
>and it works well under Win2k. but It couldn’t be
>loaded under Win98se though I define “BINARY_COMPATIBLE”
>in my driver.
> Is there anyone give me some suggestion ?
>Thanks.
>Yee