NDIS 函 数 简 明 手 册

来源:互联网 发布:新点软件下载 编辑:程序博客网 时间:2024/06/09 14:24

NDIS 函 数 简 明 手 册

函数?描述

无连接微端口的上层函数?

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驱动程序函数之间的共享资源的访问。运行在IRQLNdisReleaseSpinLock?释放一个早期调用NdisAcquireSpinLock获得的自旋锁

NdisDprAcquireSpinLock?获得一个在IRQL DISPATCH_LEVEL下的自旋锁。它保护在一个SMP安全模式下运行的非ISR驱动程序函数间的共享资源访问。它比为运行在IRQL DISPATCH_LEVEL上的驱动程序函数调用NdisAcquireSpinLock要快

NdisDprReleaseSpinLock?释放一个早期调用NdisDprAcquireSpinLock获得的自旋锁

NdisInitializeReadWriteLock?初始化一个NDIS_RW_LOCK类型变量。NDIS_RW_LOCK变量用来限制对一个非ISR驱动程序线程的共享资源一次进行一个写访问。这个NDIS_RW_LOCK允许多个非ISR驱动程序线程同时读这些资源。这个读访问在写访问时是不允许的

NdisAcquireReadWriteLock?获得一个调用者用来在多个驱动程序线程的共享资源间进行写或读访问的锁。运行在IRQLNdisReleaseReadWriteLock?释放一个在调用NdisAcquireReadWriteLock过程中获得的读-写锁

NdisMSynchronizeWithInterrupt?任何与MiniportISR或MiniportDisableInterrupt函数共享资源的NIC驱动程序函数必须与这两个函数同步访问资源,以防止争用发生。必须与MiniportISR和MiniportDisableInterrupt同步的函数通过调用NdisMSynchronizeWithInterrupt,与一个也运行在DLRQL的MiniportSynchronizeISR函数同步访问共享资源

状态函数?

NdisMCoIndicateStatus?向绑定协议指示一个面向连接NIC的状态变化或一个在网络接口卡(NIC)上的指定虚连接(VC)的状态变化

NdisMIndicateStatus?向NDIS库指示NIC状态已变化,仅被无连接微端口调用

NdisMIndicateStatusComplete?向NDIS库指示状态变化已完成,仅被无连接微端口调用

NdisMQueryInformationComplete?指示早期的MiniportQueryInformation调用已完成

NdisMSetInformationComplete?指示早期的MiniportSetInformation调用已完成

无连接微端口的发送和接收函数?

NdisMIndicateReceivePacket?向相关上层指示一个或多个包

NdisMArcIndicateReceiveNdisMEthIndicateReceiveNdisMFddiIndicateReceiveNdisMTrIndicateReceive?指示一个指定介质类型的包正在接收

NdisMArcIndicateReceiveCompleteNdisMEthIndicateReceiveCompleteNdisMFddiIndicateReceiveCompleteNdisMTrIndicateReceiveComplete?指示一个包接收操作已完成

NdisMsendComplete?指示早期包发送操作已完成,当早期MiniportSend函数异步操作时使用它

NdisMSendResourcesAvailable?指示NDIS库,微端口驱动程序有可用于发送操作的资源。如果微端口完成了一个同步发送,在它的MiniportSend函数中调用这个函数,或者当它检测出一个异步发送操作已完成时,在它的MiniportHandleInterrupt函数中调用。如果驱动程序没有为一个未完的发送操作调用NdisMSendComplete时,NdisMsendResourcesAvailable才可被调用

NdisMTransferDataComplete?指示NDIS库早期的MiniportTransferDate请求已完成,当先前调用的MiniportTransferData函数返回NDIS_STATUS_PENDING时使用这个函数

面向连接微端口的发送和接收函数?

NdisMCoIndicateReceivePacket?向上层相关层指示一个或多个包,根据每一个VC指示包

NdisMCoSendComplete?指示早期通过调用MiniportCoSendPackets所发起的包发送操作已完成

带外(OOB)数据宏?

NDIS_OOB_DATA_FROM_PACKET?返回一个指向与一个给定包描述符相连的OOB数据块的指针

NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO?从与一个给定包描述符相连的OOB数据块中返回MediaSpecificInformation指针和SizeMediaSpecificInfo值

NDIS_GET_PACKET_STATUS?从一个与给定包描述符相连的OOB数据块中返回状态值

NDIS_GET_PACKET_TIME_TO_SEND?从一个与给定包描述符相连的OOB数据块中返回TimeToSend值

NDIS_SET_PACKET_HEADER_SIZE?为随后的接收指示设置一个与给定包描述符相连的OOB数据块中的HeaderSize值

NDIS_SET_PACKET_MEDIA_SPECIFIC_LNFO?设置与一个给定包描述符相连的OOB数据块中的MediaSpecificInformation指针和SizeMediaSpecificInfo值

NDIS_SET_PACKET_STATUS?在一个驱动程序调用NdisM(Co)IndicateReceivePacket或在一个驱动程序的Miniport(Co)SendPackets函数返回控制之前,设置与一个给定包描述符相连的OOB数据块中的状态值。

NDIS_SET_PACKET_TIME_RECEIVED?设置与一给定包描述符相连的OOB数据块中的TimeReceived值

NDIS_SET_PACKET_TIME_SENT?设置与一给定包描述符相连的OOB数据块中的TimeSent值

包和缓存处理函数?

NdisAllocatePacketPool?分配和初始化一个不分页包池块。调用者提供请求可存放包描述符数和以字节为单位的每个固定包的大小

NdisAllocatePacketPoolEx?分配和初始化一个不分页包池的块。并且提供请求包描述符的数量和以字节为单位的每个固定包的大小,调用者提供用来保存溢出状态下的包描述符的数量

NdisAllocatePacket?从由NdisAllocatePacketPool返回的包池中分配一固定大小的包描述符

NdisDprAllocatePacket?当调用者运行在IRQL DISPATCH_LEVEL下,分配和初始化一个包描述符

NdisAllocateBufferPool?返回一个调用者可用NdisAllocateBuffer来分配缓存描述符的句柄

NdisAllocateBuffer?在指定的已分配的不分页的内存块中创建一个映射虚存范围的缓存描述符。需给出由NdisAllocateBufferPool返回的句柄

NdisAdjustBufferLength?修改一个给定缓存描述符指定范围的长度

NdisBufferLength?返回一个给定映射缓存以字节为单位的长度

NdisBufferVirtualAddress?如果给定缓存描述符所给出的物理页并没有映射到系统空间的话,返回由一个给定缓存描述符映射的缓存的基本虚地址,并且将这物理页映射到系统空间,

NdisCopyBuffer?为指定的内存块创建缓存描述符

NdisCopyFromPacketToPacket?从一个包向另一个包拷贝指定数量的字节,给定一个指定的源包和一个目的包及每个包的起始位置

NdisCreateLookaheadBufferFromSharedMemory?返回一个与总线管理器DMA? NIC共享内存块的缓存的虚地址。允许驱动程序以只读预分缓存方式将向上指示的接收数据的一部分映射到相关协议

NdisDestroyLookaheadBufferFromSharedMemory?释放由调用NdisCreateLookaheadBufferFromSharedMemory而获得的缓存

NdisQueryPacket?返回一组描述了包和链的大指针的信息

NdisQueryBuffer?返回由一个给定缓存描述符映射的一个缓存的虚地址的基址和长度

NdisQueryBufferOffset?返回在一个给定缓存描述符中映射的一个缓存的虚地址的基址和长度

NdisGetFirstBufferFromPacket?返回链在包上的第一个缓存的描述符及虚地址,以及第一个缓存的长度和所有缓存的总长(以防缓存使分段的)

NdisGetNextBuffer?返回给定缓存描述符链当前的缓存描述符

NdisGetBufferPhysicalArraySize?对一给定缓存描述符,返回不邻接的物理块的缓存数量。总线管理DMA NIC在调用NdisMStarBufferPhysicalMapping之前调用它来决定分配和填充多少NDIS_PHYSICAL_ADDRESS结构

NdisGetPacketFlags?如果有的话,返回在一个给定包中,由协议驱动程序设置的标志

NdisFreePacketPool?释放由调用NdisAllocatePacketPool所分配的一个不分页池的块

NdisPacketPoolUsage?返回一个包池中当前已分配的包描述符的数量

NdisFreePacket?释放调用NdisAllocatePacket所分配的包

NdisDprFreePacket?当调用者为访问包池提供内部同步,并且调用者运行在IRQL DISPATCH_LEVEL时,释放驱动程序分配的包描述符并且将它返回给空闲列表

NdisFreeBufferPool?释放调用NdisAllocateBufferPool所获得的句柄

NdisFreeBuffer?释放调用NdisAllocateBuffer所获得的缓存描述符

