NDIS function simple manual

zhaozj2021-02-16  52

Function Description No upper function DriverEntry connected miniport activated by the operating system to call and initialize the miniport driver MiniportAllocateComple called to indicate previous call NdisMAllocateMemoryAsync complete internal state MiniportCheckForHang check the NIC MiniportDisableInterrupt prohibited NIC Interrupt MiniportEnableInterrupt allow NIC Interrupt MiniportHalt Re-allocate and re-register NIC's resource and terminate the NIC so that it no longer uses the MiniPortHandleInterRupt extension to complete the I / O interrupt function. MINIPORTINIALIZE ENTERTINGMINIPORTITISR is used as the NIC interrupt service routine to run miniportQueryInformation in high weight MINIPORTQUERYINFORMATION driver performance and current status MiniportReconfigure unused MiniportReset to issue a NIC receives a hardware reset MiniportReturnPacket packet from an upper layer, before the packet is passed up by calling the function package NdisMIndicateReceivePacket MiniportSend If the driver does MiniportSendPadcets or MiniportWanSend function, It is used to pass a package through the NIC to the network miniportsendPackets to pass a group package to the network miniportsetInformation transform (set) About micro-port driver or its NIC information MiniPortShutdown When the system is temporarily closed, the NIC is restored to the initial state. MINIPORTSYNCHRONIZEISR Synchronize the resource shared with MiniPortISR or MiniPortDisableInterrupt.

If you have a NIC driver function running under DIRQL, the MiniPortISR or MiniPortDisableInterRupt function is shared by the driver. You need this function MiniPostTimer if the micro-port NIC does not generate an interrupt, which is used to poll the NIC's status MiniPortTransferData will be received by the NIC. Content Copy to a given package buffer MiniPortWansend If the driver controls WAN NIC, send a package to the network to connect to the micrograph to activate and initialize the micro-port driver miniportallocateComplete call it by the operating system call. to indicate the previous call NdisMAllocateMemoryAsync has completed the internal state MiniportChecKForHang check the NIC MiniportCoActivateVc activate a virtual connection (VC) MiniportCoCreateVc as a VC established VC state MiniportCoDeactivateVc to state a VC release of VC MiniportCoDeleteVc delete a VCMiniportCoRequest query micro-port driver ability and current Status or change (setting) Information about micro-port drivers or its NIC information miniportcosendpackets Send a set of packages on the network for miniPortDisableInterrupt to disable a NIC generating interrupt MiniportenableInterRupt allows a NIC to interrupt Miniporehalt to reclaim and cancel the resources of Nic, and terminate NIC to make it no longer using the MiniPortHandieInterrupt extending the implementation of the I / O interrupt function for the implementation of the I / O interrupt function NICMINIPORTISR as the NIC interrupt service routine running miniportreconfigure in high weight, MiniportReconfigure unused a hardware reset miniportReturnPacket receives a package from the upper layer This package is the MINIPORTSHUTDOWN that is previously passed by calling NDismCoIndicateRecePacket. When the system is turned off, restore NIC to its initial status MiniportSynchronizpisr Synchronize access to MiniPortISR or MiniPortdisableint Errupt shared resources, if there is a NIC driver function running under DIRQL with the MiniPortISR or MiniPortDisableInterRupt function shared resource for the driver MiniPostTimer if the micro-port NIC does not generate an interrupt, polls a NIC status MiniPortwansend if the driver controls WAN NIC, passed Network interface card Send a package to the network initialization and registration function NDISMINITIALIZEWRAPPER NDIS library data structure NDISMREGISTERMINIPORT provides NDISTATISTRIBUTES to NDISMSetAttributes to NDISTAttributes Report the NDIS library to report the NIC supported by micro-port drivers. And pass the handle of the environmental area of ​​the micro port. NDIS will pass this handle to the MINIPORTXXX function NDismSetatteributesex in addition to NDISMSetAttribute, which changes the default NIC timeout action, and allows a micro-port to specify some additional flags. A driver, such as a NDIS intermediate layer driver or a non-serialized micro-port driver, if you must specify one or more such markers, you must call this function instead of NDISMSetAttributeSndismGetDejectProperty to retrieve the device object, this object is It is used to create a communication with NIC through a bus driver.

