;#######################################
;# 		ndis.inc		             # 
;#	created by van, 15.10.2003	             #
;#	contact: van_werewolf@mail.ru	             #
;#######################################
DIRECTION_IN equ 0
DIRECTION_OUT equ 1
ASM_STUB_SIZE   equ 12

PNDIS_PACKET typedef DWORD
PNDIS_BUFFER typedef DWORD

adapter_entry struct
	next dd ?
	name db ?
adapter_entry ends

filter_nfo struct
	process_packet 	dd ?
	upper 		dd ?
	lower		dd ?
	params		dd ?
filter_nfo ends

ADAPTER_PROTOCOL STRUCT
	next			dd ?
	pchars  		DWORD ptr PROTOCOL_CHARS
	adapter_index		dd ?
	medium			dd ?
	NdisBindingHandle	dd ?
	ProtocolBindingContext	dd ?
	pSelectedMediumIndex	dd ?
	pMediumArray		dd ?
	pNdisBindingHandle	dd ?
	asm_SendHandler		db ?
	old_SendHandler		dd ?
	asm_SendPacketsHandler 	db ?
	old_SendPacketsHandler	dd ?
	asm_TransferDataHandler	db ?
	old_TransferDataHandler dd ?
	adapter_name		dw ?
ADAPTER_PROTOCOL ENDS

PROTOCOL_CHARS STRUCT
	magic				dq ?
	asm_OpenAdapterCompleteHandler  db ?
	asm_ReceiveHandler		db ?
	asm_TransferDataCompleteHandler db ?
	asm_ReceivePacketHandler	db ?
	asm_CoReceivePacketHandler	db ?
	asm_SendCompleteHandler		db ?
	adapter 			DWORD ptr ADAPTER_PROTOCOL
	chars_len			dw ?
	chars				dw ?
PROTOCOL_CHARS ENDS

protocol_reserved STRUCT
	magic	dd 	?
	buffer	PNDIS_BUFFER<> 
	data	dd 	?
protocol_reserved ENDS

WORK_QUEUE_ITEM STRUCT
	List		dd ?
	WorkerRoutine 	dd ?
	Parameter	dd ?
WORK_QUEUE_ITEM ENDS

send_in_packet_param STRUCT
	Size_	dq ?
	iface	dd ?
	item	WORK_QUEUE_ITEM <>
	data	dw ?
send_in_packet_param ENDS

GENERATE_ASM_STUB macro pchars,func_name
		pop eax
		invoke func_name,pchars,eax
		endm

PCHARS_MAGIC equ "PcHa"

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

; We possibly have some VARARG functions here
NdisWriteErrorLogEntry PROTO C :VARARG