NdisChainBufferAtBack?将一给定缓存描述符链到一个给定包的缓存描述符链表的未尾

NdisUnchainBufferAtFront?从一给定包的缓存描述符链表中删除链表的表头并且返回指向这个缓存描述符的指针

NdisUnchainBufferAtBack?从一给定包的缓存描述符链表中删除表尾,并且返回指向这缓存描述符的指针

NdisReinitializePacket?从一给定包中删除所有相链的缓存并且重新初始化它以备重新使用

NdisRecalculatePacketCounts?重新设置多个给定包的有效个数以使下一个调用NdisQueryPacket重新计算个数

NDIS_BUFFER_LINKAGE?由一指向缓存描述符的指针,返回一个被链接的缓存的指针。这个宏允许一个驱动程序不必提供自己的缓存描述符链接情况而对已分配缓存描述符排队

NDIS_BUFFER_TO_SPAN_PAGES?确定给定的缓存取要使用多少物理页

内存函数?

NdisAllocateMemory?在指定地址范围地将驻留(不分页)的系统空间内存以物理连续分配方式分配和/或以非cache方式分配

NdisAllocateMemorywithTag?如同调用NdisAllocateMemory,不同在于它允许调用者提供一个标记可用来跟踪驱动程序的内存分配

NdisEqualmemory?将一个内存块中的指定数量的字符与另一个内存块中相同数量的字符相比较

NdisFillMemory?用给定字符填充一个调用者所提供的缓存

NdisFreeMemory?释放早期由NdisAllocateMemory分配的内存块

NdisMoveMemory?从一调用者提供的位置将一指定数量的字节拷贝到另一地方

NdisZeroMeomory?用0填充内存块

NdisInitializeNPagedLookasideList?初始化一个预先分配的列表,在初始化成功以后,可以从预先分配列表中分配或向列表释放不分页的固定大小的块

NdisAllocateFromNPagedLookasideList?从一给定的预先分配的列表头中删除第一个项目。如果预先分配列表是空的,那么从不分页池中分配一个项目

NdisDeleteNPagedLookasideList?将一不分页预分配列表从系统中删除

NdisFreeToNPagedLookasideList?返回预分配列表的入口

NdisInitializeListHead?初始化一个顺序的,互锁的,单链表的表头

NdisInterlockedInsertTailList?插入一个项目,通常是一个包,到一个双链表的表尾,这使得可以在一个多处理器安全方式下同步访问列表

NdisInterlockedRemoveHeadList?从表头删除一个项目,这使得可以在一个多处理器安全方式下同步访问列表

NdisInitializeslistHead?初始化一个顺序的,互锁的,单链表的表头

NdisInterlockedPopEntrysList?从一个顺序的,单链表中删除第一个项目

NdisInterlockedPushEntrysList?在一个顺序的,单链表表头插入一个项目

NdisQueryDepthsList?返回一个给定的顺序的,单链表中当前项目数目

系统信息函数?

NdisSystemProcessorCount?确定它的调用者运行在一个单处理器上还是多处理机上。一个NDIS驱动程序在分配资源之前的初始化中,调用这个函数

NdisGetCurrentProcessorCounts?返回驱动程序当前可使用的处理器的个数,驱动程序用它来确定CPU的利用情况

NdisGetCurrentProcessorCpuUsage?以百分比方式返回当前处理器使用率

NdisGetCurrentSystemTime?返回当前系统时间,用来设置时间戳

NdisGetSystemUptime?返回自从系统开始以来所经过的时间值,以微秒为单位

日志函数?

NdisMCreateLog?分配和打开一个NIC微端口可写入数据的日志文件,这个文件由一个驱动程序提供的Win32应用程序显示

NdisMWriteLogData?为供驱动程序提供的Win32应用程序使用和显示日志,而将驱动程序提供的信息写入日志文件

NdisMFlushLog?清除日志文件

NdisMCloseLog?释放日志所使用的资源

NdisWriteErroLogEntry?向系统I/O出错日志文件写一条目

字符串函数?

NdisAnsiStringToUnicodeString?将一给定数量ANSI字符串转化为一定数量的Unicode字符串

NdisEqualAnsiString?将两个ANSI字符串比较并且返回一个表明它们是否相等的值

NdisEqualString?在操作系统缺省的字符集下,比较两个字符串是否相等

NdisEqualUnicodeString?比较两个Unicode字符串并且返回一个表明它们是否相等的值

NdisFreeString?释放为缓存字符串分配的存储区