For example, USB and IEEE 1394 bus drivers NDismQueryadapterResources returns a NIC hardware resource list NDismQueryInformationComplete indicates that NDIS previous MiniporeQueryInformation operation is completed. No connection is only reported NDIS miniport calls NdisMSetInformationComplete library, MiniportSetInofrmation previous operation has been completed, only NdisOpenConfiguration connectionless miniport calls a caller can be used to invoke NdisReadConfiguration, NdisWriteConfiguration, NdisOpenConfigurationByIndex NdisOpenConfigurationByName or handle a given open NdisOpenCanfigurationByIndex One sub-key of the primary key value in the registry, and this primary key is the handle of the caller to specify NDisopenConfigArationByname to open a given sub-key of the primary key in a given open registry. This primary key is to specify the handle provided by a caller to read the key value of the specified key name stored in the registry in the registration table by calling NDisOpenConfiguration. The key value will pass to NDisreadConfigrationnWriteConfiguration Use by calling NDisopenconfiguration parameters handle obtained will write to the registry keys, a key pass NdisWriteConfigurationNdisCloseConfiguration closed and opened by calling NdisOpenConfiguration registry handles NdisMRegisterAdapterShutdownHandler registered a NIC Miniportshutdown functions provided by the driver, it is called NDIS_INIT_FUNCTION specify when the system will be shut down A driver function starts running ndis_pageable_function only when initialization indicates that a driver function is a canable code hardware setting function NDISReAdeisaSlotinformation reads the EISA NIC slot information and copies it to a cache provided by the NIC driver. NDISReADeisaSlotInformationEx is a support. You can select the settings of the EISA NIC to read slot information and information about a series of functions, and copy these settings to the cache provided by the NIC driver. NdisimMediateReadpcislotinformation is set from a specified PCI device. A typical NdisimMediateWritePcislotInformation is written to a specified PCI device byte NdisimMediateWritePcislotInformation to a specified PCI device. NDISMPCIASMPCIASSOURES Returns a list of resource lists declared by the PCI device NdisreadpcisLotinformation Ndisreadpcislotinformation reads one from a set section of a specified PCI device The byte of the specified length NdisWritePcislotinformation is written to a specified PCI device setting section NDisreadpcmciaAttributeMEMory to read the NIC from the PC card from the properties memory. NDisWritepcmciaAttributeMore is a PC card NIC to attribute memory Write the setup parameters related to the bus NdisreadNetworkAddress Returns the network address that can be set,

The I / O port function NdisMRegisterIoPortRange NIC stored in the registry for use NdisRawReadPortXxx and NdisRawWriteportXxx function to create I / O when it is in the NIC installed in the machine access port NdisMDeregisterIoProtRange remove the earlier registered by NdisMRegisterIoPortRange the I / O port access for subsequent NdisMMapIospace Memory Map I / O Operation Map Sandle Space Memory NdiszeromappedMemory Paves Early Call NDismMapiospace Map Map The MPPedMemory will copy NDISMOVEFROMMAPEDMEMORY to copy data in the device memory mapped by NDismMapiospace in the initialization to a system space. NDISMOVETOMAPPEDMEMORY copying data from one system to the space in cache memory when the device is initialized by NdisMMapIoSpace the mapped region NdisImmediateReadSharedMemory NdisMUnmapIoSpace call release NdisMMapIoSpace mapped data read from a shared memory address before the driver calls the NdisMMapIoSpace to the cache driver NdisImmediateWriteSharedMemory data in the cache before calling NdisMMapIoSpace writing to a shared memory address NdisRawReadPortXxx a read only data from one I / O port, the specific functions include: NdisRawReadPortUchor, NdisRawReadportUlong, NdisRawReadportUshortNdisRawReadPortBufferXxx read data from an I / O port to a caching, specific functions include: NdisRawReadPortBufferUchar, NdisRawReadPortBufferUlong, NdisRawReadPortBufferUshortNdisRawWritePortXxx to one I / O port one writes data, specifically function comprising: NdisRawWritePortUchar, NdisRawWritePortUlong, NdisRawWritePortUshourtNdisRawWritePortBufferXxx the data in the cache write I / O ports, the specific function comprises: NdisRawWr ITEPORTBUFFERUCH, NDISRAWRITEPORTBUFFERULONG, NDISRAWRITEPORTBUFFERUSHORTNDISIMMEDITEREADPORTXX reads a data from an I / O port before the driver calls the NDISMREGIOPORTRANGE mapping port. The specific functions include: NDisimMediateReadportucha, NdisimMediatereadportUsh, NdisimMeduateReadportulongndisimmediateWritePortxxx Write a data to an I / O port before the driver calls the NDISMREGIOPORTRANGE mapping port. Specific functions include: NdisImmediateWritePortUch, NdisImmediateWritePortUshort, NdisImmediateWritePortUlongDMA NdisMAllocateMapRegisters related functions using DMA bus manager device allocation mapping registry NdisMAllocateShareMemory share distribution system and a DMA bus manager memory and NIC.

