NDIS 函 数 简 明 手 册无连接微端口的上层函数 DriverEntry 由操作系统调用来激活和初始化微端口驱动程序MiniportAllocateComple 调用它来指示以前调用的NdisMAllocateMemoryAsync已经完成MiniportCheckForHang 检查NIC的内部状态MiniportDisableInterrupt 禁止NIC产生中断MiniportEnableInterrupt 允许NIC产生中断MiniportHalt 重新分配和重新注册NIC占用的资源并且终止NIC以使它不再有用MiniportHandleInterrupt 延期用来完成I/O中断函数的执行MiniportInitialize 出始化NICMiniportISR 作为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 删除一个VCMiniportCoRequest 查询微端口驱动程序的能力和当前状态或改变(设置)有关微端口驱动程序或它的NIC的信息MiniportCoSendPackets 通过一个NIC发送一组包到 络上MiniportDisableInterrupt 禁止一个NIC产生中断MiniportEnableInterrupt 允许一个NIC产生中断MiniporeHalt 收回和注销NIC占用的资源并且终止NIC以使它不再使用MiniportHandIeInterrupt 延期用来完成I/O中断函数的执行MiniportInitialize 初始化NICMiniportISR 作为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中间层驱动程序或一个非 串行化微端口驱动程序,如果必须指定一个或多个这种标志的话,则必须调用这个函数而不是NdisMSetAttributesNdisMGetDeviceProperty 检索出设备对象,这个对象被用来通过一个总线驱动程序来建立一个与NIC的通信。例如,USB和IEEE 1394总线驱动程序NdisMQueryAdapterResources 返回一个NIC硬件资源列表NdisMQueryInformationComplete 指示NDIS先前的MiniporeQueryInformation操作完成。仅被无连接微端口调用NdisMSetInformationComplete 告NDIS库,以前的MiniportSetInofrmation操作已经完成,仅被无连接微端口调用NdisOpenConfiguration 提供一个调用者可以用来调用NdisReadConfiguration,NdisWriteConfiguration,NdisOpenConfigurationByIndex或NdisOpenConfigurationByName的句柄NdisOpenCanfigurationByIndex 打开一个给定的已打开的注册表中的主键值的一个子键,而这个主键是由一个调用者所提供的句柄指定NdisOpenConfigarationByName 打开一个给定的已打开的注册表中的主键值的一个指定的子键,这个主键是由一个调用者所提供的句柄指定NdisReadConfiguration 使用由调用NdisOpenConfiguration所获得的参数句柄来读取存储在注册表中的指定键名的键值,键值将传给NdisReadConfigrationNdisWriteConfiguration 使用由调用NdisOpenConfiguration所获得的参数句柄将键值写入注册表,键值传给NdisWriteConfigurationNdisCloseConfiguration 关闭一个通过调用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,NdisRawReadportUshortNdisRawReadPortBufferXxx 从一个I/O端口一次读取数据到缓存,具体函数包括:NdisRawReadPortBufferUchar,NdisRawReadPortBufferUlong,NdisRawReadPortBufferUshortNdisRawWritePortXxx 向一个I/O端口写入一条数据,具体函数包括:NdisRawWritePortUchar,NdisRawWritePortUlong,NdisRawWritePortUshourtNdisRawWritePortBufferXxx 将缓存中的数据写入I/O端口,具体函数包括:NdisRawWritePortBufferUch,NdisRawWritePortBufferUlong,NdisRawWritePortBufferUshortNdisImmediateReadPortXxx 在驱动程序调用NdisMRegisterIoPortRange映射端口之前从一个I/O端口读取一条数据。具体函数包括:NdisImmediateReadPortUcha,NdisImmediateReadPortUshort,NdisImmeduateReadPortUlongNdisImmediateWritePortXxx 在驱动程序调用NdisMRegisterIoPortRange映射端口之前向一个I/O端口写一条数据。具体函数包括:NdisImmediateWritePortUch,NdisImmediateWritePortUshort,NdisImmediateWritePortUlongDMA相关的函数 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 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
串口通信
•
行业观察
楚狂人–驱动开发基础
上一篇
2012年9月21日
程序员编程领域的经典书籍推荐
下一篇
2012年9月22日