Поради съществуването на функционалния слой на драйвера, драйверите на протокола и драйверите на мрежовата карта са независими един от друг, което значително опростява сложността на добавяне на мрежови устройства и разширяване на мрежови компоненти. Стекът от мрежови протоколи поддържа главно подобрени драйвери на мрежови устройства.
Зарежда се програмата за драйвер на END устройство
Зареждането на драйвери на END устройство включва главно връзката между драйвера на END устройство и абстрактния слой от функции на драйвера, което позволява на стека на мрежовия протокол да контролира END устройството. Конкретният процес включва: инициализиране на мрежовата карта и PHY устройството, конфигуриране на комуникационните параметри на мрежовата карта и PHY устройството и т.н.; Разпределете място за структурата за контрол на мрежовата карта и инициализирайте структурата END-OBJ, която включва основно структурата за управление на мрежовата карта и информация за параметрите, свързани със стека на мрежовия протокол; Анализирайте и обработете низа от параметри, съответстващ на драйвера на мрежовата карта; Разпределете място за получаване на данни, за да гарантирате съхранението на получените данни; Реализирайте връзката между драйвера на мрежовата карта и стека на мрежовия протокол чрез конфигуриране на параметъра NET-FUNCS в структурата END-OBJ
Стартирайте END устройството
Процесът на стартиране на END устройствата включва главно свързване на програми за обработка на прекъсвания и активиране на прекъсвания на мрежовата карта. За устройства с мрежова карта техните методи за обработка на данни могат да бъдат разделени на два режима на работа: прекъсване и запитване. По време на процеса на стартиране на устройството END, както получаването, така и изпращането на данни са настроени на режим на прекъсване и са прикачени програми за обработка на прекъсвания за получаване и изпращане на данни. И накрая, активирането на прекъсвания на мрежовата карта, получаване и изпращане на прекъсвания може да завърши END стартирането на устройството
Получаване на мрежови пакети
За приемане на мрежови пакети стекът от мрежови протоколи на операционната система не изисква драйвери на мрежова карта за обработка на мрежови пакети. Когато устройството с мрежова карта получи данни, то ще генерира прекъсване за получаване. В програмата за обработка на прекъсване на получаване, програмата ще извика функцията netJobAdd, за да стартира програма за задачи, която предава данните, получени от устройството на мрежовата карта, към слоя за абстракция на функцията на драйвера. Стекът от мрежови протоколи получава мрежовия пакет данни чрез функцията за получаване на слоя за абстракция на функцията на драйвера и извършва съответната обработка на данни. Използването на функцията netJobAdd тук може да намали времето за обработка на получаване на прекъсвания и да подобри способността за приемане на мрежови данни.
Изпращане на мрежови пакети
За изпращане на мрежови пакети, когато стекът от мрежови протоколи изпраща данни, той поставя данните в буфер и изпраща данните от буфера към устройството на мрежовата карта чрез извикване на функцията за изпращане на слоя за абстракция на драйвера. След като получи данните, устройството с мрежова карта ги поставя в буфера за изпращане, за да изчака данните да бъдат изпратени.
Драйвер за мрежова карта
Feb 09, 2024
Остави съобщение