It is when the driver initialization to IRQL PASSIVE_LEVEL call NdisMAllocateShareMemoryAsync call it lift IRQL, e.g. MiniportHandleInterrupt function a miniport bus manager DMA the NIC allocate shared memory NdisMCompleteBufferPhysicalMapping released earlier as a bus master DMA operations invoked mapping register NdisMStartBufferPhysicalMapping used table. NDISMCOMALLETEMATRRREGISTERS DMALOMATEMATRASFER is called only in DMA initialization NDISMCOMPLETEDMATRRASFER indicates that the NDIS library has completed NDISMDEREGISTERDMACHANNEL to release its declaration NDisflushBuffer before sending data to NIC or from NIC or from NIC or from NIC or from NIC or from NIC or from NIC or from NIC or from NIC or from NIC. Data. Calling it to ensure that NdisgetCachefillSize returns the microprocessor's Cache boundary between the cache and host physical memory running in the bus manager DMA. DMA the NIC driver can use the information returned by this function to avoid the DMA transfer when the cache is disconnected NdisMFreeMapRegisters release DMA bus manager map registry, which is assigned by the early release early NdisMAllocateMapRegisters NdisMFreeSharedMemory NdisMAllocateSharedMemory or allocated by the NdisMAllocateSharedMemoryAsync Memory NDISMINIALIZESCATTERGATHERDMA For the use of the DMA driver, the system resource is reserved, only the NDISMREGISTGISTGERDMACHANNEL, which is only non-serving or facing the micro-port call NDISMREADDMACUNTER read system DMA Manager, NDISMREGISTGERDMACHANNEL, establishes a DMA channel Control NDismSetupdmatransfer for the future. DMA delivery Setting up a host system DMA controller ndismstarbufferphysicalmapping generates a physical address mapping for a bus manager DMA operation, calling NDISMALLOCATEMAPREGISTERS for DMA initialization, NDISMUPDATESHAREDMEMORY, make sure to read from the shared memory area when the bus manager DMA operation The data taken is the latest NDisQueryMapRegisterCount Returns all possible maps of mapping registry. The driver call NDISQUERYMAPREGISTERCount is called before calling NDISMALLOCATEMAPREGISTERSTERCOUNT to select the actual assignment How much registry interrupt handler NDISMDEREGISTERRUPT is an interrupt handler to stop reception interrupt. Operating System Disconnects NIC Interrupt Connection NDismRegisterInterRupt Connecting Micro-Port Interrupt Service Functions (MiniPortisr) and Its Interrupt Generated by Its NIC NDismysynchronizeWithinterRupt Any NIC driver function sharing resource with MiniPortISR or MiniPortDisableInterrupt function must be synchronized to access these Resources to prevent contention. By calling ndismysynchronizewithinterrupt and passing an address of a miniPortsynchronizeISR function to synchronize the function with MiniPortISR and MiniPortDisableInterrupt.

MiniportSynchronzeISR running on DIRQL, so it can safely access the shared resource synchronization functions NdisMCanceltimer cancel a clock NdisMInitializeTimer initialized earlier by the NdisMSetTimer set a clock object and connected NdisMSetTimer set a clock object with a MiniportTimer function stops NdisMSetPeriodicTimer disposed after a specified interval Every time the clock is stopped after a specified time, or until NDismCanceLtimer is called, NDISMSLEP will stop NDISMSLEP to cause the caller of the caller to block the specified interval. When the driver is initialized or when the adapter is stopped, call NDISMSLEP. For example, when the NIC is waiting for the initialization. NDismSleep is only called NDISSTALLEXECUTION under IRQL PassiveL_level to cause the caller's thread to stop a specified interval, no more than 50 microseconds. You cannot use NDismSleep, NDISSTALLEXECUTION is only called NdisInitializeEvent in an elevated IRQL to generate and initialize an event ndisseTevent used to synchronize the driver operation NDisseTestEvent to specify the specified event NDisReteTevent Reset the specified event to the non-signal state NdiswaITEvent causes the caller waiting. When the specified event is indicated or specified, NdisAllocateSpinLock initializes Ndis_SPIN_LOCK type variables, which is used to synchronize the resource shared between the non-ISR driver function. NDISFREESPINLOCK releases a spin ndisacquirespinlock, which is initialized during the call. A spin lock is obtained to protect access between a shared resource between non-ISR driver functions running in an SMP security mode. Running the micro-port under IRQL

And must MiniportISR MiniportDisableInterrupt synchronization function by calling NdisMSynchronizeWithInterrupt, and also runs a DLRQL MiniportSynchronizeISR function of synchronizing access to shared resources NdisMCoIndicateStatus state function to indicate a change in binding protocol for a connected state in the NIC or network interface card (NIC) on The state change of the specified virtual connection (VC) ndismindicateStatus indicates that the NIC state has changed to the NDIS library, which is not connected to the micrograph. NdisMSetInformationComplete completed early indication MiniportSetInformation call has been completed without transmitting and receiving functions NdisMIndicateReceivePacket miniport indicates a connection to the associated upper indicative of one or more packets NdisMArcIndicateReceiveNdisMEthIndicateReceiveNdisMFddiIndicateReceiveNdisMTrIndicateReceive specified media type of packet is indicative of a packet being received NdisMArcIndicateReceiveCompleteNdisMEthIndicateReceiveCompleteNdisMFddiIndicateReceiveCompleteNdisMTrIndicateReceiveComplete receiving operation has been completed early indication NdisMsendComplete The package transmission operation has been completed, using it ndismsendResourceSavailable when an early MiniPortSend function is asynchronous, indicating NDIS libraries, and the micro-port driver has resources available to send operations. If the micro-port completes a synchronous transmission, call this function in its MiniPortsend function, or when it detects an asynchronous sending operation, it is called in its MiniPortHandleInterRupt function.

If the driver does when a call transmit operation NdisMSendComplete unfinished, NdisMsendResourcesAvailable is invoked before an early indication NdisMTransferDataComplete NDIS library MiniportTransferDate request is completed, this function is used when a previous call to the function returns MiniportTransferData NDIS_STATUS_PENDING for transmission and reception is connected miniport The function ndismcoindicateReceivePacket indicates one or more packages to the upper layer, according to each VC indicator package NDismCoSendComplete indicates the earlier (OOB) data macro ndis_oob_data_from_packet returned a point to a given package description by calling the package sending operation initiated by calling MiniPortCoSendPackets. pointer NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO OOB data block connected symbol from one given packet descriptor connected OOB data block return MediaSpecificInformation pointer and SizeMediaSpecificInfo value NDIS_GET_PACKET_STATUS from a given package described OOB data block symbols connected to the return status value NDIS_GET_PACKET_TIME_TO_SEND from a Returns Timetosend Value Ndis_SET_PACKET_HEADER_SIZE in the OOB data block connected to the given package descriptor NDIS_SET_PACKET_HEADER_SIZE to set a Headersize value ndis_set_packet_media_specific_lnfo set with a given package descriptor connected to a given package descriptor. OOB The MediaspecificInFormation pointer in the data block NDIS_SET_PACKET_STATUS NDIS_SET_PACKET_STATUS sets the OOB data block connected to a given package descriptor before a driver is called NDISM (CO) inderecateivepacket or a driver's MiniPort (CO) SendPacket function returns to control. The status value. NDIS_SET_PACKET_TIME_RIS_SET_PACKET_TIME_RECEIVED Set the TIMERECEIVED value ndis_set_packet_time_sent setting with a given package descriptor NDIS_SET_PACKET_TIME_SENT Set the TimeSent Value Pack and Cache Processing Function in the OOB Data Block connected to a given package descriptor NDisallocatePacketPool Assignment and initialize an undistributable pool Piece. The caller provides the number of NdisallocatePacketPoolex assignments and initializes a block that is not pagan in the number of NdisallocatePacketPoolExlex, which requests the number of deposited package descriptors and bytes. And provide the number of request packet descriptors and the size of each fixing package in bytes, the caller provides the number of packet descriptors for saving the overflow state NdisallocatePacket allocated a fixed size in the pool returned by NdisallocatePacketPool. Package Descriptor NDISDPRALLOCATEPACKET When the caller runs under IRQL Dispatch_level, allocate and initialize a packet descriptor ndisallocateBufferPool Returns a caller can use NDisAllocateBuffer to assign a cache descriptor's handle NDisallocateBuffer Create a creating a specified missed missed memory block Map the cache descriptor for the false range.

