函数?描述
无连接微端口的上层函数?
DriverEntry?由操作系统调用来激活和初始化微端口驱动程序
MiniportAllocateComple?调用它来指示以前调用的NdisMAllocateMemoryAsync已经完成
MiniportCheckForHang?检查NIC的内部状态
MiniportDisableInterrupt?禁止NIC产生中断
MiniportEnableInterrupt?允许NIC产生中断
MiniportHalt?重新分配和重新注册NIC占用的资源并且终止NIC以使它不再有用
MiniportHandleInterrupt?延期用来完成I/O中断函数的执行
MiniportInitialize?出始化NIC
MiniportISR?作为NIC中断服务例程以高权值运行
MiniportQueryInformation?查询微端口驱动程序的性能和当前状态
MiniportReconfigure?未使用
MiniportReset?对NIC发出一个硬件重置
MiniportReturnPacket?从上层接收一个包,这个包是在这之前通过调用NdisMIndicateReceivePacket函数传上去的包
MiniportSend?如果驱动程序没有MiniportSendPadcets或MiniportWanSend函数,它用来将一个包通过NIC传递到网络上
MiniportSendPackets?通过NIC传递一组包到网络上
MiniportSetInformation?变换(设置)关于微端口驱动程序或它的NIC的信息
MiniportShutdown?当系统暂时关闭时,将NIC恢复到初始状态
MiniportSynchronizeISR?同步访问与MiniportISR或MiniportDisableInterrupt共享的资源。如果有运行在DIRQL下的NIC驱动程序函数与驱动程序的MiniportISR或MiniportDisableInterrupt函数共享资源,需要此函数
MiniportTimer?如果微端口的NIC不产生中断,用于轮询NIC的状态
MiniportTransferData?将由NIC接收到的包的内容拷贝到一个给定的包缓存中
MiniportWanSend?如果驱动程序控制着WAN NIC,通过NIC发送一个包到网络上
面向连接微端口的上层函数?
DriverEntry?由操作系统调用来激活和初始化微端口驱动程序
MiniportAllocateComplete?调用它来指示以前调用的NdisMAllocateMemoryAsync已经完成
MiniportChecKForHang?检查NIC的内部状态
MiniportCoActivateVc?激活一个虚连接(VC)
MiniportCoCreateVc?为一个VC建立VC状态
MiniportCoDeactivateVc?为一个VC释放VC的状态
MiniportCoDeleteVc?删除一个VC
MiniportCoRequest?查询微端口驱动程序的能力和当前状态或改变(设置)有关微端口驱动程序或它的NIC的信息
MiniportCoSendPackets?通过一个NIC发送一组包到网络上
MiniportDisableInterrupt?禁止一个NIC产生中断
MiniportEnableInterrupt?允许一个NIC产生中断
MiniporeHalt?收回和注销NIC占用的资源并且终止NIC以使它不再使用
MiniportHandIeInterrupt?延期用来完成I/O中断函数的执行
MiniportInitialize?初始化NIC
MiniportISR?作为NIC中断服务例程以高权值运行
MiniportReconfigure?未使用
MiniporeReset?对NIC发出一个硬件重置
MiniportReturnPacket?从上层接收一个包,这个包是在这以前通过调用NdisMCoIndicateReceivePacket传上去的
MiniportShutdown?一个可选择函数,当系统关闭时,将NIC恢复到它的初始状态
MiniportSynchronizpISR?同步访问与MiniportISR或MiniportDisableInterrupt共享的资源,如果有运行在DIRQL下的NIC驱动程序函数与驱动程序的MiniportISR或MiniportDisableInterrupt函数共享资源
MiniportTimer?如果微端口NIC不产生中断, 轮询一个NIC状态
MiniportWanSend?如果驱动程序控制着WAN NIC ,通过网络接口卡发送一个包到网络上
初始化和注册函数?
NdisMInitializeWrapper?为微端口驱动程序初始化NDIS库数据结构
NdisMRegisterMiniport?向NDIS提供有关微端口驱动程序的信息
NdisMSetAttributes?向NDIS库报告微端口驱动程序所支持的NIC的类型并且传递指向微端口的环境区域的句柄。NDIS将在接下来的调用中把这个句柄传递给MiniportXxx函数
NdisMSetAtteributesEx?除了如同NdisMSetAttributes一样传递同样的信息,这个函数改变了缺省的NIC超时动作,并且允许一个微端口指定一些附加的标志。一个驱动程序,例如一个NDIS中间层驱动程序或一个非 串行化微端口驱动程序,如果必须指定一个或多个这种标志的话,则必须调用这个函数而不是NdisMSetAttributes
NdisMGetDeviceProperty?检索出设备对象,这个对象被用来通过一个总线驱动程序来建立一个与NIC的通信。例如,USB和IEEE 1394总线驱动程序
NdisMQueryAdapterResources?返回一个NIC硬件资源列表
NdisMQueryInformationComplete?指示NDIS先前的MiniporeQueryInformation操作完成。仅被无连接微端口调用
NdisMSetInformationComplete?报告NDIS库,以前的MiniportSetInofrmation操作已经完成,仅被无连接微端口调用
NdisOpenConfiguration?提供一个调用者可以用来调用NdisReadConfiguration,NdisWriteConfiguration,NdisOpenConfigurationByIndex或NdisOpenConfigurationByName的句柄
NdisOpenCanfigurationByIndex?打开一个给定的已打开的注册表中的主键值的一个子键,而这个主键是由一个调用者所提供的句柄指定
NdisOpenConfigarationByName?打开一个给定的已打开的注册表中的主键值的一个指定的子键,这个主键是由一个调用者所提供的句柄指定
NdisReadConfiguration?使用由调用NdisOpenConfiguration所获得的参数句柄来读取存储在注册表中的指定键名的键值,键值将传给NdisReadConfigration
NdisWriteConfiguration?使用由调用NdisOpenConfiguration所获得的参数句柄将键值写入注册表,键值传给NdisWriteConfiguration
NdisCloseConfiguration?关闭一个通过调用NdisOpenConfiguration而打开的注册表句柄
NdisMRegisterAdapterShutdownHandler?注册一个NIC驱动程序提供的Miniportshutdown函数,它在系统将要关闭时被调用
NDIS_INIT_FUNCTION?注明一个驱动程序函数仅在初始化时开始运行
NDIS_PAGEABLE_FUNCTION?注明一个驱动程序函数是可分页代码
硬件设置函数?
NdisReadEisaSlotInformation?读取EISA NIC插槽信息并且将它拷贝到NIC驱动程序所提供的一个缓存中
NdisReadEisaSlotInformationEx?为一个支持可选择设置的EISA NIC读取插槽信息和有关的一系列函数的信息,并且将这些设置拷贝到NIC驱动程序所提供的缓存中
NdisImmediateReadPciSlotInformation?从一个指定PCI设备的设置区间读取一个指定长度的字节
NdisImmediateWritePciSlotInformation?向一个指定PCI设备的设置区间写入一个指定长度的字节
NdisMPciAssignResources?返回一个指定PCI设备所声明的资源列表
NdisReadPciSlotInformation?从一个指定PCI设备的设置区间读取一个指定长度的字节
NdisWritePciSlotInformation?向一个指定PCI设备的设置区间写入一个指定长度的字节
NdisReadPcmciaAttributeMemory?为一个PC卡的NIC从属性内存中读取与总线相关的设置参数
NdisWritePcmciaAttributeMemory?为一个PC卡NIC向属性内存写入与总线相关的设置参数
NdisReadNetworkAddress?返回软件可设置的网络地址,它是在NIC安装在机器中时为NIC存储在注册表中的
I/O端口函数?
NdisMRegisterIoPortRange?为使用NdisRawReadPortXxx和NdisRawWriteportXxx函数建立I/O访问端口
NdisMDeregisterIoProtRange?删除早期由NdisMRegisterIoPortRange注册的I/O访问端口
NdisMMapIospace?为随后的内存映射I/O操作映射一定范围的设备内存
NdisZeroMappedMemory?将早期调用NdisMMapIoSpace映射的内存块以0填充
NdisMoveFromMappedMemory?将在初始化时由NdisMMapIoSpace所映射的设备内存中的数据拷贝到一个系统空间的缓存中
NdisMoveToMappedMemory?将数据从一个系统空间缓存中拷贝到在初始化时由NdisMMapIoSpace所映射的设备内存中
NdisMUnmapIoSpace?释放调用NdisMMapIoSpace所映射的区域
NdisImmediateReadSharedMemory?在驱动程序调用NdisMMapIoSpace之前从共享内存地址中读取一块数据到缓存
NdisImmediateWriteSharedMemory?在驱动程序调用NdisMMapIoSpace之前向一个共享内存地址中写入缓存中的数据
NdisRawReadPortXxx?从一个I/O端口读取唯一的一条数据,具体的函数包括:NdisRawReadPortUchor,NdisRawReadportUlong,NdisRawReadportUshort
NdisRawReadPortBufferXxx?从一个I/O端口一次读取数据到缓存,具体函数包括:NdisRawReadPortBufferUchar,NdisRawReadPortBufferUlong,NdisRawReadPortBufferUshort
NdisRawWritePortXxx?向一个I/O端口写入一条数据,具体函数包括:NdisRawWritePortUchar,NdisRawWritePortUlong,NdisRawWritePortUshourt
NdisRawWritePortBufferXxx?将缓存中的数据写入I/O端口,具体函数包括:NdisRawWritePortBufferUch,NdisRawWritePortBufferUlong,NdisRawWritePortBufferUshort
NdisImmediateReadPortXxx?在驱动程序调用NdisMRegisterIoPortRange映射端口之前从一个I/O端口读取一条数据。具体函数包括:NdisImmediateReadPortUcha,NdisImmediateReadPortUshort,NdisImmeduateReadPortUlong
NdisImmediateWritePortXxx?在驱动程序调用NdisMRegisterIoPortRange映射端口之前向一个I/O端口写一条数据。具体函数包括:NdisImmediateWritePortUch,NdisImmediateWritePortUshort,NdisImmediateWritePortUlong
DMA相关的函数?
NdisMAllocateMapRegisters?为使用总线管理器的DMA设备分配映射注册表
NdisMAllocateShareMemory?分配系统与一个总线管理器DMA? 和NIC共享的内存。它在驱动程序初始化时以IRQL PASSIVE_LEVEL调用
NdisMAllocateShareMemoryAsync?调用它提升IRQL,例如一个微端口的MiniportHandleInterrupt函数为总线管理器DMA NIC分配共享内存
NdisMCompleteBufferPhysicalMapping?释放早期为一个总线管理器DMA操作而调用NdisMStartBufferPhysicalMapping所使用的映射注册表。仅在DMA初始化时由调用NdisMAllocateMapRegisters的驱动程序调用
NdisMCompleteDmaTransfer?指示NDIS库一个从属的DMA操作已完成
NdisMDeregisterDmaChannel?在微端口驱动程序的DMA通道上释放它的声明
NdisFlushBuffer?在发送数据到NIC或从NIC转移数据之前,调用它来确保在总线管理器DMA运行的cache和主机物理内存之间一致
NdisGetCacheFillSize?返回微处理器的以字节为单位的cache边界。DMA NIC的驱动程序可以使用由这个函数返回的信息以避免在DMA传输时与cache断开
NdisMFreeMapRegisters?释放总线管理器DMA的映射注册表,它是早期由NdisMAllocateMapRegisters分配的
NdisMFreeSharedMemory?释放早期由NdisMAllocateSharedMemory或NdisMAllocateSharedMemoryAsync分配的内存
NdisMInitializeScatterGatherDma?为使用DMA驱动程序保留系统资源,仅被非串行化或面向连接微端口调用
NdisMReadDmaCounter?读取系统DMA管理器的计数器的当前值
NdisMRegistgerDmaChannel?为将来从属的DMA操作建立一个DMA通道控制
NdisMSetupDmaTransfer?为从属的DMA传递设置一个主机系统的DMA控制器
NdisMStarBufferPhysicalMapping?为一个总线管理器DMA操作产生一个物理地址映射,仅在DMA初始化时调用NdisMAllocateMapRegisters的驱动程序调用
NdisMUpdateSharedMemory?确保在总线管理器DMA操作时从共享内存区读取的数据是最新的
NdisQueryMapRegisterCount?返回所有可能的映射注册表数量。在调用NdisMAllocateMapRegisters之前驱动程序调用NdisQueryMapRegisterCount来选择实际分配多少注册表
中断处理函数?
NdisMDeregisterInterrupt?是一个中断处理程序停止接收中断。操作系统断开NIC中断相连的中断服务函数的联系
NdisMRegisterInterrupt?连接微端口中断服务函数(MiniportISR)和由它的NIC所产生的中断
NdisMSynchronizeWithInterrupt?任何与MiniportISR或MiniportDisableInterrupt函数共享资源的NIC驱动程序函数必须同步访问这些资源以防止争用发生。通过调用NdisMSynchronizeWithInterrupt和传递一个MiniportSynchronizeISR函数的地址,来使函数与MiniportISR和MiniportDisableInterrupt同步。MiniportSynchronzeISR运行在DIRQL上,所以它可以安全地访问共享资源
同步函数?
NdisMCanceltimer?取消早期由NdisMSetTimer设置的一个时钟
NdisMInitializeTimer?初始化一个时钟对象并且将对象与一个MiniportTimer函数相连
NdisMSetTimer?设置一个时钟在一个指定间隔之后停止
NdisMSetPeriodicTimer?设置时钟每隔一个指定时间后停止,或直到调用NdisMCancelTimer后才停止
NdisMsleep?引起调用者的线程阻塞指定的间隔。驱动程序在初始化或当停止适配器时,调用NdisMsleep。例如,当等待NIC完成初始化时。NdisMsleep仅在IRQL PASSIVEL_LEVEL下被调用
NdisStallExecution?引起调用者的线程停止一个指定间隔,不超过50微秒。此时不能使用NdisMSleep,NdisStallExecution仅在升高的IRQL下被调用
NdisInitializeEvent?产生和初始化一个用来同步驱动程序操作的事件
NdisSetEvent?为指定事件设置信号量
NdisResetEvent?重新设置指定事件为无信号状态
NdisWaitEvent?引起调用者等待到指定事件被指示或指定时间间隔结束时为止
NdisAllocateSpinLock?初始化一个的NDIS_SPIN_LOCK类型变量,它被用来同步访问非ISR驱动程序函数之间共享的资源
NdisFreeSpinLock?释放一个在调用NdisAllocateSpinLock过程中初始化的自旋锁
NdisAcquireSpinLock?获得一个自旋锁来保护在一个SMP安全方式下运行的非ISR驱动程序函数之间的共享资源的访问。运行在IRQL
本文地址:http://com.8s8s.com/it/it36011.htm