Ndisdev.asm
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:8k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. .LALL
  2. ;*****************************************************************************
  3. ;
  4. ;       (C) Copyright MICROSOFT Corp, 1995
  5. ;
  6. ;       Title:      LANCELNK.ASM sourced from:
  7. ;       Title:      NDISLNK.ASM - Assembly linkage to NDIS Wrapper for MACs
  8. ;                                  and Protocols
  9. ;
  10. ; Information in this document is Microsoft Confidential. 
  11. ; Copyright (c) 1996, Microsoft Corporation, all rights reserve
  12. ;
  13. ; This document is provided for informational purposes only and Microsoft 
  14. ; Corporation makes no warranties, either expressed or implied, in this document.
  15. ; Information in this document may be substantially changed without notice in
  16. ; subsequent versions of windows and does not represent a commitment on the 
  17. ; part of Microsoft Corporation. This information is for internal use only for 
  18. ; development purposes.
  19. ;
  20. ;       Version:    3.00
  21. ;
  22. ;       Date:       05-Nov-1991
  23. ;
  24. ;=============================================================================
  25.     TITLE $LANCELNK
  26.     .386P
  27. INCLUDE VMM.INC
  28. INCLUDE NETVXD.INC          ; Net VxD initialization oredr
  29. ;INCLUDE NDIS.INC  Dont have this so include the bit we need from the NDIS.H file.
  30. Begin_Service_Table Ndis
  31.     Ndis_Service NdisGetVersion,LOCAL
  32.     
  33.     Ndis_Service NdisAllocateSpinLock,LOCAL
  34.     Ndis_Service NdisFreeSpinLock,LOCAL
  35.     Ndis_Service NdisAcquireSpinLock,LOCAL
  36.     Ndis_Service NdisReleaseSpinLock,LOCAL
  37.     
  38.     Ndis_Service NdisOpenConfiguration,LOCAL
  39.     Ndis_Service NdisReadConfiguration,LOCAL
  40.     Ndis_Service NdisCloseConfiguration,LOCAL
  41.     Ndis_Service NdisReadEisaSlotInformation, LOCAL
  42.     Ndis_Service NdisReadMcaPosInformation,LOCAL
  43.     Ndis_Service NdisAllocateMemory,LOCAL
  44.     Ndis_Service NdisFreeMemory,LOCAL
  45.     Ndis_Service NdisSetTimer,LOCAL
  46.     Ndis_Service NdisCancelTimer,LOCAL
  47.     Ndis_Service NdisStallExecution,LOCAL
  48.     Ndis_Service NdisInitializeInterrupt,LOCAL
  49.     Ndis_Service NdisRemoveInterrupt,LOCAL
  50.     Ndis_Service NdisSynchronizeWithInterrupt,LOCAL
  51.     Ndis_Service NdisOpenFile,LOCAL
  52.     Ndis_Service NdisMapFile,LOCAL
  53.     Ndis_Service NdisUnmapFile,LOCAL
  54.     Ndis_Service NdisCloseFile,LOCAL
  55.     Ndis_Service NdisAllocatePacketPool,LOCAL
  56.     Ndis_Service NdisFreePacketPool,LOCAL
  57.     Ndis_Service NdisAllocatePacket,LOCAL
  58.     Ndis_Service NdisReinitializePacket,LOCAL
  59.     Ndis_Service NdisFreePacket,LOCAL
  60.     Ndis_Service NdisQueryPacket,LOCAL
  61.     Ndis_Service NdisAllocateBufferPool,LOCAL
  62.     Ndis_Service NdisFreeBufferPool,LOCAL
  63.     Ndis_Service NdisAllocateBuffer,LOCAL
  64.     Ndis_Service NdisCopyBuffer,LOCAL
  65.     Ndis_Service NdisFreeBuffer,LOCAL
  66.     Ndis_Service NdisQueryBuffer,LOCAL
  67.     Ndis_Service NdisGetBufferPhysicalAddress,LOCAL
  68.     Ndis_Service NdisChainBufferAtFront,LOCAL
  69.     Ndis_Service NdisChainBufferAtBack,LOCAL
  70.     Ndis_Service NdisUnchainBufferAtFront,LOCAL
  71.     Ndis_Service NdisUnchainBufferAtBack,LOCAL
  72.     Ndis_Service NdisGetNextBuffer,LOCAL
  73.     Ndis_Service NdisCopyFromPacketToPacket,LOCAL
  74.     Ndis_Service NdisRegisterProtocol,LOCAL
  75.     Ndis_Service NdisDeregisterProtocol,LOCAL
  76.     Ndis_Service NdisOpenAdapter,LOCAL
  77.     Ndis_Service NdisCloseAdapter,LOCAL
  78.     Ndis_Service NdisSend,LOCAL
  79.     Ndis_Service NdisTransferData,LOCAL
  80.     Ndis_Service NdisReset,LOCAL
  81.     Ndis_Service NdisRequest,LOCAL
  82.     Ndis_Service NdisInitializeWrapper,LOCAL
  83.     Ndis_Service NdisTerminateWrapper,LOCAL
  84.     Ndis_Service NdisRegisterMac,LOCAL
  85.     Ndis_Service NdisDeregisterMac,LOCAL
  86.     Ndis_Service NdisRegisterAdapter,LOCAL
  87.     Ndis_Service NdisDeregisterAdapter,LOCAL
  88.     Ndis_Service NdisCompleteOpenAdapter,LOCAL
  89.     Ndis_Service NdisCompleteCloseAdapter,LOCAL
  90.     Ndis_Service NdisCompleteSend,LOCAL
  91.     Ndis_Service NdisCompleteTransferData,LOCAL
  92.     Ndis_Service NdisCompleteReset,LOCAL
  93.     Ndis_Service NdisCompleteRequest,LOCAL
  94.     Ndis_Service NdisIndicateReceive,LOCAL
  95.     Ndis_Service NdisIndicateReceiveComplete,LOCAL
  96.     Ndis_Service NdisIndicateStatus,LOCAL
  97.     Ndis_Service NdisIndicateStatusComplete,LOCAL
  98.     Ndis_Service NdisCompleteQueryStatistics,LOCAL
  99.     Ndis_Service NdisEqualString,LOCAL
  100.     Ndis_Service NdisRegAdaptShutdown,LOCAL
  101.     Ndis_Service NdisReadNetworkAddress,LOCAL
  102.     Ndis_Service NdisWriteErrorLogEntry,LOCAL
  103.     Ndis_Service NdisMapIoSpace,LOCAL
  104.     Ndis_Service NdisDeregAdaptShutdown,LOCAL
  105.     Ndis_Service NdisAllocateSharedMemory,LOCAL
  106.     Ndis_Service NdisFreeSharedMemory, LOCAL
  107.     Ndis_Service NdisAllocateDmaChannel, LOCAL
  108.     Ndis_Service NdisSetupDmaTransfer, LOCAL
  109.     Ndis_Service NdisCompleteDmaTransfer, LOCAL
  110.     Ndis_Service NdisReadDmaCounter, LOCAL
  111.     Ndis_Service NdisFreeDmaChannel, LOCAL
  112.     Ndis_Service NdisReleaseAdapterResources, LOCAL
  113.     Ndis_Service NdisQueryGlobalStatistics, LOCAL
  114.     Ndis_Service NdisOpenProtocolConfiguration, LOCAL
  115.     Ndis_Service NdisCompleteBindAdapter, LOCAL
  116.     Ndis_Service NdisCompleteUnbindAdapter, LOCAL
  117.     Ndis_Service WrapperStartNet, LOCAL
  118.     Ndis_Service WrapperGetComponentList, LOCAL
  119.     Ndis_Service WrapperQueryAdapterResources, Local
  120.     Ndis_Service WrapperDelayBinding, Local
  121.     Ndis_Service WrapperResumeBinding, Local
  122.     Ndis_Service WrapperRemoveChildren, Local
  123.     Ndis_Service NdisImmediateReadPciSlotInformation, Local
  124.     Ndis_Service NdisImmediateWritePciSlotInformation, Local
  125.     Ndis_Service NdisReadPciSlotInformation, Local
  126.     Ndis_Service NdisWritePciSlotInformation, Local
  127.     Ndis_Service NdisPciAssignResources, Local
  128.     Ndis_Service NdisQueryBufferOffset, Local
  129. End_Service_Table Ndis
  130. NDIS_STATUS_SUCCESS EQU 0
  131. ; the following equate makes the VXD dynamically loadable.
  132. DEVICE_DYNAMIC EQU 1
  133. DECLARE_VIRTUAL_DEVICE %DEVICE, 3, 10, <%DEVICE>_Control, Undefined_Device_Id, PROTOCOL_Init_Order
  134. VxD_LOCKED_DATA_SEG
  135. Public bInitAlready
  136. bInitAlready  DB 0
  137. VxD_LOCKED_DATA_ENDS
  138. VxD_LOCKED_CODE_SEG
  139. BeginProc C_Device_Init
  140. IFDEF NDIS_STDCALL
  141. extern _DriverEntry@8:NEAR
  142. ELSE
  143. extern _DriverEntry:NEAR
  144. ENDIF
  145. mov   al, bInitAlready
  146. cmp   al, 0 ; Make sure we' haven't been called already.
  147. jnz   Succeed_Init_Phase
  148. inc   bInitAlready ; Set the "Called Already" Flag
  149. ; Make sure the wrapper (Ndis.386) is loaded
  150.    VxDcall NdisGetVersion
  151.    jc    Fail_Init_Phase
  152.    push  0
  153.    push  0
  154. IFDEF NDIS_STDCALL
  155.    call  _DriverEntry@8
  156. ELSE
  157.    call  _DriverEntry
  158.    add   esp,8
  159. ENDIF
  160.    cmp   eax, NDIS_STATUS_SUCCESS
  161.    jne   Fail_Init_Phase
  162. Succeed_Init_Phase:
  163.    clc
  164.    ret
  165. Fail_Init_Phase:
  166.    stc
  167.    ret
  168. EndProc C_Device_Init
  169. Begin_Control_Dispatch %DEVICE
  170.     Control_Dispatch Sys_Dynamic_Device_Init, C_Device_Init
  171.     Control_Dispatch W32_DEVICEIOCONTROL,     PacketIOControl, sCall, <ecx, ebx, edx, esi>
  172. ;     Control_Dispatch DEBUG_QUERY,           PacketDebugQuery, sCall
  173. End_Control_Dispatch %DEVICE
  174. VxD_LOCKED_CODE_ENDS
  175. ;******************************************************************************
  176. ;                 R E A L   M O D E   I N I T   C O D E
  177. ;******************************************************************************
  178. ;******************************************************************************
  179. ;
  180. ;   MAC_Real_Init
  181. ;
  182. ;   DESCRIPTION:
  183. ;
  184. ;   ENTRY:
  185. ;
  186. ;   EXIT:
  187. ;
  188. ;   USES:
  189. ;
  190. ;==============================================================================
  191. VxD_REAL_INIT_SEG
  192. BeginProc MAC_Real_Init
  193. ;
  194. ;   If another us is loaded then don't load -- Just abort our load
  195. ;
  196.      test    bx, Duplicate_From_INT2F OR Duplicate_Device_ID
  197.      jnz     SHORT Ndis_RI_Abort_Load
  198. ;   No other  is loaded.
  199.      xor     bx, bx
  200.      xor     si, si
  201.      mov     ax, Device_Load_Ok
  202.      ret
  203. Ndis_RI_Abort_Load:
  204.      xor     bx, bx
  205.      xor     si, si
  206.      mov     ax, Abort_Device_Load
  207.      ret
  208. EndProc MAC_Real_Init
  209. VxD_REAL_INIT_ENDS
  210. END MAC_Real_Init