NdisWritePciSlotInformation

This function writes a specified number of bytes to the PCI configuration space for an NIC on the PCI bus.

At a Glance

Header file: Ndis.h
Windows CE versions: 2.0 and later

Syntax

ULONG NdisWritePciSlotInformation(
IN NDIS_HANDLE
NdisAdapterHandle, IN ULONG SlotNumber,
IN ULONG
Offset, IN PVOID Buffer, IN ULONG Length );

Parameters

NdisAdapterHandle
Specifies the MiniportAdapterHandle passed in to the MiniportInitialize function and to most other MiniportXXX functions.
SlotNumber
Specifies the slot number of the NIC on the I/O bus.
Offset
Specifies the byte offset within the PCI configuration space at which to begin transferring the caller-supplied configuration information.
Buffer
Pointer to a caller-allocated buffer containing the PCI configuration information to be written.
Length
Specifies the size, in bytes, of the buffer at Buffer and, therefore, how many bytes of PCI configuration information to write.

Return Values

Returns how many bytes of caller-supplied data it wrote.

Remarks

This function writes PCI configuration information for an NIC. However, drivers of NICs on PCI buses call the NdisImmediateReadPciSlotInformation, NdisReadPciSlotInformation, or NdisMPciAssignResources function far more frequently than this function.

When an NIC driver finds its device on a PCI bus with the Ndis( Immediate )ReadPciSlotInformation function or by retrieving information from the \DriverName\Parameters key in the registry, that driver can call NdisMPciAssignResources to determine the bus-relative configuration parameters to use in subsequent calls to other NDIS configuration functions. If NdisMPciAssignResources returns values that require the driver to reconfigure its device on the bus, it can call this function.

This function transfers the same type of bus-relative PCI configuration information as the NdisImmediateWritePciSlotInformation function. However, callers of this function pass the MiniportAdapterHandle passed in to the MiniportInitialize function, rather than the WrapperConfigurationContext handle.

The caller is responsible for releasing the memory at Buffer when this function returns control.

A driver that calls this function can run at IRQL <= DISPATCH_LEVEL. Usually, callers are running at IRQL PASSIVE_LEVEL.

See Also

NdisFreeMemory, NdisMMapIoSpace, NdisMPciAssignResources, NdisMRegisterInterrupt, NdisMRegisterIoPortRange, NdisMSetAttributes, NdisMSetAttributesEx, NdisReadPciSlotInformation