You need to give a handle NdisadjustBufferLength returned by NdisAllocateBufferPool Modify a given cache descriptor Specify the length ndisbufferLength Returns a given map cache to the length of the byte. NDisbuffervirtualAddress If the given cache descriptor gives the physical page given the physical page given by the given cache descriptor To system space, return the basic virtual address of a cache mapped by a given cache descriptor, and map this physical page to the system space, nDiscopybuffer creates a cache descriptor for the specified memory block NDiscopyFromPackettopet from a package to another The specified number of bytes, given a specified source package and a destination package and starting position of each package NDiscreatelookaheadBufferfromsharedMemory returns a cache that shares a memory block with the bus manager DMA NIC. It allows the driver to map mode read-only pre-separation buffer receiving data indicating a direction to the relevant part of the protocol buffer by the call release NdisDestroyLookaheadBufferFromSharedMemory NdisCreateLookaheadBufferFromSharedMemory obtained NdisQueryPacket returns a set of chains and describes a large package of the pointer to the information returned by one NdisQueryBuffer The base address of a cached virtual address mapped to the descriptor map and the length NDisQueryBufferoffset Returns the base address of a cached virtual address mapped in a given cache descriptor. NDisgetFirstBufferFromPacket returns the first cache on the package. Descriptor and virtual address, as well as the length of the first cache and the total length of all caches (to prevent segmentation) NDisgetNextBuffer returns to give a given cache descriptor chain Current Cache Descriptor NDisgetBufferphysicalAraysize to a given cache descriptor, return The number of caches of the physical blocks that are not adjacent. Bus management DMA NIC is called to determine the distribution and the number of NDIS_PHYSICAL_ADDRESS structure NdisGetPacketFlags filled before calling NdisMStarBufferPhysicalMapping if any, returns in a given package, the flag NdisFreePacketPool set by the protocol driver freed by the caller NdisAllocatePacketPool assigned a non-sort Pool NDisPacketPoolusage Returns the number of NDisfreePacket Releases NdisfreePacket Release Trolls NdisAllocatePacket Release Touch NdisLlOcatePacket Release The NDISDPRFREEPACKET assigns internal synchronization for the access package, and the caller is running in IRQL Dispatch_level, release the driver Assigned package descriptor and return it to idle list ndisfreebufferpool release call NDisAllocateBufferPool obtained by NdisFreeBuffer release call NdisAllocateBuffer gets the cache descriptor NDischainBufferatback to give a given cache descriptor chain to a given cache descriptor link table Unmatched NdisunchainBufferatFront Removes the header of the linked list from a given package and returns a pointer to this cache descriptor NdisunchainBufferatback removes the tail with a given cache descriptor next, and returns to this cache description Pointer NdisreInReInitializePacket removes all phase chains from a given package and reinitializes it to re-set a number of gives a number of gives a valid number to re-use the NdisRecalCulatePacket to make the next call ndisquerypacket recalculate a number ndis_buffer_linkage The pointer of the descriptor is returned to a pointer to the link being linked.

This macro allows a driver that does not have to provide its own cache descriptor link to the assigned cache descriptor queuing ndis_buffer_to_span_pages to determine how many physical pages for a given cache to use how much physical page memory function ndisallocateMemory will reside in the specified address range (no page) System space memory allocates and / or assigns ndisallocateMemoryWithtag as a non-Cache mode in a physical continuous allocation method, which is called NdisAllocateMemory, which is different that the caller provides a tag to track the memory assignment of the driver to track the specified number of a memory block. Characters The same number of characters in another memory block compare ndisfillmemory fills a caller with a caller with a caller NDisfreeMemory release early memory block NDISMOVEMEMORY assigned by NDisLlocateMemory From a quantitative byte. Copy to another Ndiszeromeomory Initialize a pre-allocated list with 0 filling memory block ndisinitializenPagedLookasidelist, after initialization, you can assign or bring a list of fixed-size block NDisallocateFromNPagedLookasidelist from a predefined predefiguration from a pre-allocated list. The first item is removed from the list header. If the pre-allocated list is empty, then allocate a project ndisdeletenPagedLookasiDelist from an in-line pitch NdisDeleTenPagedLookasiDelist to remove NdisFreetonPageDlookasidelist in the system NdisFreetonPagedLookasidelist to return Ndisinitializelisthead to initialize a sequential, interlock, single-link table The head NdisinterLockedInsertTaillist is inserted into a project. It is usually a package to a tail of a double-linked list, which makes it possible to synchronize access list in a multiprocessor security mode NdisinterLockedRemoveHeadList from the header to delete a project, which makes it possible to securely Synchronous Access List NdisinitializesListHead Initialize a sequential, interlocked, single-linked table NdisinterLockedPopENTRYSLISL from one order, single-tame list, NDisinterLockedPushenTrySlist in one order, single-tame table header plug into a project ndisqueryDepthslist Returns one For a given order, the current item number system information function ndissyStemprocessorCount is determined to run on a single processor or multiprocessor.

A NDIS driver is in the initialization before allocation resources, calling this function NDisgetCurrentProcessorCounts Returns the number of processors currently available, the driver uses it to determine the use of the CPU NDisgetCurrentProcessorcPuusage Returns the current processor usage in a percentage method NdisgetCurrentsystemTime Returns the current system time, used to set the timestamp NDisgetsystemuptime Returns the time value passed since the start of the system, allocate and open a NIC micro-port written to data in microseconds, this file is driven by one drive. The WIN32 application provided by the program displays NDISMWRITELOGDATA to use and display the log for the driver, and the information provided by the driver is written to the log file ndismflushlog clear log file NDismcloSelog Release the resources used by NDISWRITEERROLOGENTRY I / O Error log file Write a string function NDISANSISTRINGTOUNICODESTRING Transforms a given quantity ANSI string into a certain number of Unicode strings NDisequalansistring compares two ANSI strings and returns a value indicating whether they are equal to NDISEQUALSTRING in the operating system default The character set, compares whether the two strings are equal to the two Unicode strings and return a value indicating whether the value of ndisfreestring is released to cache string Ndisinitanstring initializes an ANSI string ndisinitializestring as a length string allocation The storage area, and initializes the default character set in the system to initialize a Unicode string ndisprintString In the debug window Display the specified string ndisunicateStringToanstruing to convert a given Unicode string into ansi string ndisupcaseunicodeString will give a given Unicode string The copy is converted to the uppercase form, and the returned string file function ndisopenfile returns a handle of the open file NDismapFile If the file is not mapped, map an open file to a tune NDISUNMAPFILE releases NDISUNMAPFILE in the cache, NDISUNMAPFILE, releases NDisClosefile released by NDISMAPFile, and releases the handle returned by ndisopenfile, and the release file is opened to file Contex's memory address function ndisgetPhysicalAddResshigh returns a high level of a given physical address. Some NDisgetPhysicalAddResslow returns a given physical address Low part of NDisSetPhysicalAddResshigh Setting a given physical address to a given value ndissetPhysicalAddRESSLOW Set a given physical address low section to a given value ndis_physical_address_const initialize a physical address The static constant type variable function ndisretriveulong Removes a Ulong value from the source address, avoiding alignment error ndisstoreulong stores a ULONG value to a specified address, avoiding alignment error ndisinterlockedAddulong with an atomic operation with a unsigned long value with a given unsigned integer plus,

转载请注明原文地址:https://www.9cbs.com/read-28289.html

New Post(0)