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