NdisInitAnsiString?初始化一ANSI字符串

NdisInitializeString?为一长度字符串分配存储区,并且以系统缺省的字符集初始化它

NdisInitUnicodeString?初始化一Unicode字符串

NdisPrintString?在调试窗口显示指定的字符串

NdisUnicodeStringToAnsiString?将一给定的Unicode字符串转换成ANSI字符串

NdisUpcaseUnicodeString?将一给定Unicode字符串副本转换为大写形式,并且返回转换后的字符串

文件函数?

NdisOpenFile?返回一个已打开文件的句柄

NdisMapFile?如果文件未被映射,将一个已打开文件映射到一个调用者可访问的缓存中

NdisUnmapFile?释放一个由NdisMapFile建立的文件的虚地址映射

NdisCloseFile?释放由NdisOpenFile返回的句柄,并且释放文件打开时所分配给文件contex的内存

地址函数?

NdisGetPhysicalAddressHigh?返回一个给定物理地址的高位部分

NdisGetPhysicalAddressLow?返回一个给定物理地址的低位部分

NdisSetPhysicalAddressHigh?将一个给定物理地址的高位部分设置为一个给定的值

NdisSetPhysicalAddressLow?将一个给定物理地址的低位部分设置为一个给定的值

NDIS_PHYSICAL_ADDRESS_CONST?初始化一个物理地址的静态常量类型

变量函数?

NdisRetriveUlong?从源地址中取回一个ULONG值,避免对齐错误

NdisStoreUlong?存储一ULONG值到一指定地址,避免对齐错误

NdisInterlockedAddUlong?用一个原子操作将一个Unsigned long值与一个给定Unsigned integer相加,使用一个调用者提供的自旋锁来同步访问integer变量

NdisInterlockedDecrement?用一个原子操作减一

NdisInterlockedIncrement?用一个原子操作加一

注册函数?

NdisReadRegisterUchar?从一个内存映射设备注册表中读取一个UCHAR

NdisReadRegisterUlong?从一个内存映射设备注册表中读取一个ULONG

NdisReadRegiseerUshort?从一个内存映射设备注册表中读取一个USHORT

NdisWriteRegisterUchar?向一个内存映射设备写入一个UCHAR

NdisWriteRegisterUlong?向一个内存映射设备写入一个ULONG

NdisWriteRegisterUshort?向一个内存映射设备写入一个USHORT

工作项目函数?

NdisInitializeWorkItem?当一个系统工作线程获得控制时,用一个调用者提供的环境和回调例程,初始化一个工作队列来作为执行排队

NdisScheduleWorkItem?将一个给定工作项目插入到一个队列。一个系统工作线程删除项目,并且将控制给予驱动程序先前提供给NdisInitializeWorkItem的回调函数

NDIS提供的媒体相关宏?

ETH_COPY_NETWORK_ADDRESS?将一个给定Ethernet地址拷贝到一个给定位置

FDDI_IS_BROADCAST?将一个调用者提供的变量设置为一个布尔值,它表示一个给定的FDDI地址是否是一个广播地址

FDDI_IS_MULTICAST?将一个调用者提供的变量设置为一个布尔值,它表示一个给定的FDDI地址是否是多点传输地址

FDDI_IS_SMT?设置一个调用者提供的变量为一布尔值,它表示是否给定的FDDI帧是SMT

TR_COMPARE_NETWORK_ADDRESS?将一个调用者提供的变量设置为一个布尔值,表明一个给定的Token Ring地址是大于、小于或等于另一个给定Token Ring地址的值

TR_COPY_NETWORK_ADDRESSES?将一个给定Token Ring地址拷贝到一给定位置

IR_IS_BROADCAST?将一个调用者提供的变量设置为一个布尔值,它表示一个给定的Token Ring地址是否是广播地址

TR_IS_FUNCTIONAL?将一个调用者提供的变量设置为一个布尔值,它表示一个给定Token Ring地址是否是函数地址

TR_IS_GROUP?将一个调用者提供的变量设置为一个布尔值,它表示一个给定Token Ring地址是否是一组地址

TR_IS_NOT_DIRECTED?将一个调用者提供的变量设置为一个布尔值,它表示一给定Token Ring地址是否既不是一个函数地址也不是一组地址

TR_IS_SOURCE_ROUTING?将一个调用者提供的变量设置为一个布尔值,它表示一给定Token Ring地址是否是一源路由地址

 

 

 

原创粉丝点击