Драйверы устройств в системе Windows


Драйверный интерфейс API


     Кроме отдельного программного модуля  для программы ISR (в  форме библиотеки DLL системы Windows),  для работы драйвера необходим  также программный модуль пользовательского интерфейса, называемый  интерфейс API. На листинге 3  приведена программа bogus.h, представляющая  собой пример  интерфейса  API.  Эта  программа  содержит  4  точки  входа  в библиотеку DLL.

_____________________________________________________________________

#ifndef EXPORT

#define EXPORT

#endif

 

extern int EXPORT FAR PASCAL BogusCheck(void) ;

extern void EXPORT FAR PASCAL BogusStart(HWND hWnd,WPARAM wParam) ;

extern int EXPORT FAR PASCAL BogusGetEvent(void) ;

extern void EXPORT FAR PASCAL BogusStop(void) ;

______________________________________________________________________

 

     Листинг 3. Программа bogus.h.

 

     В точке входа  BogusCheck просто проверяется  наличие устройства. Программа возвращает значение TRUE, если устройство обнаружено (бит  7 порта состояния), и значение FALSE в противном случае.

     Точки входа  BogusStart и  BogusStop начинают  и завершают работу устройства. Кроме того, точка входа BogusStart разрешает прерывания  и обеспечивает связь с аппаратным  прерыванием, а точка входа  BogusStop выключает   прерывания   устройства   и   восстанавливает   аппаратное прерывание.

      Точка  входа  BogusGetEvent  возвращает  количество  прерываний, обработанных со  времени первого  старта устройства,  либо со  времени последнего   вызова   точки   входа   BogusGetEvent.   (Точка    входа BogusGetEvent обнуляет счетчик прерываний при каждом ее вызове.)




- Начало -  - Назад -  - Вперед -