Підсистема управління введенням-виведенням.

Матеріал з Wiki TNEU
Версія від 22:53, 20 вересня 2012; Donserg (Обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Підсистема вводу / виводу складається з ядра компонентів, які забезпечують інтерфейс для апаратних пристроїв для додатків і інших обов'язкових компонентів системи. Windows XP підвищує підсистеми введення / виводу при збереженні повної сумісності з драйверами написані для Windows 2000. Ця сумісність було важливо, тому що підсистема вводу / виводу забезпечує інтерфейс для всіх пристроїв, і занадто багато змін в процесі введення / виведення може порушити роботу існуючих програм і драйверів.

Покращення були зроблені за рахунок додавання нових API-інтерфейсів, доступних драйверів, написані, щоб скористатися функціональністю нової ОС Windows XP. З цієї причини, в той час як існуючі драйвери для Windows 2000 буде працювати з Windows XP, то вони повинні бути переписані, щоб скористатися новою введення / виводу поліпшень, у тому числі такі:

Нові скасувати черги

Драйвер фільтра файлової системи API,

Покращена низької продуктивності пам'яті

I / O дроселювання

Прямий доступ до пам'яті (DMA) поліпшення

WebDAV Redirector

Відновлення системи

Служба Volume Snapshot Нові Скасування черзі

Замість того, драйвери пристроїв виконують черги та обробки введення / виводу (IRP) скасування гонки, Windows XP введення / виводу дозволяє автоматизувати цей процес. У Windows XP, драйвера обробляти IRP черг і не потрібно обробляти IRP скасування. Інтелект в процесі черги дозволяє I / O API, обробляти запити, а не водіїв у тих випадках, коли I / O буде відмінено. Загальна проблема з відміною ІПР в драйвер синхронізації між блокування скасувати або InterlockedExchange в диспетчер введення / виводу з черги блокування водія.

Windows XP тези логіки відмовитися від API, дозволяючи водієві реалізувати черги та пов'язані з синхронізацією. Драйвер надає процедури для вставки і видалення пакетів IRP з черги, і він забезпечує блокування, яке відбудеться при виклику цих підпрограм. Драйвер гарантує, що пам'ять для черзі походить від правильного басейн. Коли водій насправді хоче, щоб вкласти щось у черзі, він не називає її введення рутинної, але замість дзвінків IoCsqInsertIrp ().

Для видалення IRP з черги, водій може або вказати IRP, щоб бути відновлена, або передати NULL, і перший IRP в черзі буде витягнуто. Як тільки ПІВТ була відновлена, вона не може бути скасований; очікується, що водій буде обробляти IRP і завершити його швидко. Драйвер фільтра файлової системи API,

Кілька нових API-інтерфейси забезпечують велику всебічну надійність. Microsoft працювала з сторонніх розробників перевірити свої драйвери фільтра. Якщо водій врізався спробі виконати незаконне функцій, разом ми визначили функції, необхідні, і за умови, API, щоб дозволити їм зробити те, що потрібно було зробити без шкоди для решти. Ці API включені в файл Windows, що встановлюються з розвитку системи (IFS) Kit для Windows XP. Покращена низької продуктивності пам'яті

Windows XP є більш стійкою в періоди низької пам'яті, тому що "повинні домогтися успіху" асигнування вже не допускається. Більш ранні версії ядра і драйверів, що містяться розподілу пам'яті запити, які були на успіх, навіть якщо пул пам'яті був низьким. Ці асигнування б крах системи, якщо пам'ять не були доступні. Два важливих виділення підпрограми введення / виводу використовується "повинні домогтися успіху", з першим з яких для розподілу IRP, а інший для Memory Descriptor List (MDL) асигнувань. Якщо пам'ять не міг бути виділені, система буде синій екран, якщо ці процедури були використані. Для Windows XP, компоненти ядра і драйверів більше не дозволено виконувати "повинні домогтися успіху" виділених коштів; процедур виділення пам'яті не буде виділяти пам'ять, якщо басейн знаходиться дуже низько. Ці зміни дозволяють водіям та іншим компонентам вжити відповідних заходів помилки, а не екстремальний підхід, таких як помилка перевірки машини. I / O Регулювання

Ще одним удосконаленням, з низьким рівнем пам'яті умов введення / виводу дроселювання. Якщо система не можу виділити пам'ять, вона дроселів до процесу по одній сторінці за раз, якщо це необхідно, використовуючи вільно виділені ресурси. Це дозволяє системі продовжувати в більш повільному темпі, поки більше ресурсів. DMA Покращення

Три нові записи додаються в кінець структури DMA_OPERATIONS. Ці три записи будуть доступні для будь-якого водія, який використовує IoGetDmaAdapter (). Щоб безпечно перевірити нову функціональність існує, водій повинен встановити версію області DEVICE_DESCRIPTION структури наданих IoGetDmaAdapter (), щоб DEVICE_DESCRIPTION_VERSION2.

Поточною апаратної абстракції Layers (HALS), які не підтримують новий інтерфейс, не вдасться операцію номер версії. HALS, які підтримують цю функцію зрозуміють нову версію і вдасться прохання, припускаючи, що всі інші параметри в порядку. Водій повинен спробувати отримати доступ до цих нових покажчики на функції тільки тоді, коли водій успішно отримує адаптера за допомогою DEVICE_DESCRIPTION_VERSION2.


Новинка! Нажмите на слова вверху, чтобы увидеть альтернативный перевод. Отказаться Переводчик Google для бизнеса –Инструменты переводчика переводчик сайтов служба "Анализ рынков" Отключить моментальный перевод О Переводчике GoogleМобильная версияКонфиденциальностьСправкаОтправить отзыв

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти