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地址是否是一源路由地
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章