Share via


NDIS Library Functions Used by Protocol Drivers

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

In addition to the NdisXxx listed here, highest-level NDIS protocol drivers that are Windows 2000 and later transport protocols call the TdiXxx functions described later.

  • NdisAcquireReadWriteLock
    Acquires a lock that the caller uses for either write or read access to the resources that are shared among driver threads.

  • NdisAcquireSpinLock
    Acquires a spin lock so the caller can synchronize access to resources shared among non-ISR driver routines in a multiprocessor-safe way.

  • NdisAdjustBufferLength
    Modifies the length specified in a given buffer descriptor that was allocated or copied by the caller.

  • NdisAllocateBuffer
    Creates a buffer descriptor describing a specified virtual (sub)range within an already allocated, nonpaged memory block, given a handle returned by NdisAllocateBufferPool or NdisAllocateMemoryWithTag.

  • NdisAllocateBufferPool
    Returns a handle with which the caller can allocate buffer descriptors with NdisAllocateBuffer.

  • NdisAllocateFromBlockPool
    Allocates memory from a block of memory pool.

  • NdisAllocateFromNPagedLookasideList
    Removes the first entry from the given lookaside list head. If the lookaside list currently is empty, an entry is allocated from nonpaged pool.

  • NdisAllocateMemory
    This function is obsolete. Use NdisAllocateMemoryWithTag.

  • NdisAllocateMemoryWithTag
    Allocates resident (nonpaged) system-space memory.

  • NdisAllocatePacket
    Allocates a packet descriptor, given a handle returned by a preceding call to NdisAllocatePacketPool.

  • NdisAllocatePacketPool
    Allocates and initializes a block of nonpaged packet pool, given the number of packet descriptors and how many bytes each fixed-size packet descriptor should contain.

  • NdisAllocatePacketPoolEx
    Allocates and initializes a block of storage for a pool of packet descriptors.

  • NdisAllocateSpinLock
    Initializes a variable of type NDIS_SPIN_LOCK, used to synchronize access to data shared among driver routines. An initialized spin lock, for which the caller supplies resident storage, is a required parameter to the Ndis..SpinLock and NdisInterlockedXxx functions.

  • NdisAnsiStringToUnicodeString
    Converts a given counted ANSI string into a counted Unicode string.

  • NdisBufferLength
    Returns the length in bytes of a given mapped buffer.

  • NDIS_BUFFER_LINKAGE
    Returns a pointer to a linked buffer, given a pointer to an NDIS buffer descriptor.

  • NdisBufferVirtualAddress
    Returns the base virtual address for the buffer mapped by a given buffer descriptor. It maps the physical pages described by the given buffer descriptor onto system space, if they are not already mapped to system space. Drivers should call NdisBufferVirtualAddressSafe instead of NdisBufferVirtualAddress. NDIS 5.1 miniport drivers must call NdisBufferVirtualAddressSafe instead of NdisBufferVirtualAddress.

  • NdisBufferVirtualAddressSafe
    NdisBufferVirtualAddressSafe is the safe version of NdisBufferVirtualAddress. Unlike NdisBufferVirtualAddress, NdisBufferVirtualAddressSafe will not cause a bug check if system resources are low or exhausted. Drivers should call NdisBufferVirtualAddressSafe instead of NdisBufferVirtualAddress.

  • NdisCancelTimer
    Cancels the immediately preceding call to NdisSetTimer if the interval given to NdisSetTimer has not yet expired.

  • NdisChainBufferAtBack
    Links a given buffer descriptor at the end of the chain of buffer descriptors for a given packet descriptor.

  • NdisChainBufferAtFront
    Links a given buffer descriptor at the start of the chain of buffer descriptors for a given packet descriptor.

  • NdisClAddParty
    Adds a party on a connection-oriented client's multipoint virtual circuit (VC).

  • NdisClCloseAddressFamily
    Releases the association between a connection-oriented client and a call manager's registered address family for a particular NIC to which the client is bound.

  • NdisClCloseCall
    Requests that a connection-oriented client's call be torn down.

  • NdisClDeregisterSap
    Releases a connection-oriented client's registered SAP on which it could receive offers of incoming calls.

  • NdisClDropParty
    Removes a party from a connection-oriented client's multipoint VC.

  • NdisClGetProtocolVcContextFromTapiCallId
    Retrieves the client context for a virtual connection (VC) identified by a TAPI Call ID string.

  • NdisClIncomingCallComplete
    Returns a connection-oriented client's acceptance or rejection of an offered incoming call for which the client previously returned NDIS_STATUS_PENDING.

  • NdisClMakeCall
    Sets up an outgoing call on a VC created by a connection-oriented client.

  • NdisClModifyCallQoS
    Requests a client-initiated change in the quality of service on an active VC.

  • NdisClOpenAddressFamily
    Registers a set of client-supplied functions for connection-oriented communications through a NIC to which the client is bound, using the specified address family registered by a particular call manager.

  • NdisCloseAdapter
    Releases the binding set up with NdisOpenAdapter, given the binding handle that it previously returned.

  • NdisCloseConfiguration
    Releases the handle returned by NdisOpenProtocolConfiguration after the caller has retrieved configuration information and/or, possibly, stored additional information about itself in the registry.

  • NdisClRegisterSap
    Registers a SAP on which a connection-oriented client can receive incoming calls from a remote node.

  • NdisCmActivateVc
    Passes the call parameters, including media parameters, for a particular VC down to the underlying connection-oriented NIC driver so it can set up its NIC for transfers.

  • NdisCmAddPartyComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to add a party on an active multipoint VC.

  • NdisCmCloseAddressFamilyComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to close the CM's address family.

  • NdisCmCloseCallComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to tear down a call.

  • NdisCmDeactivateVc
    Notifies NDIS and the underlying connection-oriented NIC driver to expect no further transfers on a particular VC.

  • NdisCmDeregisterSapComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to release a previously registered SAP on which the client could receive incoming call notifications.

  • NdisCmDispatchCallConnected
    Notifies NDIS and the connection-oriented client that data transfers can begin on a VC that the call manager created for an incoming call initiated on a remote node.

  • NdisCmDispatchIncomingCall
    Notifies the connection-oriented client of an incoming call offer on a SAP previously registered by that client with the call manager.

  • NdisCmDispatchIncomingCallQoSChange
    Notifies the connection-oriented client that a request to change the quality of service on that client's active connection has been received over the network.

  • NdisCmDispatchIncomingCloseCall
    Tells a connection-oriented client to tear down an active or offered call, usually because the call manager has received a request from the network to close the connection.

  • NdisCmDispatchIncomingDropParty
    Notifies a connection-oriented client that it should remove a particular party on the given mulipoint VC, usually because the call manager has received a close-call request that was initiated at the remote node.

  • NdisCmDropPartyComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to remove a party from an active multipoint VC.

  • NdisCmMakeCallComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to make an outgoing call.

  • NdisCmModifyCallQoSComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to change the quality of service on an active VC.

  • NdisCmOpenAddressFamilyComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to open the CM's address family.

  • NdisCmRegisterAddressFamily
    Registers a set of call manager-supplied functions for connection-oriented communications using the specified address family and underlying NIC driver identified by the given NdisBindingHandle.

  • NdisCmRegisterSapComplete
    Returns the final status of a connection-oriented client's request, for which the call manager previously returned NDIS_STATUS_PENDING, to register a SAP on which to receive offers of incoming calls from the network.

  • NdisCoAssignInstanceName
    Assigns an instance name to a VC and causes NDIS to register a GUID (globally unique identifier) for the assigned name with Windows Management Instrumentation (WMI).

  • NdisCoCreateVc
    Sets up a connection-oriented endpoint (virtual circuit) from which a client can make outgoing calls or on which a call manager can dispatch incoming calls.

  • NdisCoDeleteVc
    Destroys a caller-created VC.

  • NdisCoGetTapiCallId
    Retrieves a string that TAPI applications can use to identify a particular NDIS virtual connection (VC).

  • NdisCompletePnPEvent
    Completes a protocol's response to a Plug and Play or Power Management event for which the protocol's PnPEventHandler function previously returned NDIS_STATUS_PENDING.

  • NdisConvertStringToAtmAddress
    Converts a Unicode string that contains an ATM address into a ATM_ADDRESS structure that a connection-oriented client can include in a set of call parameters.

  • NdisCopyLookaheadData
    Safely copies receive data indicated in a lookahead buffer to the transport protocol by the underlying NDIS driver.

  • NdisCoRequest
    Issues an OID_GEN_CO_XXX or medium-specific OID_XXX request from a client to a call manager or vice versa and/or from either protocol to the underlying connection-oriented miniport driver to which both are bound.

  • NdisCoRequestComplete
    Returns the final status of an OID_GEN_CO_XXX request, for which the client or call manager previously returned NDIS_STATUS_PENDING, to the protocol that originally issued the request.

  • NdisCoSendPackets
    Forwards a multipacket send on a particular VC to the underlying connection-oriented miniport driver for transmission over the network.

  • NdisCompleteBindAdapter
    Completes a binding operation when the driver returned NDIS_STATUS_PENDING from its ProtocolBindAdapter function.

  • NdisCompleteUnbindAdapter
    Completes a close-adapter operation when the driver returned NDIS_STATUS_PENDING from its ProtocolUnbindAdapter function.

  • NdisCopyBuffer
    Creates a buffer descriptor for a specified virtual (sub)range, given a handle for a block of already allocated memory and a pointer to the memory descriptor for the block.

  • NdisCopyFromPacketToPacket
    Copies a specified number of bytes of data from one packet to another, starting at a specified offset in a given source packet's data and copying the data to a specified offset in the target packet. Returns the number of bytes actually copied, which can be less than the requested number, depending on the source packet and specified starting offset for the copy operation.

  • NdisCreateBlockPool
    Returns the handle to a block of memory pool.

  • NdisDeleteNPagedLookasideList
    Removes a nonpaged lookaside list from the system.

  • NdisDeregisterProtocol
    Releases the resources allocated when the driver called NdisRegisterProtocol, given the protocol handle it returned at initialization.

  • NdisDestroyBlockPool
    Releases resources for a block of memory pool.

  • NdisDprAllocatePacket
    Allocates and initializes a packet descriptor when the caller is running at IRQL = DISPATCH_LEVEL, given a handle returned by a preceding call to NdisAllocatePacketPool.

  • NdisDprAllocatePacketNonInterlocked
    Allocates a packet descriptor when the caller is running at IRQL = DISPATCH_LEVEL and that caller provides internal synchronization for accessing packet pool, given a handle returned by a preceding call to NdisAllocatePacketPool.

  • NdisDprFreePacket
    Releases a driver-allocated packet descriptor and returns it to the free list when the caller is running at IRQL = DISPATCH_LEVEL.

  • NdisDprFreePacketNonInterlocked
    Releases a packet descriptor that was allocated with NdisDprAllocatePacketNonInterlocked and returns it to the free list.

  • NdisEqualMemory
    Compares a specified number of characters in one block of memory with the same number of characters in a second block of memory.

  • NdisEqualString
    Compares two strings to determine whether they are equal.

  • NdisEqualUnicodeString
    Compares two Unicode strings and returns whether they are equal.

  • NdisFillMemory
    Fills a caller-supplied buffer with the given character.

  • NdisFreeBuffer
    Releases a buffer descriptor obtained in a preceding call to NdisAllocateBuffer or NdisCopyBuffer.

  • NdisFreeBufferPool
    Releases a handle obtained in a preceding call to NdisAllocateBufferPool.

  • NdisFreeMemory
    Releases a handle that was obtained in a preceding call to NdisAllocateMemoryWithTag.

  • NdisFreePacket
    Releases a packet descriptor that was allocated from packet pool with NdisAllocatePacket and returns it to the free list.

  • NdisFreePacketPool
    Releases a handle to a block of packet pool that was allocated with NdisAllocatePacketPool.

  • NdisFreeSpinLock
    Releases a spin lock initialized in a preceding call to NdisAllocateSpinLock, usually when a driver is unloading.

  • NdisFreeString
    Frees the storage for a buffered string.

  • NdisFreeToBlockPool
    Releases memory back to a block of memory pool.

  • NdisFreeToNPagedLookasideList
    Returns an entry to the given lookaside list.

  • NdisGetBufferPhysicalArraySize
    Returns the number of physical discontiguities in a buffer, given the buffer descriptor.

  • NdisGetCurrentProcessorCounts
    Returns counts for the current processor that the driver can use to determine CPU utilization for a particular time interval.

  • NdisGetCurrentProcessorCpuUsage
    Returns how busy the current processor is as a percentage.

  • NdisGetCurrentSystemTime
    Returns the current system time, suitable for use as a timestamp.

  • NdisGetDriverHandle
    Retrieves a handle to the miniport driver that owns a bound adapter port, given a handle to the adapter port.

  • NdisGetFirstBufferFromPacket
    Returns pointers to the buffer descriptor and base virtual address for the initial buffer chained to a given packet, along with the sizes of the initial buffer and full buffer, in case the buffer is fragmented. Drivers should call NdisGetFirstBufferFromPacketSafe instead of NdisGetFirstBufferFromPacket. NDIS 5.1 miniports must call NdisGetFirstBufferFromPacketSafe instead of NdisGetFirstBufferFromPacket.

  • NdisGetFirstBufferFromPacketSafe
    NdisGetFirstBufferFromPacketSafe is the safe version of NdisGetFirstBufferFromPacket. Unlike NdisGetFirstBufferFromPacket, NdisGetFirstBufferFromPacketSafe does not cause a bug check if system resources are low or exhausted. Drivers should call NdisGetFirstBufferFromPacketSafe instead of NdisGetFirstBufferFromPacket.

  • NdisGetNextBuffer
    Returns the next buffer descriptor in a chain, given the current buffer descriptor.

  • NDIS_GET_ORIGINAL_PACKET
    Returns a pointer to a packet descriptor that the lowest-level driver in a layered stack of NDIS drivers indicated. The calling driver should access the out-of-band (OOB) data block from this original packet rather than the packet that the driver below the calling driver indicated. If the calling driver is not part of a layered stack, the returned packet descriptor will be identical to the packet that the driver below the calling driver indicated.

  • NdisGetPacketCancelId
    Returns the cancellation identifier assigned to a packet.

  • NdisGetPacketFlags
    Returns the flags, if any, set by a higher-level protocol driver in a given packet.

  • NDIS_GET_PACKET_HEADER_SIZE
    Returns the number of bytes in a received net packet header from the HeaderSize set in the NDIS_PACKET_OOB_DATA block associated with a given packet descriptor by the indicating miniport driver.

  • NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO
    Returns a pointer to buffered out-of-band information, such as packet priority, and the number of bytes in the buffer from the MediaSpecificInformation and SizeMediaSpecificInfo set in the NDIS_PACKET_OOB_DATA block associated with a given packet descriptor by the indicating miniport driver.

  • NDIS_GET_PACKET_TIME_RECEIVED
    Returns the TimeReceived timestamp from the NDIS_PACKET_OOB_DATA block associated with an indicated receive packet.

  • NDIS_GET_PACKET_TIME_SENT
    Returns the TimeSent timestamp from the associated NDIS_PACKET_OOB_DATA block associated with an indicated receive packet.

  • NdisGetReceivedPacket
    Retrieves a packet that was received from the underlying driver.

  • NdisGetRoutineAddress
    Returns the address of a routine given the routine's name.

  • NdisGetSystemUpTime
    Returns the number of milliseconds that have elapsed since the system was booted.

  • NdisGetVersion
    Returns the version number of NDIS.

  • NdisIMDeInitializeDeviceInstance
    Calls an NDIS intermediate driver's MiniportHalt function to tear down the driver's virtual NIC.

  • NdisIMGetBindingContext
    Allows an NDIS protocol to access the device context area, created by an underlying intermediate driver, for a virtual NIC to which the higher level protocol is bound.

  • NdisIMInitializeDeviceInstance
    Calls an NDIS intermediate driver's MiniportInitialize function to set up the driver's virtual NIC for I/O operations bound for an underlying NIC driver to which the intermediate driver is bound.

  • NdisIMInitializeDeviceInstanceEx
    Calls an NDIS intermediate driver's MiniportInitialize function to initialize the driver's virtual NIC and optionally to set up state information about the driver's virtual NIC for subsequently bound protocols.

  • NdisIMRegisterLayeredMiniport
    Registers an NDIS intermediate driver's MiniportXxx entry points and name with the NDIS library when the driver initializes.

  • NdisInitAnsiString
    Initializes a counted ANSI string.

  • NDIS_INIT_FUNCTION
    Marks a given driver function as initialization-only code to be discarded after the function has run once.

  • NdisInitializeEvent
    Sets up an event object during driver initialization to be used subsequently as a synchronization mechanism.

  • NdisInitializeListHead
    Sets up a queue header for a driver's internal queue, given a pointer to driver-supplied resident storage for the queue header and queue. Then, entries (usually packets) can be added to and removed from the doubly-linked queue with the NdisInterlocked..List functions.

  • NdisInitializeNPagedLookasideList
    Initializes a lookaside list. After a successful initialization, nonpaged fixed-size blocks can be allocated from and freed to the lookaside list.

  • NdisInitializeReadWriteLock
    Initializes a variable of type NDIS_RW_LOCK. An NDIS_RW_LOCK variable is used to limit write access to shared resources to one non-ISR driver thread at a time. This NDIS_RW_LOCK can allow multiple non-ISR driver threads concurrent read access to those resources. Such read access is not permitted during a write access.

  • NdisInitializeSListHead
    Initializes the head of a sequenced, interlocked, singly linked list.

  • NdisInitializeString
    Allocates a buffer for and initializes a counted string in the system-default character set, given a source string and a NULL pointer.

  • NdisInitializeTimer
    Initializes a timer object associated with a driver's timer function.

  • NdisInitUnicodeString
    Initializes a counted Unicode string.

  • NdisInitializeWorkItem
    Initializes a work-queue item with a caller-supplied context and callback routine to be queued for execution when a system worker thread is given control.

  • NdisInterlockedAddLargeStatistic
    Adds a ULONG increment value to a LARGE_INTEGER addend value.

  • NdisInterlockedAddUlong
    Adds an unsigned long value to a given unsigned integer as an atomic operation, using a caller-supplied and initialized spin lock.

  • NdisInterlockedDecrement
    Decrements a caller supplied variable of type LONG as an atomic operation.

  • NdisInterlockedIncrement
    Increments a caller supplied variable as an atomic operation.

  • NdisInterlockedInsertHeadList
    Inserts an entry, usually a packet, at the head of a doubly linked list using a caller-supplied and initialized spin lock so that access to queued entries is synchronized in a multiprocessor-safe way among driver functions.

  • NdisInterlockedInsertTailList
    Inserts an entry, usually a packet, at the end of a doubly linked list using a caller-supplied and initialized spin lock so that access to queued entries is synchronized in a multiprocessor-safe way among driver functions.

  • NdisInterlockedPopEntrySList
    removes the first entry from a sequenced, singly linked list.

  • NdisInterlockedPushEntrySList
    Inserts an entry at the head of a sequenced, singly linked list.

  • NdisInterlockedRemoveHeadList
    Removes an entry, usually a packet, from the head of a doubly linked list using a caller-supplied and initialized spin lock so that access to queued entries is synchronized in a multiprocessor-safe way among driver functions.

  • NdisMoveMemory
    Copies a specified number of bytes from one caller-supplied location to another.

  • NdisMSetAttributesEx
    Informs the NDIS library about significant features of an intermediate driver's virtual NIC and prevents NDIS from timing out sends and requests in the intermediate driver.

  • NDIS_OOB_DATA_FROM_PACKET
    Returns a pointer to the NDIS_PACKET_OOB_DATA block associated with a given packet descriptor.

  • NdisOpenAdapter
    Sets up a binding between the caller and an underlying NIC driver, given an array of medium types that the protocol driver supports, the number of elements in the supplied array, the handle already returned by NdisRegisterProtocol, a handle to a protocol-supplied context area to be passed back to the protocol in subsequent receive indications, the name of the NIC to be opened, a mask set with the caller's preferred open options, and, possibly, a pointer to some caller-supplied addressing information, as well as four caller-specified locations at which NdisOpenAdapter returns values. If the call succeeds, NdisOpenAdapter returns a binding handle for the protocol to use in subsequent NdisXxx calls that forward device I/O requests to the NIC driver, an index specifying the NIC driver's preferred medium type, and NDIS_STATUS_SUCCESS; otherwise, it returns both a general failure status and an informational error status.

  • NdisOpenConfigurationKeyByIndex
    Opens a subkey of a given open registry key designated by a caller-supplied handle.

  • NdisOpenConfigurationKeyByName
    Opens a named subkey of a given open registry key designated by a caller-supplied handle.

  • NdisOpenProtocolConfiguration
    Returns a handle for the registry key in which a protocol driver's per-adapter information is stored. This handle is a required parameter to other NdisXxx configuration functions.

  • NDIS_PACKET_EXTENSION_FROM_PACKET
    Returns a pointer to the NDIS_PACKET_EXTENSION structure associated with a packet descriptor.

  • NdisPacketPoolUsage
    Returns the number of packet descriptors currently allocated from a packet pool.

  • NdisPacketSize
    Returns the size, in bytes, of packet descriptors that are allocated with the given size that is reserved for protocols.

  • NDIS_PAGEABLE_FUNCTION
    Marks a driver function as pageable code.

  • NDIS_PER_PACKET_INFO_FROM_PACKET
    Returns a pointer to a specific type of per-packet information associated with a packet descriptor.

  • NdisPrintString
    Displays a given string in the debugging window.

  • NdisQueryAdapterInstanceName
    Retrieves the friendly name of a physical NIC or a virtual adapter to which the calling protocol is bound.

  • NdisQueryBuffer
    Retrieves the size of the range, and optionally its base virtual address, specified in a given buffer descriptor. Drivers should call NdisQueryBufferSafe instead of NdisQueryBuffer.

  • NdisQueryBufferOffset
    Retrieves the base virtual address of the range specified in a given buffer descriptor.

  • NdisQueryBufferSafe
    NdisQueryBufferSafe is the safe version of NdisQueryBuffer. Unlike NdisQueryBuffer, NdisQueryBufferSafe does not cause a bug check if system resources are low or exhausted. Drivers should call NdisQueryBufferSafe instead of NdisQueryBuffer.

  • NdisQueryDepthSList
    Returns the current number of entries in a given sequenced, singly linked list.

  • NdisQueryPacket
    Returns any or all of the following information about a given packet descriptor: a count of buffer descriptors chained to the packet descriptor, the total number of bytes in all buffers mapped by the buffer descriptor chained to the packet descriptor, the total number of physically discontiguous blocks for all such buffers, and a pointer to the initial buffer descriptor in the chain.

  • NdisQueryPacketLength
    Returns the number of bytes of data that are specified by the buffer descriptors that are chained to a given packet.

  • NdisReadConfiguration
    Reads the value of a named entry of the specified type, given the registry handle returned by NdisOpenProtocolConfiguration.

  • NdisRecalculatePacketCounts
    Resets the valid counts of chained buffer descriptors for a given packet descriptor.

  • NdisRegisterProtocol
    Registers a protocol driver's upper-edge entry points (ProtocolXxx) and name with the NDIS library, given a pointer to the NDIS_PROTOCOL_CHARACTERISTICS structure set up by the caller and the size in bytes of this structure. NDIS returns the status of the registration attempt and, if the call is successful, a protocol handle representing the driver, which can be passed in a subsequent call to NdisOpenAdapter.

  • NdisReinitializePacket
    Sets to NULL the queue head for any chained buffers in a given packet descriptor and reinitializes it for reuse.

  • NdisReleaseReadWriteLock
    Releases a lock that was acquired in a preceding call to NdisAcquireReadWriteLock.

  • NdisReleaseSpinLock
    Releases a spin lock that was acquired in a preceding call to NdisAcquireSpinLock.

  • NdisRequest
    Forwards a caller-initialized NDIS_REQUEST-type query or set request to the underlying NIC driver, given the binding handle previously returned by NdisOpenAdapter.

  • NdisReset
    Forwards a reset request to the underlying NIC driver, given the binding handle and a pointer to a variable in which the status of the reset operation is returned.

  • NdisResetEvent
    Clears the Signaled state of a given event.

  • NdisRetrieveUlong
    Retrieves a ULONG value from the source address, avoiding alignment faults.

  • NdisReturnPackets
    Releases ownership of one or more receive packets after a protocol driver has consumed the receive data.

  • NdisScheduleWorkItem
    Inserts a given work item into a queue from which a system worker thread removes the item and gives control to the callback function that the driver previously supplied to NdisInitializeWorkItem.

  • NdisSend
    Forwards a packet to the NIC driver for transmission over the wire, given the binding handle, a pointer to the packet to be sent, and a pointer to a variable in which the status of the send is returned.

  • NdisSendPackets
    Forwards a multipacket send request, possibly specifying out-of-band information for each packet in the array, such as packet priority, to the underlying driver.

  • NdisSetEvent
    Sets a given event to the Signaled state if it was not already Signaled, thereby causing waits on the event to be satisfied.

  • NdisSetPacketCancelId
    Marks a packet with a cancellation identifier that a driver can later use to cancel the pending transmission of the packet.

  • NdisSetPacketFlags
    Sets the Flags member in a given packet descriptor to the given value, before the protocol calls NdisSendPackets or NdisSend.

  • NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO
    Sets the MediaSpecificInformation and SizeMediaSpecificInfo in the NDIS_PACKET_OOB_DATA block, specifying out-of-band information associated with a protocol-allocated packet descriptor for a send request.

  • NdisSetPacketPoolProtocolId
    Associates a packet pool with a protocol.

  • NdisSetPacketStatus
    Sets status for a packet.

  • NDIS_SET_PACKET_TIME_TO_SEND
    Sets the TimeToSend timestamp in the NDIS_PACKET_OOB_DATA block associated with a protocol-allocated packet descriptor.. Setting the timestamp does not affect when the packet is actually transmitted; instead, the timestamp is used for recordkeeping. A protocol driver can use the timestamp to determine how long it takes to complete the sending of a paket.

  • NdisSetSendFlags
    See NdisSetPacketFlags.

  • NdisSetTimer
    Sets a timer object to fire after a specified interval, thereby running an associated timer function after the timer fires.

  • NdisSetTimerEx
    Sets a timer object to fire after a specified interval, thereby passing a context to and running an associated timer function after the timer fires.

  • NdisStoreUlong
    Stores a ULONG value at a particular address, avoiding alignment faults.

  • NdisTransferData
    Forwards a request that the underlying NIC driver transfer (copy) received data to a supplied packet, given the binding handle, the receive-context handle passed to the protocol when the receive was indicated, the byte offset in the indication at which to start the transfer and the number of bytes to transfer, and pointers to variables in which the status of the completed transfer operation and the number of bytes actually transferred are returned.

  • NdisUnchainBufferAtBack
    Removes a given buffer descriptor at the end of the chain of buffer descriptors for a given packet descriptor and returns a pointer to the buffer descriptor.

  • NdisUnchainBufferAtFront
    Removes a given buffer descriptor at the start of the chain of buffer descriptors for a given packet descriptor and returns a pointer to the buffer descriptor.

  • NdisUnicodeStringToAnsiString
    Converts a given counted Unicode string into a counted ANSI string.

  • NdisUpcaseUnicodeString
    Converts a copy of a given Unicode string to upper case and returns the converted string.

  • NdisWaitEvent
    Puts the caller into a wait state until the given event is set to the Signaled state or the wait times out.

  • NdisWriteConfiguration
    Writes a caller-supplied value entry in the registry, given the handle returned by NdisOpenProtocolConfiguration.

  • NdisWriteErrorLogEntry
    Allocates an error-log record, fills it in, and writes it to the I/O error log, given a binding handle for the underlying NIC, an NDIS_XXX error code, a count of caller-supplied error values, and a corresponding number of ULONGs specifying additional information about the I/O error or configuration error.

  • NdisWriteEventLogEntry
    Logs an event to the Win32 event log.

  • NdisZeroMemory
    Fills a block of memory with zeros, given a pointer to the block and the length in bytes to be filled.

Highest-level NDIS drivers that export only the lower-edge ProtocolXxx functions also can call support routines exported by other kernel-mode components. For more information about these support routines, see Summary of Kernel-Mode Support Routines.

 

 

Send comments about this topic to Microsoft