Previous Next

NdisReadEisaSlotInformation

This function is obsolete for Windows XP and later, and is no longer supported.

NdisReadEisaSlotInformation returns EISA configuration information for a NIC on an EISA bus.

VOID
  NdisReadEisaSlotInformation(
    OUT PNDIS_STATUS  Status,
    IN NDIS_HANDLE  WrapperConfigurationContext,
    OUT PUINT  SlotNumber,
    OUT PNDIS_EISA_FUNCTION_INFORMATION  EisaData
    );

Parameters

Status
Pointer to a caller-supplied variable in which this function returns the status of the call as one of the following:
NDIS_STATUS_SUCCESS
The NIC driver can examine the buffered configuration data to determine whether a NIC that it supports has been found and, if so, can use the bus-relative configuration values as parameters to certain NdisXxx initialization functions.
NDIS_STATUS_RESOURCES
NDIS could not allocate the resources it needs to collect the EISA configuration information.
NDIS_STATUS_FAILURE
This is a default status, returned if no NIC can be found on an EISA bus or if the caller supplied an invalid parameter. For example, if the caller set the AdapterType to something other than NdisInterfaceEisa when it called NdisMSetAttributes or NdisMSetAttributesEx, NdisReadEisaSlotInformation returns this status.
WrapperConfigurationContext
Specifies the handle input to MiniportInitialize.
SlotNumber
Pointer to a variable in which this function returns the slot number of a NIC found on the EISA bus if this call is successful.
EisaData
Pointer to a caller-allocated buffer, which must be at least sizeof(NDIS_EISA_FUNCTION_INFORMATION).

Headers

Declared in Ndis.h. Include Ndis.h.

Comments

NdisReadEisaSlotInformation reads standard EISA bus configuration information for a NIC that it finds on an EISA I/O bus and copies the bus-relative configuration information into a buffer.

If the call to NdisReadEisaSlotInformation succeeds, this function returns information in the caller-supplied buffer at EisaData, formatted as an NDIS_EISA_FUNCTION_INFORMATION structure.

The NDIS_EISA_FUNCTION_INFORMATION structure is defined as follows:

typedef struct _NDIS_EISA_FUNCTION_INFORMATION {
    ULONG CompressedId;
    UCHAR IdSlotFlags1;
    UCHAR IdSlotFlags2;
    UCHAR MinorRevision;
    UCHAR MajorRevision;
    UCHAR Selections[26];
    UCHAR FunctionFlags;
    UCHAR TypeString[80];
    EISA_MEMORY_CONFIGURATION EisaMemory[9];
    EISA_IRQ_CONFIGURATION EisaIrq[7];
    EISA_DMA_CONFIGURATION EisaDma[4];
    EISA_PORT_CONFIGURATION EisaPort[60];
    UCHAR InitializationData[60];
} NDIS_EISA_FUNCTION_INFORMATION, *PNDIS_EISA_FUNCTION_INFORMATION;

The members of this structure correspond to the standard EISA configuration function block, as follows:

Member Meaning
CompressedId Specifies the EISA compressed identification for the device.
IdSlotFlags1 Specifies byte 0 identifier and slot information.
IdSlotFlags2 Specifies byte 1 identifier and slot information.
MinorRevision Specifies the .cfg file minor revision level.
MajorRevision Specifies the .cfg file major revision level.
Selections[26] Specifies an array for 26 selections.
FunctionFlags Specifies function flags.
TypeString[80] Specifies an array for a type and subtype ASCII string.
EisaMemory[9] Specifies an array in which each element is an EISA_MEMORY_CONFIGURATION structure, defining the bus-relative device memory range.
EisaIrq[7] Specifies an array in which each element is an EISA_IRQ_CONFIGURATION structure, defining the bus-relative device interrupt.
EisaDma[4] Specifies an array in which each element is an EISA_DMA_CONFIGURATION structure, defining the bus-relative DMA capacity, timing, and channel number, if any.
EisaPort[60] Specifies an array in which each element is an EISA_PORT_CONFIGURATION structure, defining the bus-relative I/O port ranges of the device.
InitializationData[60] Specifies an array of EISA initialization data.

NIC drivers call NdisReadEisaSlotInformation to identify their respective adapters in the current platform. When a particular driver’s NIC is found, the bus-relative configuration parameters returned at EisaData are passed in subsequent calls to functions such as NdisMRegisterInterrupt (EisaIrq), NdisMMapIoSpace (EisaMemory), and NdisMRegisterIoPortRange (EisaPort).

After consuming the returned information, the caller of NdisReadEisaSlotInformation is responsible for releasing the memory allocated at EisaData.

Callers of NdisReadEisaSlotInformation run at IRQL = PASSIVE_LEVEL.

See Also

MiniportInitialize, NdisFreeMemory, NdisMMapIoSpace, NdisMRegisterInterrupt, NdisMRegisterIoPortRange, NdisMSetAttributes, NdisMSetAttributesEx, NdisOpenConfiguration, NdisReadEisaSlotInformationEx