Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Драйверы устройств - необходимы, чтобы осуществлять взаимодействие между программой пользователя и устройством, а именно, передавать данные между ними, управлять устройством. Причем, устройства могут быть как реальными, так и виртуальными). Драйвер не обязательно должен управлять каким-нибудь физическим устройством. Некоторые ОС дают возможность создавать также драйверы виртуальных устройств - объектов, которые ведут себя аналогично устройствам в/выв, но не отвечают никакому физическому устройству.
Если требуется написать сколь-нибудь серьезное приложение, для работы которого необходим доступ к внутренним функциям или структурам данных системы, то можно столкнуться со множеством ограничений, преодолеть которые можно только разместив свой код в системном адресном пространстве. Из документированных существует только один способ это сделать - установить драйвер. Способ этот относительно прост, надежен, а главное, полностью обеспечен поддержкой со стороны самой операционной системы.
Задача этого драйвера - исполнять на системном динамике одну ноту до первой октавы. Для этого драйвер использует инструкции процессора in и out, обращаясь к соответствующим портам ввода-вывода. Общеизвестно, что доступ к портам ввода-вывода - это свято охраняемый Windows системный ресурс. Попытка обращения к любому из них, как на ввод, так и на вывод, из режима пользователя, неизбежно приводит к появлению исключения.
Чтобы было удобно отлаживать драйвер, существуют различные средства. Самое простое - осуществлять вывод необходимой информации в специальное окно утилиты Debug View. Предварительно эта программа запускается, настраивается на перехват сообщений с уровня ядра. Для вывода в программе вызывается функция DbgPrint, имеющая один параметр - выводимую строку. После запуска драйвера в окне Debug View отображается весь вывод.
До сих пор мы разрабатывали драйвер режима ядра, который может делать то, что нельзя на пользовательском уровне, в частности, работать с портами в/выв. Такой драйвер называется драйвером ядра, но не драйвером устройства, потому что не передаются данные между программой пользователя и устройством (Драйвер ведь обычно зачем нужен? Чтобы организовывать обмен данными между приложением пользователя и устройством).
Когда приложению требуется операция в/выв, то происходит обращение к драйверу. Для этого приложение может давать запрос на чтение данных из устройства или запись данных на устройство. А если требуется какое-то другое действие, например, опрос или управление устройством, либо что-либо другое, то для этого используется т.н. IOCTL-интерфейс (Device In-Out Control).
Мы будем рассматривать именно такой случай для виртуальных устройств, потому что чаще всего, зачем нужно виртуальное устройство в драйвере? Чтобы можно было передавать ему данные, которые драйвер может как-то обработать (как нельзя в приложении) и вернуть в приложение результат. Вспомним, что обычный драйвер ядра, рассмотренный ранее, ничего не брал из приложения и ничего туда не возвращал, а просто делал действия, недоступные приложению.
Когда приложению требуется операция в/выв, то происходит обращение к драйверу. Для этого может использоваться т.н. IOCTL-интерфейс (Device In-Out Control).
Вызывающее приложение выполняет следующие действия:
1) Открытие файла и получение его дескриптора:
GENERIC_READ + GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL
В результате, если все произошло успешно, мы получаем дескриптор устройства.
2) Посылка драйверу кода действия (что делать, драйвер может реализовывать много различных действий):
invoke DeviceIoControl, дескриптор, код действия, адрес входного буфера, размер входных данных, адрес выходного буфера, размер выходных данных, адрес буфера для реального количества байтов
3) Закрытие файла и, соответственно, освобождение дескриптора.
invoke CloseHandle дескриптор устройства
Чтобы передавать данные, модули (приложение и драйвер) должны договориться о протоколе взаимодействия (коды действий, структура буферов - входных и выходных).
Такой же код действия используется и в приложении, и в драйвере.
Код действия в приложении и в драйвере можно записывать в 16-ричном виде, а можно использовать макрос CTL_CODE, как это сделано в примере лаб. работы в файле common.inc.
Рассмотрим пример кода действия из драйвера виртуального устройства, который используется в лабораторной работе. Имя - IOCTL_GET.
В случае виртуального устройства файловый флаг равен 0.
Тип устройства - FILE_DEVICE_UNKNOWN = 22h
Права доступа - FILE_READ_ACCESS+FILE_WRITE_ACCESS = 1+2=3=11b
Функциональный код - в диапазоне от 800h до FFFh. У нас - 800h.
Метод буферизации - способ передачи данных между приложением и драйвером (возможны три):
Для небольшого объема данных используется обычно METHOD_BUFFERED (00b) - выделяется дополнительный буфер в нестраничной памяти, достаточный для размещения входного и выходного буфера. Адрес этого буфера размещается в IRP в поле AssociatedIrp.SystemBuffer. Диспетчер в/выв сам берет на себя работу перезаписи данных между пользовательским и дополнительным буфером.
Прямой доступ к данным (без буфера) - METHOD_OUT_DIRECT (2) - для вывода либо METOD_IN_DIRECT (1) - для ввода; поле из IRP - MdlAddress. Это непосредственное обращение - диспетчер в/выв фиксирует в памяти физические страницы, содержащие буфер пользовательского режима. При этом создает вспомогательную структуру MDL (Memory Descriptor List) для описания зафиксированных страниц. И разработчик драйвера работает с MDL.
Доступ через буфер пользовательского уровня - METHOD_NEITHER (3); поле из IRP - SystemBuffer. Диспетчер в/выв передает в драйвер виртуальные адреса пользовательского режима. И в драйвере нужно очень осторожно с ними работать, потому что драйвер в этом случае должен работать только в контексте вызывающего потока.
Когда приложение посылает драйверу код действия, то начинает работу диспетчер ввода-вывода. Он отвечает за формирование пакета запроса ввода-вывода (I/O request packet, IRP) и посылку его драйверу для дальнейшей обработки.
Мы будем рассматривать 3 типа запросов:
IRP_MJ_CREATE - будет передан при CreateFile,
IRP_MJ_DEVICE_CONTROL - будет передан при DeviceIoControl
IPR_MJ_CLOSE - при CloseHandle
Пакет IRP состоит из заголовка и стеков размещения в/выв. Диспетчер в/выв создает количество ячеек стека в/выв равное числу драйверных слоев, участвующих в обработке запроса. Каждому драйверу разрешен доступ к собственной ячейке стека. Когда драйвер передает пакет IRP драйверу нижнего уровня, указатель на ячейку стека перемещается на ячейку, необходимую этому драйвера. И, наоборот, после обработки запроса, указатель поднимается вверх на ячейку драйвера высшего уровня. Получение указателя с помощью функции - IoGetCurrentStackLocation().
В каждом стеке размещения находится указатель на объект-устройство DeviceObject и на объект-файл FileObject, для которого инициирован запрос. Пакеты IRP всегда хранятся в невыгружаемой памяти.
Для работы драйвера создаются и применяются следующие объекты:
Объект драйвера;
Объекты устройств;
Этапы работы драйвера.
1) Создание объекта драйвера. Создается при загрузке драйвера на этапе его запуска. В этот момент запускается функция DriverEntry и заполняется массив MajorFunction, а также указатель на объект устройства и обратно.
В состав объекта устройства входят:
Тип устройства.
2) Создание символьной ссылки на устройство. Для того чтобы объект "устройство" стал доступен коду режима пользователя, драйвер должен создать в доступном ему (коду режима пользователя) каталоге "\??" еще один объект - символьную ссылку (symbolic link). Драйвер shablon.sys создает символьную ссылку "slshablon" на свое устройство "devshablon" в каталоге "\??", значением которой является строка "\Device\devshablon".
Таким образом, уже при загрузке драйвера (в нашем случае, на этапе загрузки ОС) мы имеем три объекта в памяти: драйвер "\Driver\shablon", устройство "\Device\shablon" и символьную ссылку на устройство "\??\slshablon".
3) Открытие. Дальше при запуске приложения вызывается CreateFile. Там есть ссылка на устройство. Из структуры объекта устройства DEVICE_OBJECT извлекаются сведения об обслуживающем его драйвере. Диспетчер ввода-вывода формирует пакет запроса ввода-вывода IRP типа IRP_MJ_CREATE и направляет его драйверу. Так драйвер узнает о том, что код режима пользователя пытается получить доступ к его устройству. Если драйвер не имеет ничего против, то он возвращает код успеха. У нашего драйвера есть специальная процедура диспетчеризации, которая реагирует на это IRP - DispatchCreateClose (там совмещенная процедура для открытия и закрытия устройства). В ней в поле Io.Status.Status передается STATUS_SUCCESS, а в Io.Status.Information - 0, т.к. в этом случае ничего не нужно передавать. Такой ответ от драйвера является сигналом диспетчеру объектов о создании виртуального файла. При этом в таблице описателей (handle table) процесса создается новый элемент с указателем на объект "файл", и коду режима пользователя возвращается новый дескриптор.
Если все ОК, то мы сохраняем дескриптор файла, возвращенный CreateFile, в переменной hDevice.
4) Операции в/выв. Теперь мы имеем возможность осуществлять операции управления этим устройством посредством вызова функций DeviceIoControl. Поскольку драйвер устройства может в принципе выполнять много различных задач, необходимо как-то дифференцировать запросы. Для этого и предназначен второй параметр dwIoControlCode, называемый управляющим кодом ввода-вывода (I/O control code), который строится по определенным правилам.
Используя описатель устройства, диспетчер ввода-вывода извлечет сведения об обслуживающем его драйвере, сформирует пакет запроса ввода-вывода типа IRP_MJ_DEVICE_CONTROL и направит его драйверу. В драйвере будет вызвана соответствующая процедура DispatchControl, которой в качестве параметров передаются код действия и сведения об адресах и размерах входного и выходного буфера. Все это передается через IRP. В процедуре из IRP берется необходимая информация: код действия, адрес буфера для передачи данных.
Процедура DispatchControl выполняет необходимые действия, в нашем случае адрес пакета IRP из регистра ESI Затем передает результат через выходной буфер в приложение.
Аналогично предыдущей процедуре, передаем через IRP статус завершения и количество переданных из драйвера байтов.
В приложении эти данные форматируются и выводятся.
5) Закрытие. Как и полагается поступать с дескрипторами, которые больше не нужны, вызовом функции CloseHandle, закрываем описатель устройства.
6) Выгрузка драйвера. Удаляем символьную ссылку и удаляем объект устройства.
Комплекс (2) состоит из двух программ:
Приложение, которое обращается к драйверу за адресом IRP, а затем этот адрес выводит в стандартное окно Windows.
Shablon.sys - драйвер.
Драйвер shablon выполняет то, что нельзя сделать на уровне пользователя, в данном случае определяет содержимое регистра esi при работе драйвера.
Приложение в выходном буфере получает содержимое esi, преобразует его для вывода в шестнадцатеричном виде и выводит в стандартное окно Windows.
Если необходимо в драйвере получить информацию из CMOS, то требуется:
Послать в порт 70h смещение в CMOS, которое нас интересует;
Небольшая задержка;
Взять из порта 71h информацию в al.
Затем записать эту информацию в выходной буфер.
А в приложении необходимо взять информацию из выходного буфера, при необходимости, преобразовать ее и вывести, либо проанализировать и в зависимости от результата вывести в стандартное окно необходимый текст.
В этой лабораторной работе предполагается, что драйвер устанавливается постоянно в Windows с помощью.inf-файла, используя из Панели управления пункт - Установка оборудования: Добавление нового устройства, Установка вручную, Показать все устройства, Установить с диска, с помощью обзора выбрать файл.inf (драйвер должен быть в той же папке).
Чтобы проверить, что драйвер установлен, выбираем в панели управления Система, Оборудование, Диспетчер устройств.
1.3 Доступ к существующим драйверам из приложений пользовательского режима
Алгоритм работы приложения работающего с драйвером
Для работы с драйвером приложению пользовательского режима необходимо получить манипулятор(хэндл) драйвера. Этот манипулятор можно получить, используя API-функцию CreateFile или CreateFileA, которая работает с ASCII-символами. Далее используется API-функция DeviceIoControl, которой, в качестве одного из параметров, передается IOCTL-код. IOCTL-код это управляющий код, с помощью которого драйвер узнает об операции, выполнение которой запрашивает приложение, методе передачи параметров и правах доступа, которые необходимы приложению для выполнения этой операции. После того как приложение вызвало
DeviceIoControl драйверу отправляется IRP_MJ_DEVICE_CONTROL. После завершения обработки запросы приложению возвращается управление и приложению остается проанализировать ответ драйвера и закрыть открытые дескрипторы.
Пример
В приведенном ниже примере приложение пользовательского режима отправляет запрос IOCTL_DISK_GET_PARTITION_INFO_EX драйверу файловой системы, проводит анализ полученной информации и выводит формат раздела жесткого диска.
#include
#include
int _tmain(int argc, _TCHAR* argv)
DWORD dwBytesReturned = 0;
char cPartitionStyle = {0};
PARTITION_INFORMATION_EX piPartitionInfo;
HANDLE hDevice = CreateFileA(
/*1*/"\\\\.\\c:",
/*2*/GENERIC_READ | GENERIC_WRITE,
/*3*/FILE_SHARE_READ | FILE_SHARE_WRITE,
/*5*/OPEN_EXISTING,
if (hDevice == INVALID_HANDLE_VALUE)
MessageBoxA(NULL, "CreateFileA error!", "Error", 0);
if (DeviceIoControl(
/*1*/(HANDLE) hDevice,
/*5*/&piPartitionInfo,
/*6*/sizeof(piPartitionInfo),
/*7*/&dwBytesReturned,
if(piPartitionInfo.PartitionStyle == PARTITION_STYLE_MBR)
MessageBoxA(NULL, "PARTITION_STYLE_MBR", "Caption", 0);
else if(piPartitionInfo.PartitionStyle == PARTITION_STYLE_GPT)
MessageBoxA(NULL, "PARTITION_STYLE_GPT", "Caption", 0);
MessageBoxA(NULL, "PARTITION_STYLE_RAW", "Caption", 0);
MessageBoxA(NULL, "DeviceIoControl error", "Error", 0);
CloseHandle(hDevice);
Разбор примера
Объявляются переменные, необходимые для работы приложения. PARTITION_INFORMATION_EX это структура, которая описывает информацию о разделе жесткого диска.
typedef struct {
} PARTITION_INFORMATION_EX;
В этой части программы вызывается функция CreateFileA для получения манипулятора, который записывается в переменную hDevice.
Синхронно вызывается функция DeviceIoControl. Ей передаются:
дескриптор устройства;
IOCTL-код IOCTL_DISK_GET_PARTITION_INFO_EX;
указатель на входной буфер, NULL в нашем случае;
размер входного буфера;
указатель на выходной буфер;
размер выходного буфера;
указатель на переменную типа DWORD, в которой будет храниться количество возвращаемых байтов;
указатель на структуру OVERLAPPED, которая используется для асинхронного вызова функции.
После возврата управления, в случае успешного завершения функции, в структуре PARTITION_INFORMATION_EX хранится информация о разделе.
Производится анализ и вывод информации. Перед возвращением управления операционной системе можно закрыть открытые дескрипторы. Это позволяет сделать функция CloseHandle(__in HANDLE). Если дескрипторы не закрыть, то это сделает операционная система за Вас.
Механизмы взаимодействия драйвера режима ядра и пользовательского приложения: многослойная драйверная архитектура, алгоритм сокрытия данных, взаимодействие драйвера и приложения, пользовательский интерфейс программы фильтрации доступа к файлам.
курсовая работа , добавлен 23.06.2009
Архитектура ввода/вывода Windows NT. Внутренняя организация шины USB. Сущностная характеристика драйверной модели WDM. Точки входа разрабатываемого драйвера, размещение кода в памяти, установка драйвера в системе. Реализация кода драйвера на языке C.
курсовая работа , добавлен 27.09.2014
Структура режима пользователя, предоставляющего возможность пользователю вступать во взаимодействие с системой. Описание режима ядра, который обеспечивает безопасное выполнение приложений (программ) пользователя. Уровень аппаратных абстракций Windows NT.
презентация , добавлен 23.10.2013
Ядро Windows 98. Роль 16-разрядных модулей ядра. Проблемы быстродействия. Кооперативная и вытесняющая многозадачность. Улучшенное использование ресурсов в Windows 98. Использование WordArt. Программа MS Outlook Express: создание и отправка сообщений.
контрольная работа , добавлен 14.04.2005
Совместное функционирование всех устройств компьютера и доступ к его ресурсам. Понятие и функции графической операционной системы Windows. Справочная служба Windows. Управление файловой системой. Технология "Plug and Play". Графический интерфейс Windows.
контрольная работа , добавлен 22.01.2011
Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад , добавлен 16.10.2011
Использование драйвера режима ядра и управляющего приложения для создания системных потоков. Имитация обработки данных и организация задержек. Разработка драйвера на языке C++. Конфигурация тестового стенда. Точность изменения задержек и работы таймера.
курсовая работа , добавлен 24.06.2009
Дослідження внутрішньої структури операційної системи Windows. Архітектура NT і структура ядра. Методи перехоплення функцій у режимі ядра та режимі користувача. Поняття драйверу. Пакети вводу-виводу. Оцінка стабільності та безпеки системи Windows.
курсовая работа , добавлен 02.01.2014
Понятие, типы и работа брандмауэра. Встроенные в Windows firewall. Windows XP SP2, доступ к настройкам файрвола Windows XP Service Pack 2. Windows Vista, разрешенный трафик. Windows 7, настройки активных профилей. Персоальные Firewall, уровни тестов.
реферат , добавлен 19.11.2010
Знакомство с техническими характеристиками персонального компьютера. Установка операционной системы и драйверов Windows 7. Способы чистки Windows XP Professional SP3. Методы восстановления операционной системы. Выполнение установки Microsoft Office 2010.
Компания Microsoft в операционной системе Windows 10 уделяет большое внимание безопасности. Одним из важных элементов системы является “Защитник Windows”, но способен он справиться не со всеми угрозами. В частности, в последнее время набирают особую распространенность вирусы Ransomware, самыми известными реинкарнациями которых являются вредоносные программы Petya и . Компания Microsoft внедрила в Windows 10 функции изоляции ядра и целостность памяти, которые направлены на борьбу с вирусами Ransomware. По умолчанию они отключены.
Оглавление:Изоляция ядра - это процесс дополнительный защиты, который обеспечивается методом ограждения процессов компьютера от операционной системы и устройства. За счет данных действий удается избежать подрыва работы операционной системы при попадании на компьютер вирусов.
Целостность памяти - это сопутствующая изоляции ядра защитная функция, которая направлена на ограничение доступа со стороны неизвестных потенциально опасных программ к процессам с высоким уровнем безопасности.
Важно: Функция изоляции ядра может работать только в том случае, если имеются достаточные для этого условия со стороны аппаратных данных компьютера. В настройках BIOS должна быть активна технология виртуализации, за счет которой компьютер под управлением Windows 10 может запускать различные приложения в виртуальном контейнере, ограничивая для них доступ от ключевых компонентов системы.
Параметры операционной системы Windows 10 позволяют управлять функциями безопасности на компьютере в полной мере. Через настройки Windows 10 можно включить изоляцию ядра и целостность памяти следующим образом:
Как отмечалось выше, если аппаратная составляющая компьютера не поддерживает возможность виртуализации, данная функция не будет работать. При включении пользователь увидит в нижнем правом углу сообщение “Не удается обеспечить целостность памяти. Возможна несовместимость”. Если это сообщение появилось, рекомендуется перейти в BIOS и посмотреть включена ли функция Secure Boot (Boot Mode).
Новые функции в операционной системе, которые серьезно влияют на ее работу, всегда рискуют стать причиной возникновения проблем при работе компьютера. Не исключение и функция изоляции ядра. Пользователи, которые уже ее опробовали, отмечают на форумах Microsoft, что сталкиваются с проблемами при запуске ряда игр и программ. Единственный способ, как решить данную проблему, это отключить функцию изоляции ядра и целостность памяти. Возможно, в будущих обновлениях разработчики приложения или Microsoft поправит данную несовместимость.
Есть 3 способа, как отключить изоляцию ядра и целостность памяти:
Изоляция ядра - технология безопасности на основе виртуализации, которая обеспечивает дополнительный уровень защиты против интеллектуальных атак. Целостность памяти является одной из составных частей технологии изоляции ядра - функция предназначена для предотвращения вставки вредоносного кода в процессы с высокой безопасностью. Защита обеспечивается за счет того, что страница виртуальной памяти ядра начинает выполнятся только после успешного прохождения проверки целостности.
Рассмотрим, как включить функцию “Целостность памяти” в Windows 10 April 2018 Update, чтобы усилить безопасность компьютера.
После выполнения этих действий нужно перезагрузить компьютер, чтобы изменения вступили в силу.
Примечание : для работы данной функции ваш процессор должен поддерживать технологии виртуализации. Кроме того, виртуализация должна быть включена в BIOS или UEFI. В противном случае, функция будет недоступна.
В некоторых случаях можно столкнуться с проблемами совместимости в некоторых приложениях, если изоляция ядра включена. Чтобы исправить неполадки придется отключить функцию.
Если вы пытаетесь отключить целостность памяти в Центре безопасности Защитника Windows, но опция стала неактивной и показывается сообщение “Этим параметром управляет ваш администратор”, то все еще можно деактивировать функцию с помощью системного реестра.
Примечание : Некорректное изменение реестра может привести к серьезным проблемам. Рекомендуется создать резервную копию реестра Windows перед тем, как выполнить данные шаги. В меню редактора реестра выберите Файл > Экспорт для сохранения резервной копии.
Для отключения вы также можете воспользоваться готовым
Вопрос: При долгой работе компьютера или выходе из спящего режима сбивается шрифт в меню пуск
Как исправить это? Помогите, пожалуйста..
Ответ: переустановленная ОС уже и обновленная(
Вопрос: Как перевести компьютер в спящий режим типа S1 ("Stand by") ?
Результат выполнения "powercfg /a"
В данной системе доступны следующие состояния спящего режима:
Ждущий режим (S3)
Следующие состояния спящего режима недоступны в данной системе:
Ждущий режим (S1)
Ждущий режим (S2)
Системное встроенное ПО не поддерживает ждущий режим.
Гибернация
Режим гибернации не включен.
Ждущий режим (подключенный)
Системное встроенное ПО не поддерживает ждущий режим.
Гибридный спящий режим
Быстрый запуск
Режим гибернации недоступен.
Ответ: Дайте компу постоять в бездействии пару минут, потом отправьте его в сон и разбудите.
В журнале событий:
Действие => создать настраиваемое представление
В пункте дата задайте, например, двухминутный интервал и смотрите, что происходило.
Больше у меня нет идей.
Ну и проверить драйверы и подключенные к компу устройства
Вопрос: Выходит из спящего режима в 4 утра
c:\>powercfg /waketimers
Таймер, установленный Устаревшая вызывающая сторона ядра, действителен до 4:14:46 09.01.2016.
Причина:
Помогите. Кто виноват и что делать?
Ответ:
в конце концов вылечил сей недуг:
Панель управления -> Безопасность и обслуживание -> Обслуживание -> Автоматическое обслуживание -> Изменить параметры обслуживания -> снимаем галку "Разрешить задаче обслуживания пробуждать мой компьютер..."
Вопрос: Самопроизвольное включение компьютера по ночам
На компьютере система Win7, стоит резидентный антивирус MS Cecurity Esentials. Прогнал по нескольку раз актуальные (свежескачанные) лечащие утилиты mbar и DrWeb Cureit - понаходили несколько бяк, но все равно самопроизвольное включение осталось. По проявлениям похоже на вирус, подключающий мой компьютер к DDOS-атакам. Тем более, что время от времени Google блокирует доступ по причине подозрительного траффика, исходящего с моего IP. Такое происходит уже довольно давно (больше года), но самопроизвольное включение компьютера я заметил вот только недавно.
Собственно, вопрос: если беда известная и лечится относительно просто, то скачаю рекомендуемое ПО, просканирую им и выложу. Если же проблема более сложная - то не буду морочить голову ни себе, ни местным гуру и тупо переставлю систему.
Ответ: Falconist , что-то я не совсем понял...
Сообщение от Falconist
после перевода компьютера в спящий режим... он самопроизвольно включается
Спящий режим и режим гибернация в 7 - это совершенно разные вещи. Для перевода в спящий режим достаточно на клаве нажать кнопку Sleep. Если нажмёте Пуск и наведёте указатель мыши на стрелочку рядом с Завершение работы - появится меню в котором есть и Спящий режим. и Гибернация. При гибернации комп отключается от электропитания так же, как и при завершении работы, но при включении компа вы сможете начать работу так же, как и после режима сна.
Но спрашивали вы о другом. Планировщик заданий проверяли?
Вопрос: Компьютер ночью выходит из спящего режима
Сегодня ночью ситуация повторилась, но в просмотре событий нашел лишь:
Система вышла из состояния пониженного энергопотребления.
Время перехода в спящий режим: 2016-10-29T21:38:38.657073700Z
Время выхода из спящего режима: 2016-10-29T21:58:34.625754700Z
Источник выхода: Нет данных
3. В диспетчере устройств снял галку "разрешить этому устройству выводить компьютер из ждущего режима" с мышки, клавы, сетевух, и везде, где нашел...
Помогите решить данную проблему, уже не знаю где копать...
Ответ:
Сообщение от GoLeMjkeee
Стоит ежедневно в 2-00
Поменяй на дневное.
Сообщение от GoLeMjkeee
но галочка.... не стоит.
10-ка она такая,с характером.
Вопрос: Как убрать экран с кнопкой "Вход" при выходе из спящего режима?
В Параметры-Учетные записи- Параметры входа нет пункта "Требуется вход".
В окне Учетные записи пользователей, на вкладке Пользователи галка "Требовать ввод имени пользователя и пароля" снята.
В настройках схемы электропитания нет пункта "Требовать введения пароля при пробуждении".
Как убрать кнопку "Вход" при выходе из спящего режима, чтобы компьютер автоматически запускал рабочий стол минуя это окно?
Ответ: убрать спящий режим
Вопрос: Windows 8.1 выключается в спящем режиме
Поставить драйвера я конечно не смог, разные платформы. Найти такие же для себя не смог.
Переустанавливать ОС не хочу т.к. все (кроме спящего) работает хорошо.
Может есть идеи что может быть не так?
Добавлено через 17 минут
Забыл написать, что BIOS сбрасывал и обновлял.
Ответ: проверяй тогда либо БП либо Мать. Программно мы настроили спящий и гибернацию powercfg /h on.
Ещё Вариант -- проверить (заменить). hiberfil.sys -- он отвечает за спящий режим.
Вопрос: Спящий режим в windows 8
Ответ:
Сообщение от azat145
после выхода из спящего режима windows 8 начинает перезагружаться
С начала.
Потом.
Вопрос: Гибридный спящий режим или Гибернация? Что предпочтительней на десктопе?
Ответ:
Читал, сегодня. Ладно, по-моему на мой вопрос другого ответа и нету, чем короткий брифинг от Майкрософта. Тогда поделюсь своими выводами (для тех, кто попадет в эту тему по похожему вопросу).
Итак:
Плюсы
Гибридного спящего режима: 1. Быстрота включения, нет необходимости полностью вырубать компьютер;
Минусы
: 1. Нагружает жесткий диск (по утверждению одного модератора из раздела Windows 7 на нашем форуме); 2. Не выключается полностью, продолжает кушать ток, хоть и мало (хотя для некоторых этот пункт является плюсом)
Короче, Гибернация нужна, если хочешь постоянно вырубать из сети, но не хочешь подолгу загружать/выключать ОС.
Гибридный спящий режим - для тех, кого устраивает постоянно находящийся в сети ПК.
Вопрос: Раньше ноутбук отключался на старте, теперь в спящем режиме
Ответ: Как вы хоите чтобы он работал? Лично я использую гибернацию, а не спящий режим, так же включен переход в гибернацию при бездействи, настройки во вложении
Перенос настроек электропитания
Диспетчер электропитания (power manager) глаз не спускает с показателей использования электроэнергии по всей системе. Исторически управление потреблением энергии состояло из отключения монитора и остановки вращения дисководов. Но эта проблема быстро становится все более сложной - из-за требований к увеличению продолжительности работы ноутбуков от батарей, а также соображений экономии энергии на настольных компьютерах (которые оставляют постоянно включенными) и высокой стоимости потребляемой серверными фермами электроэнергии.
Новые средства управления электропитанием включают уменьшение потребления энергии компонентами, когда система не используется, для этого отдельные устройства переключаются в состояние резервирования или даже полностью отключаются (при помощи выключателя питания). Мультипроцессорные системы отключают отдельные процессоры, когда они не нужны, и даже могут уменьшать тактовую частоту процессоров (для уменьшения энергопотребления). Когда процессор бездействует, потребление им энергии также уменьшается, поскольку ему не нужно делать ничего, кроме ожидания возникновения прерывания.
Windows поддерживает специальный режим выключения под названием гибернация (hybernation), при котором выполняется копирование всей физической памяти на диск, а затем потребление энергии снижается до минимального (в состоянии гибернации ноутбуки могут работать неделями), при этом батарея разряжается минимально. Поскольку все состояние памяти записано на диск, то вы можете даже заменить батарею ноутбука (пока он находится в гибернации). Когда система возобновляет свою работу, выходя из гибернации, она восстанавливает сохраненное состояние памяти (и повторно инициализирует устройства). Это приводит компьютер в то же самое состояние, в котором он был перед гибернацией (без необходимости выполнять повторно регистрацию и запускать все приложения и службы, которые выполнялись. Windows старается оптимизировать этот процесс, игнорируя немодифицированные страницы (имеющие резервирование на диске), и сжимает остальные страницы памяти для снижения требуемого объема ввода-вывода. Алгоритм гибернации предусматривает автоматическую балансировку пропускной способности системы ввода-вывода и процессора. Чтобы при более высокой пропускной способности процессора снизить потребность в пропускной способности системы ввода-вывода, используется более ресурсоемкое, но при этом более эффективное сжатие данных. Достаточная пропускная способность системы ввода-вывода позволяет избежать сжатия при переходе в режим гибернации. При использовании мультипроцессоров последнего поколения вход в состояние гибернации и выход из него могут составлять всего несколько секунд, даже если оперативная память системы имеет большой объем.
Альтернатива гибернации - состояние ожидания (standby mode), при котором диспетчер электропитания переводит всю систему на низшее состояние потребления энергии (используется ровно столько энергии, сколько нужно для регенерации состояния динамической памяти). Поскольку память не нужно копировать на диск, то переход в это состояние на некоторых системах осуществляется быстрее, чем гибернация.
Несмотря на доступность гибернации и состояния ожидания, многие пользователи не избавились от привычки выключать свой персональный компьютер по окончании работы.
Гибернация используется в Windows для осуществления псевдовыключения запуска, называемого HiberBoot, которое осуществляется намного быстрее обычного выключения и запуска. Когда пользователь дает системе команду на выключение, HiberBoot выводит пользователя из системы, а затем переводит ее в состояние гибернации в той точке, с которой можно будет опять нормально войти в систему. Позже, когда пользователь снова включит систему, HiberBoot возобновит работу системы с точки входа в нее пользователя. Для пользователя все это похоже на очень быстрое выключение, поскольку большинство шагов инициализации системы пропускается. Разумеется, иногда систему нужно выключать по-настоящему, чтобы устранить проблемы или установить обновление ядра. Если система получает команду на перезапуск, а не на выключение, она переносит настоящее выключение и выполняет обычную загрузку.
Ожидается, что вычислительные устройства на телефонах и планшетных компьютерах, а также на новых поколениях ноутбуков всегда будут потреблять небольшое количество электроэнергии. Чтобы обеспечить такой режим, в современной Windows реализована специальная версия управления электропитанием, которая называется CS (connected standby - ожидание в режиме подключения). CS возможна на системах со специальным оборудованием подключения к сети, способным отслеживать трафик в небольшом наборе подключений, используя намного меньше энергии, чем при работе центрального процессора. Получается, что CS-система всегда включена, выход из CS осуществляется сразу же, как только пользователь включил экран. Ожидание в режиме подключения отличается от обычного режима ожидания, потому что CS-система будет также выходить из ожидания, когда получит пакет из отслеживаемого подключения. После того как батарея начинает садиться, CS-система переходит в состояние гибернации, чтобы избежать полного разряда батареи и возможной потери пользовательских данных.
Достижение продожительной работы батареи требует не только как можно более частого выключения процессора. Важно также как можно дольше удерживать процессор в выключенном состоянии. Сетевое оборудование CS-системы позволяет процесорам оставаться выключенными до поступления данных, но повторное включение процессора может быть вызвано и другими событиями. Основанные на NT драйверы устройств Windows, системные службы и сами приложения зачастую запускаются без особой причины, только для того, чтобы проверить состояние дел. Подобная активность опроса обычно основана на установках таймеров на периодический запуск кода в системе или приложении. Опрос, основанный на сигналах таймера, может внести сумятицу в события, включающие процессор. Во избежание этого в современной Windows от таких таймеров требуется указать параметр погрешности, позволяющий операционной системе объединять события таймера и сокращать количество отдельных оснований для включения процессора. В Windows также оформляются условия, при которых приложение, не находящееся в стадии активного выполнения, может выполнять код в фоновом режиме. Операции, подобные проверке обновлений или освежению содержимого, не могут выполняться только по запросу запуска по истечении времени таймера. Приложение должно подчиняться операционной системе в вопросах подобной фоновой активности. Например, проверка на наличие обновлений должна происходить только один раз в день или в следующий раз, когда на устройстве будет происходить заряд батареи. Набор системных посредников предоставляет различные условия, которые могут использоваться для ограничений на выполнение фоновой активности. Если фоновой задаче требуются доступ к дешевой сети или пользовательские полномочия, посредники не станут выполнять задачу, пока не возникнут необходимые условия.
Сегодня многие приложения реализуются как с локальным кодом, так и со службами, находящимися в облаке. Windows предоставляет службу уведомлений Windows (Windows Notification Service (WNS)), позволяющую сторонним службам проталкивать уведомления в устройство Windows в CS, не требуя от сетевого оборудования CS специально прислушиваться к пакетам от сторонних серверов. WNS-уведомления могут оповещать о критичных по времени событиях, таких как поступление текстового сообщения или вызова по VoIP. При поступлении WNS-пакета процессор должен будет включиться для его обработки, но сетевое оборудование CS имеет возможность различать трафик разных подключений, что означает, что процессор не должен включаться в ответ на каждый произвольный пакет, поступающий из сетевого интерфейса.