Herunterladen Inhalt Inhalt Diese Seite drucken

Phoenix Contact IBS PCI DDK UM Anwenderhandbuch Seite 136

Device driver development kit zu anschaltbaugruppen für pc-systeme mit pci-bus
Inhaltsverzeichnis

Werbung

IBS PCI DDK UM
6-6
Anhand der Funktion „ScanPciDevices" soll hier das unterschiedliche Aus-
lesen der erforderlichen Parameter verdeutlicht werden. Die fett/kursiv
markierten Textstellen sind die Aufrufe der PCI-Systemfunktionen. Die
Struktur „pPciInfo" steht mit den entsprechend eingetragenen Daten dann
den weiteren Funktionen zur Verfügung.
Windows NT: (ntsys.c)
void ScanPciDevices(PT_PCI_INFO PciInfo)
{
...
...
...
for (bus = 0; flag; bus++)
{
for (i = 0; i < PCI_MAX_DEVICES && flag; i++)
{
SlotNumber.u.bits.DeviceNumber = i;
for (f = 0; f < PCI_MAX_FUNCTION; f++)
{
SlotNumber.u.bits.FunctionNumber = f;
j = HalGetBusData (PCIConfiguration, bus, SlotNumber.u.AsULONG,
PciData, PCI_COMMON_HDR_LENGTH);
if (j == 0)
{ // out of buses
flag = FALSE;
break;
}
if (PciData->VendorID == PCI_INVALID_VENDORID)
{ // skip to next slot
break;
}
if (PciData->VendorID == PCI_PHOENIX_VENDOR_ID)
{
switch (PciData->DeviceID)
{
case PCI_PHOENIX_DEVICE_ID_SC:
pciInfo->boardNumber = boardNumber;
++boardNumber;
pciInfo->bus = (USIGN16)bus;
pciInfo->pciDevice = (USIGN16)i;
pciInfo->pciFunction = (USIGN16)f;
pciInfo->vendorId = PciData->VendorID;
pciInfo->deviceId = PciData->DeviceID;
...
...
...
6189A

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis