NdisReadEisaSlotInformation function

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.

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

Syntax

VOID NdisReadEisaSlotInformation(
  _Out_ PNDIS_STATUS                    Status,
  _In_  NDIS_HANDLE                     WrapperConfigurationContext,
  _Out_ PUINT                           SlotNumber,
  _Out_ PNDIS_EISA_FUNCTION_INFORMATION EisaData
);

Parameters

  • Status [out]
    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 [in]
    Specifies the handle input to MiniportInitialize.

  • SlotNumber [out]
    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 [out]
    Pointer to a caller-allocated buffer, which must be at least sizeof(NDIS_EISA_FUNCTION_INFORMATION).

Return value

None

Remarks

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.

Requirements

Target platform

Universal

Version

Not supported for NDIS 6.0 drivers in Windows Vista. Obsolete for Windows XP.

Header

Ndis.h (include Ndis.h)

Library

Ndis.lib

IRQL

PASSIVE_LEVEL

See also

MiniportInitialize

NdisFreeMemory

NdisMMapIoSpace

NdisMRegisterInterrupt

NdisMRegisterIoPortRange

NdisMSetAttributes

NdisMSetAttributesEx

NdisOpenConfiguration

NdisReadEisaSlotInformationEx

 

 

Send comments about this topic to Microsoft