Функции, экспортируемые ядром
Posted: Thu Mar 03, 2022 8:33 am
Предлагаю здесь обсуждать удаление/добавление функций экспортируемых ядром для работы драйверов.
Начну пожалуй с этого:
Оказывается ныне удалённая структура TASKDATA из ядра продолжает использоваться ddk от Сержа. Как я понял она нужна была чтобы получить доступ к полю state, тем самым измениять состояние текущего процесса. Используется оно для W/W Mutex(честно говоря хз зачем и как оно работает, однако оно нужно для портов видеодров, да и Серж не стал бы замарачиваться будь это что то не важное). В любом случае сейчас эти мутексы работать не будут.
Что надо сделать: заменить на APPDATA. Но! В отличие от TASK_BASE, current_slot не имеет постоянного адреса и нужно создать функцию которая будет возвращать его значение и экспортировать из ядра.
Прикреплю патч ниже.
PS. Я обнаружил в экспорте функцию get_curr_task не дублирует ли она нужный мне функционал?
Начну пожалуй с этого:
Оказывается ныне удалённая структура TASKDATA из ядра продолжает использоваться ddk от Сержа. Как я понял она нужна была чтобы получить доступ к полю state, тем самым измениять состояние текущего процесса. Используется оно для W/W Mutex(честно говоря хз зачем и как оно работает, однако оно нужно для портов видеодров, да и Серж не стал бы замарачиваться будь это что то не важное). В любом случае сейчас эти мутексы работать не будут.
Что надо сделать: заменить на APPDATA. Но! В отличие от TASK_BASE, current_slot не имеет постоянного адреса и нужно создать функцию которая будет возвращать его значение и экспортировать из ядра.
Прикреплю патч ниже.
PS. Я обнаружил в экспорте функцию get_curr_task не дублирует ли она нужный мне функционал?