Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [3]  Все   Вниз
  Печать  
Автор Тема: PCI  (Прочитано 60034 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
maaaaaad
Гость
PCI
« Ответ #60 : 31-08-2003 05:05 » 

Сорри, не туда посмотрел.
Гром,
   где будет опубликованна - не знаю еще
   получить ее на сайт можно, когда доделаю.....
   отпрвлять сюда - club@shelek.com?


> playing Limp Bizkit - Break Stuff.mp3
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


PCI
« Ответ #61 : 31-08-2003 06:13 » 

Цитата

где будет опубликованна - не знаю еще
получить ее на сайт можно, когда доделаю.....
отпрвлять сюда - club@shelek.com?

Да...
Заранее благодарю!
Записан

А птичку нашу прошу не обижать!!!
nick333
Гость
PCI
« Ответ #62 : 18-09-2003 12:44 » new

Juggernaut,

Вот функция которая поможет тебе сделать то что надо! (Примерно)
Благодарности слать по адресу nkovach@itt.net.ru

//+++++++++++++++++++++++++++++++++++++++++++++++++++
//FIND PCI ADAPTER
//+++++++++++++++++++++++++++++++++++++++++++++++++++
BOOLEAN
FindPciAdapters(PALTERA_ADAPTER lpAda, int DoMap, ULONG safe, ULONG bp)
{
    PCI_SLOT_NUMBER     SlotNumber;
    ULONG               i, f, j, bus, adr;
    BOOLEAN             flag;
    UCHAR               vendorString[5] = {0};
    UCHAR               deviceString[5] = {0};
    PPCI_COMMON_CONFIG  PciData=(PPCI_COMMON_CONFIG)lpAda->ConfigurationTable;
    BOOLEAN       Result=FALSE;

    if(safe==0) AsmInitChips();

    SlotNumber.u.bits.Reserved = 0;
 
    flag = TRUE;
    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,
                    sizeof(PCI_COMMON_CONFIG)   //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  == 0xAA55) &&
         (PciData->BaseClass == 4)      &&
                   (PciData->SubClass  == 0))
            {
              lpAda->DeviceID=PciData->DeviceID;
            if(
                      (PciData->DeviceID  == 1)    || //old card
                   (PciData->DeviceID  == 3)    || //new card
                   (PciData->DeviceID  == 5)    || //new card 100 Acex
                    (PciData->DeviceID  == 9)    || //ID=9
                   (PciData->DeviceID  == 7)    || //ID=9
                   (PciData->DeviceID  == 0xF)  ||   //ID=0xf
                    (PciData->DeviceID  == 0x11) ||    //ID=0x11
                    (PciData->DeviceID  == 0x13) ||    //ID=0x13
                    (PciData->DeviceID  == 0x15) ||     //ID=0x15
                    (PciData->DeviceID  == 0x17)     //ID=0x17
            )
         {
                       //
                       // Arrr, Here's a nasty boy.
                       //
         if(safe!=0)
                      InitAlteraChip(bus,SlotNumber.u.AsULONG,PciData->DeviceID,safe);

         adr=(PciData->u.type0.BaseAddresses[0] & 0xFFFFFF00)|3;
         HalSetBusDataByOffset(
            PCIConfiguration,
            bus,SlotNumber.u.AsULONG,&adr,0x8C,4);

                   HalGetBusData(
                          PCIConfiguration,
                          bus,
                          SlotNumber.u.AsULONG,
                          PciData,
                          sizeof(PCI_COMMON_CONFIG)   //PCI_COMMON_HDR_LENGTH
                          );

         lpAda->DeviceID=PciData->DeviceID | 0x80000000;
             lpAda->BusNumber=bus;
         lpAda->SlotNumber=SlotNumber.u.AsULONG,
              lpAda->BusAddress.LowPart=PciData->u.type0.BaseAddresses[0] & 0xFFFFFF00;
              lpAda->BusAddress.HighPart=0;

         if(DoMap) MapIoSpace(lpAda);

         if(lpAda->lp16Mb)
         {
                  DoDelay(500);

                       DrawLogo(lpAda->DeviceID & 0xFFFF,lpAda->lp16Mb,0);
                       DrawLogo(lpAda->DeviceID & 0xFFFF,lpAda->lp16Mb,1);
                       DrawLogo(lpAda->DeviceID & 0xFFFF,lpAda->lp16Mb,2);

                  if(bp) beep(0x5000);
   
                   Result=TRUE;
         }

                        }
              lpAda++;
            }
                }
            }
       }
return Result;
}
Записан
SlavaI
Главный специалист

ru
Offline Offline

PCI
« Ответ #63 : 18-09-2003 12:50 » 

HalGetBusData.
А не старовато ли?
Записан
Anonymous
Гость
PCI
« Ответ #64 : 19-09-2003 11:32 » 

А что есть что поновее???
Записан
dorador
Гость
PCI
« Ответ #65 : 19-09-2003 12:20 » 

Цитата

А что есть что поновее???

цитата из DDK W2K

HalGetBusData is obsolete and is exported only to support existing drivers.

Drivers should use the PnP Manager's IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG requests instead.
Записан
Juggernaut
Гость
PCI
« Ответ #66 : 06-10-2003 06:33 » 

InitAlteraChip??? Это что???
Записан
Страниц: 1 2 [3]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines