Это сообщение не для автора темы. Ему я ничем помочь не могу - у меня Linux и как там что настраивается в Windows мне просто неинтересно.
Хотел немного пояснить ситуацию с "резервированием памяти" внешними устройствами. Той же самой видеокартой.
Конечно, никакой памяти она не резервирует. Говорить так было бы некорректно. Память системы ей не нужна - у неё собственной памяти хватает. Но возникает проблема, как передать информацию из памяти системы в память видеокарты и обратно? Через операции ввода/вывода этого не сделать - слишком медленно.
Делается проще. В адресном пространстве CPU (то есть, по сути, компьютера) вырезается кусок в который физическая память системы не отображается. В него отображается некоторый участок памяти видеокарты.
Чем больше отведенный для видеокарты диапазон физических адресов памяти - тем быстрее, вообще говоря, будет происходить обмен данными между системой и видеопамятью.
Вот пример с моего компьютера:
Код:
01:00.0 VGA compatible controller: NVIDIA Corporation GF110 [GeForce GTX 580] (rev a1) (prog-if 00 [VGA controller])
Subsystem: NVIDIA Corporation Device 086a
Flags: bus master, fast devsel, latency 0, IRQ 32
Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
Memory at f0000000 (64-bit, prefetchable) [size=128M]
Memory at f8000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
[virtual] Expansion ROM at fb000000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Участки отведенные для отображения видеопамяти указаны в строках начинающихся словами "Memory at ...".
Размеры этих участков можно регулировать. Это было реализовано еще давным давно. Может быть кто-нибудь помнит, как во времена шины PCI в BIOS был параметр "AGP aperture size"? Сейчас для многих устройств можно выбрать один из заранее установленных профилей, которые отличаются друг от друга, к примеру, номерами портов ввода-вывода. И, конечно, диапазоном выделяемой памяти.
Другое дело, что для 64-хбитных ОС вся эта возня с настройками сразу стала никому не нужна...