드라이버는 레거시 커널 호출자입니다. Windows의 전원 관리

내 기본 노트북에서 다양한 문제전원 공급 장치 문제가 자주 발생하며 이는 내부 어셈블리 작업으로 설명할 수 있습니다. 그러나 안정 버전 1803에서도 시스템이 절전 모드로 들어가는 것을 멈췄습니다. 이 경우 지정된 시간이 지나면 모니터가 꺼지는데, 이는 시스템이 비활성 상태를 올바르게 결정했음을 암시합니다.

1~2분 정도의 짧은 수면 전환 시간을 설정하고 진단을 시작했습니다.

애플리케이션 및 드라이버의 전원 하위 시스템에 대한 요청 확인

가장 먼저 해야 할 일은 살펴보는 것이다. powercfg, 이는 OS가 절전 모드로 전환되는 것을 방지합니다. 전원 하위 시스템에 액세스하는 프로세스 및 드라이버는 다음에서 볼 수 있습니다. 명령줄관리자로서:

Powercfg 요청

SYSTEM에 대한 요청이 DRIVER에서 온다는 것이 즉시 분명해집니다. 이 경우 Realtek은 오디오 스트림을 사용합니다.

Chrome의 WebRTC도 목록에 있을 수 있으며 시스템을 다시 시작한 직후 다운로드 최적화 요청과 검색 색인을 볼 수 있지만 빠르게 사라집니다. 예외 목록에 프로세스나 드라이버를 추가할 수 있으며, 이로 인해 해당 프로세스가 절전 모드로 전환되는 것을 방지할 수 없습니다.

Powercfg -requestsoverride 드라이버 "Realtek 고화질오디오(HDAUDIO\FUNC_01&VEN_10EC&DEV_0269&SUBSYS_17AA2204&REV_1002\4&d00657&0&0001)" 시스템

명령은 "DRIVER의 요청을 무시합니다. 이름드라이버]를 SYSTEM"으로 설정합니다.

예외 목록은 레지스트리 키에 저장됩니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride

그리고 명령에 의해 출력됩니다

Powercfg -요청 재정의

확실하게 재부팅했지만 시스템이 절전 모드로 전환되지 않았습니다. 예외사항과 쿼리 목록을 확인한 결과 리얼텍 드라이버예외에 포함되었지만 오디오 스트림을 계속 사용했습니다.

나는 예외를 피해 약간 춤을 추었지만 성공하지 못했습니다. 빠른 Google은 어떤 경우에는 작동하지 않는다는 것을 확인했습니다. 이는 레거시 요청의 경우 일반적이지만 또 다른 경우가 있었는데, 제가 이 문제를 처음 접한 것은 아닙니다.

결국 목록에서 Realtek을 제거했습니다. 레지스트리 편집기나 콘솔에서 항목을 삭제할 수 있습니다. 명령은 추가할 때와 거의 동일하지만 요청이 어디로 가는지 나타내지 않습니다. 이 경우 명령 끝에 SYSTEM이 없습니다.

Powercfg -requestsoverride DRIVER "Realtek HD 오디오(HDAUDIO\FUNC_01&VEN_10EC&DEV_0269&SUBSYS_17AA2204&REV_1002\4&d00657&0&0001)"

우린 다른 길로 갈 거야

오디오 하위 시스템을 사용하는 프로세스 계산

Realtek 드라이버가 더러운 작업을 수행하는 것으로 알려져 있습니다. 당연히 시스템 시작 시 로드되므로 Autoruns를 사용하면 파일 이름을 쉽게 찾을 수 있습니다.

세 개의 항목은 두 개의 파일을 참조하며 그 중 하나는 이름으로 판단되는 제어판입니다. 그래서 관심의 대상이 되었습니다. ravbg64.exe.

Microsoft는 Windows 10 운영 체제의 보안에 큰 관심을 기울이고 있습니다. 시스템의 중요한 요소 중 하나는 Windows Defender이지만 모든 위협에 대처할 수는 없습니다. 특히 랜섬웨어 바이러스는 최근 특히 널리 확산되었으며, 그 중 가장 유명한 환생은 다음과 같습니다. 악성코드페트야와 . Microsoft는 랜섬웨어 바이러스 퇴치를 목표로 Windows 10에 커널 격리 및 메모리 무결성 기능을 도입했습니다. 기본적으로 비활성화되어 있습니다.

목차:

커널 격리 및 메모리 무결성이란 무엇입니까?

커널 격리컴퓨터 프로세스를 보호하는 방법으로 제공되는 추가적인 보호 프로세스입니다. 운영 체제그리고 장치. 이러한 조치로 인해 바이러스가 컴퓨터에 침입했을 때 운영 체제의 작동이 저하되는 것을 방지할 수 있습니다.

메모리 무결성- 커널 격리에 수반되는 보호 기능으로, 잠재적으로 위험할 수 있는 알려지지 않은 프로그램의 접근을 보안 수준이 높은 프로세스로 제한하는 것을 목표로 합니다.

중요: 커널 격리 기능은 컴퓨터 하드웨어에서 이에 대한 충분한 조건이 있는 경우에만 작동할 수 있습니다. 안에 BIOS 설정가상화 기술이 활성화되어 있어야 합니다. 윈도우 제어 10은 가상 컨테이너에서 다양한 애플리케이션을 실행하여 주요 시스템 구성 요소의 액세스를 제한할 수 있습니다.

커널 격리 및 메모리 무결성을 활성화하는 방법

수술실 매개변수 윈도우 시스템 10을 사용하면 컴퓨터의 보안 기능을 완벽하게 관리할 수 있습니다. 을 통해 윈도우 설정 10에서는 다음과 같이 커널 격리 및 메모리 무결성을 활성화할 수 있습니다.


위에서 언급한 것처럼 컴퓨터 하드웨어가 가상화를 지원하지 않는 경우, 이 기능작동 안 할 것이다. 켜면 사용자는 오른쪽 하단에 "메모리 무결성을 보장할 수 없습니다."라는 메시지가 표시됩니다. 비호환 가능성이 있습니다." 이 메시지가 나타나면 BIOS로 이동하여 보안 부팅(부팅 모드) 기능이 활성화되어 있는지 확인하는 것이 좋습니다.

커널 격리 및 메모리 무결성을 비활성화하는 방법

운영 체제의 작동에 심각한 영향을 미치는 운영 체제의 새로운 기능은 항상 컴퓨터 작동에 문제를 일으킬 위험이 있습니다. 커널 격리 기능도 예외는 아닙니다. 이미 이 기능을 사용해 본 사용자는 여러 게임과 프로그램을 시작할 때 문제가 발생한다고 Microsoft 포럼에 언급했습니다. 해결할 수 있는 유일한 방법 이 문제, 이는 커널 격리 기능과 메모리 무결성을 비활성화하는 것입니다. 아마도 응용 프로그램 개발자나 Microsoft는 향후 업데이트에서 이러한 비호환성을 수정할 것입니다.

커널 격리 및 메모리 무결성을 비활성화하는 방법에는 세 가지가 있습니다.


커널 모드 드라이버: 1부: 기본 개념 - 아카이브 WASM.RU

아키텍처 개요

Windows 2000의 내부 세계는 주소 공간 측면과 해당 주소 공간에서 실행되는 코드의 권한 및 책임 측면에서 경계가 명확하게 정의된 두 부분으로 나뉩니다.

주소 공간 분할을 사용하면 모든 것이 놀라울 정도로 간단합니다. 32비트 아키텍처에서 사용할 수 있는 4GB는 모두 두 개의 동일한 부분으로 나뉩니다(4GT RAM 튜닝 및 물리적 주소 확장은 특이하므로 생략합니다). 아래쪽 절반은 사용자 모드 프로세스 전용이고, 위쪽 절반은 커널에 속합니다.

권리와 책임의 구분은 좀 더 복잡합니다.

다음 프로세스는 사용자 프로세스로 간주됩니다.

  • 시스템 지원 프로세스 - 예: Winlogon 로그온 프로세스(\%SystemRoot%\System32\Winlogon.exe에서 구현됨)
  • 서비스 프로세스(예: 인쇄 스풀러)
  • 사용자 응용 프로그램 - Win32, Windows 3.1, MS-DOS, POSIX 및 OS/2의 다섯 가지 유형이 있습니다.
  • 환경 하위 시스템 - Win32(\%SystemRoot%\System32\Csrss.exe에서 구현), POSIX(\%SystemRoot%\System32\Psxss.exe에서 구현), OS/2(\%SystemRoot에서 구현)의 세 가지 환경 하위 시스템이 지원됩니다. %\System32\os2ss.exe).

핵심은 다음 구성 요소로 구성됩니다.

    실행 시스템 - 메모리 관리, 프로세스 및 스레드 등
  • 커널 - 스레드 예약, 중단 및 예외 처리 등(\%SystemRoot%\System32\Ntoskrnl.exe에서 구현됨)
  • 장치 드라이버 - 하드웨어 장치 드라이버, 네트워크 드라이버, 파일 시스템 드라이버;
  • HAL(하드웨어 추상화 계층) - 하드웨어 아키텍처 간의 차이점으로부터 위의 세 가지 구성 요소를 분리합니다(\%SystemRoot%\System32\Hal.dll에서 구현됨).
  • 윈도우화 및 그래픽 시스템 - 그래픽 기능 사용자 인터페이스(그래픽 사용자 인터페이스, GUI)(\%SystemRoot%\System32\Win32k.sys에서 구현됨).

쌀. 1-1. Windows 2000 아키텍처의 단순화된 다이어그램

사용자 모드와 커널 모드

Intel x86 프로세서 제품군은 네 가지 수준의 권한(보호 링이라고 함)을 지원하지만 Windows에서는 커널 모드에 0, 사용자 모드에 3이라는 두 가지 권한만 사용합니다. 이는 두 가지 수준의 권한만 구현되는 다른 프로세서(alpha, mips)의 지원 때문입니다. Windows NT의 이전 릴리스에서는 이러한 아키텍처를 지원했지만 Windows 2000은 x86 전용으로 남아 있었습니다.

사용자 모드 구성 요소에는 자체적으로 보호된 주소 공간이 있습니다. 이러한 프로세스의 스레드는 권한이 없는 프로세서 모드(사용자 모드라고 함)에서 실행되고 권한이 있는 프로세서 명령을 실행할 수 없으며 시스템 데이터 및 시스템 주소 공간에 대한 제한적이고 간접적인 액세스를 가지며 권한이 없습니다. 하드웨어에 직접 액세스. 사실, 작업 중에 시스템 서비스를 호출하는 이러한 프로세스의 스레드는 커널 모드로 전환되지만 이 경우 사용자 모드로 돌아갈 때까지 실행에 대한 제어권을 완전히 잃습니다.

사용자 모드 프로세스는 시스템 안정성 관점에서 볼 때 잠재적으로 위험한 것으로 간주됩니다. 그들의 권리는 제한되어 있습니다. 그리고 이러한 제한을 넘어서려는 모든 시도는 가혹하게 억압됩니다.

커널 구성요소는 단일 주소 공간을 공유하고, 권한 있는 프로세서 모드(커널 모드라고 함)에서 실행하고, 권한 있는 명령을 포함한 모든 프로세서 명령을 실행할 수 있으며, 시스템 데이터 및 코드에 제한 없이 직접 액세스할 수 있고, 직접 또는 HAL을 통해 다음에 대한 액세스 권한을 갖습니다. 장비.

커널 코드(사실 이는 시스템 자체)는 완전히 신뢰할 수 있는 것으로 간주됩니다. 따라서 일단 시스템 주소 공간에 로드되면 드라이버는 시스템의 일부가 되며 어떠한 제한도 받지 않습니다.

따라서 사용자 응용 프로그램은 운영 체제 자체와 분리됩니다. 시스템의 내부 기능이나 데이터 구조에 액세스해야 하는 심각한 애플리케이션을 작성하려는 경우 코드를 시스템 주소 공간에 배치해야만 극복할 수 있는 많은 제한 사항에 직면하게 됩니다. 문서화된 방법은 장치 드라이버를 설치하는 것뿐입니다. 이 방법은 상대적으로 간단하고 안정적이며 가장 중요한 것은 운영 체제 자체에서 완벽하게 지원된다는 것입니다.

윈도우 2000 드라이버

Windows 2000은 다양한 유형의 장치 드라이버를 지원합니다.

대표자를 갖는 두 가지 기본 사항이 있습니다.

  • 사용자 모드 드라이버:
    • 드라이버 가상 장치(가상 장치 드라이버, VDD) - MS-DOS 프로그램을 지원하는 데 사용됩니다(Windows 95/98의 VxD 드라이버와 혼동하지 마십시오. 이름은 같지만 완전히 다릅니다).
    • 프린터 드라이버.
  • 커널 모드 드라이버:
    • 드라이버 파일 시스템(파일 시스템 드라이버) - 로컬 및 네트워크 드라이브에 I/O를 구현합니다.
    • 레거시 드라이버 - 이전 버전의 Windows NT용으로 작성되었습니다.
    • 비디오 어댑터 드라이버(비디오 드라이버) - 그래픽 작업을 구현합니다.
    • 스트리밍 드라이버 - 비디오 및 오디오 입력/출력을 구현합니다.
    • WDM 드라이버(Windows 드라이버 모델, WDM) - 플러그 앤 플레이 기술과 전원 관리를 지원합니다. 그들의 구별되는 특징수준의 호환성입니다 소스 코드윈도우 98, 윈도우 ME, 윈도우 2000 사이.

안에 다양한 소스위에 제공된 분류와 약간 다른 분류를 접할 수 있지만 이는 요점이 아닙니다. 중요한 것은 우리가 작성할 드라이버가 이 분류의 어떤 항목에도 속하지 않는다는 것입니다. 이는 파일 시스템 드라이버, 레거시 드라이버, 비디오 어댑터 드라이버 또는 사운드 카드, WDM 드라이버도 마찬가지입니다. Plag"n"Play 및 전원 관리를 지원하지 않습니다. 이것은 사용자 모드 드라이버가 아닙니다(전혀 흥미롭지 않습니다). 사실, 악마는 그것이 무엇인지 알고 있을 뿐입니다. 왜냐하면... 시스템 자체를 사용하면 알 수 없는 장치에 대한 코드를 쉽고 간단하게 추가하고 원하는 작업을 수행할 수 있습니다! 그것은 마치 전혀 모르는 사람이 밤에 당신의 집 문을 두드렸을 때, 당신이 아무 말도 없이 그를 하룻밤 동안 들여보내고 심지어 그를 당신의 침대에 눕히는 것과 같습니다! 그러나 이는 일종의 버그나 보안 허점이 아닙니다. 시스템은 원래대로 작동합니다. 그렇지 않을 수는 없으니까... 환경과 상호 작용하면서 시스템은 강제로 자체 액세스를 제공해야 합니다. 그렇지 않다면 완전히 폐쇄된 시스템이 되어 쓸모가 없는 시스템이 될 것입니다.

이름 자체에서 알 수 있듯이 장치 드라이버는 일부 장치를 제어하도록 설계된 프로그램이며 이 장치가 반드시 물리적일 필요는 없습니다. 이는 논리적일 수도 있고 우리의 경우처럼 가상일 수도 있습니다.

구조상 장치 드라이버는 PE 형식 파일(Portable Executable, PE)에 지나지 않습니다. 일반 exe, dll과 동일합니다. 단지 다른 규칙에 따라 로드되고 작동합니다. 드라이버는 사용자 모드에서 수행할 수 없는 작업을 수행하도록 설계된 커널 모드 DLL로 생각할 수 있습니다. 여기서 근본적인 차이점(권한 수준을 계산하지 않음)은 드라이버나 코드나 데이터에 직접 액세스할 수 없지만 입력/출력 관리자가 제공하는 특수 메커니즘을 사용한다는 것입니다. I/O 관리자는 드라이버가 작동할 수 있는 환경을 제공하고 드라이버 로드, 언로드 및 관리를 위한 메커니즘도 제공합니다.

커널 모드 드라이버 개발을 시작하면 완전한 초보자처럼 느껴질 것입니다. API를 사용한 이전의 모든 경험은 여기서는 도움이 되지 않습니다. 커널은 완전히 다른 기능 세트를 제공합니다. 또한 제대로 문서화되지 않았거나(헤더 파일에만 정의됨) 완전히 문서화되지 않은 함수 및 데이터 구조를 사용해야 합니다.

단일 및 다중 레벨 드라이버

물리적 장치를 제어하는 ​​대부분의 드라이버는 계층화된 드라이버입니다. I/O 요청 처리는 여러 드라이버에서 공유됩니다. 모두가 자신의 역할을 수행합니다. 예를 들어, 파일 읽기 요청은 파일 시스템 드라이버로 전송되며, 이 드라이버는 일부 작업(예: 요청을 여러 부분으로 분할)을 수행한 후 해당 요청을 "다운스트림"으로 디스크 드라이버로 전달합니다. 버스 운전사에게 요청을 보냅니다. 또한 이러한 드라이버 사이에 필터 드라이버(예: 데이터 암호화)를 원하는 만큼 추가할 수 있습니다. 요청을 실행한 후 하위 수준 드라이버는 해당 결과를 상위 수준 드라이버에 "위로" 전달합니다. 그러나 다행스럽게도 모든 것이 훨씬 더 간단해질 것입니다. 우리 드라이버는 항상 모놀리식 드라이버이므로 작성 및 디버깅의 전체 프로세스가 크게 단순화됩니다.

스레드 컨텍스트

대부분의 경우 프로세서가 하나 뿐이고 실행해야 할 응용 프로그램이 많기 때문에 동시 실행이라는 환상을 만들기 위해서는 이러한 응용 프로그램을 프로세서에 순차적으로 연결해야 하며 매우 빠르게. 이 절차를 스레드 컨텍스트 전환이라고 합니다. 시스템이 동일한 프로세스에 속한 스레드의 컨텍스트를 전환하는 경우 연결이 끊긴 스레드의 프로세서 레지스터 값을 저장하고 연결된 스레드의 프로세서 레지스터에서 이전에 저장된 값을 로드해야 합니다. 그리고 일부 데이터 구조를 업데이트하세요. 연결된 스레드가 다른 프로세스에 속해 있으면 프로세스의 페이지 디렉터리에 대한 포인터를 프로세서의 CR3 레지스터에 로드해야 합니다. 각 사용자 프로세스에는 닫힌 주소 공간이 제공되므로 프로세스마다 주소 공간의 예측이 다르므로 프로세서가 가상 주소를 물리적 주소로 변환하는 페이지 디렉토리와 페이지 테이블 세트가 다릅니다. 이 모든 것은 드라이버 프로그래밍과 직접적인 관련이 없습니다. 그러나 나는 이것과 관련하여 이것을 상기시켜줍니다. 컨텍스트 전환은 가장 빠른 작업이 아니기 때문에 드라이버는 여러 가지 이유로 더 나은 성능, 원칙적으로 자체 스레드를 생성하지 마십시오. 그러나 드라이버 코드는 여전히 실행되어야 합니다. 따라서 컨텍스트 전환 시간을 절약하기 위해 드라이버는 다음 세 가지 컨텍스트 중 하나에서 커널 모드로 실행됩니다.

  • I/O 요청을 시작한 사용자 스레드의 컨텍스트에서;
  • 커널 모드 시스템 스레드의 컨텍스트에서(이 스레드는 시스템 프로세스에 속함)
  • 중단의 결과로 발생합니다(따라서 중단 당시 실행 중이던 프로세스나 스레드의 컨텍스트에서는 발생하지 않음).

"프로세스나 스레드의 맥락이 아닌" 이 글을 작성한 사람들(D. Solomon 및 M. Russinovich)의 권위와 우리가 그렇게 하지 않는다는 사실을 고려할 때 어떻게 작업을 수행할 수 있는지 잘 모르겠습니다. 이건 필요없어 왜냐하면 . 우리는 소프트웨어나 특히 하드웨어 인터럽트를 처리하지 않으므로 세 번째 경우는 즉시 잊어버릴 수 있습니다. 처음 두 가지 옵션이 남아 있습니다. I/O 요청이 시작되면 우리는 이 요청을 시작한 스레드의 컨텍스트에 있으므로 이 스레드가 속한 프로세스의 주소 공간에 직접 액세스할 수 있습니다. 시스템 스레드의 컨텍스트에 있는 경우 사용자 프로세스에 직접 액세스할 수 없지만 시스템 프로세스에는 항상 액세스할 수 있습니다. 드라이버에서 일부 프로세스가 이러한 주소에 있는 내용을 확인해야 하는 경우 컨텍스트를 직접 전환하거나 페이지 테이블을 사용하여 주소를 변환해야 합니다.

인터럽트 요청 수준

중단은 모든 운영 체제에서 필수적인 부분입니다. 인터럽트에는 처리가 필요하므로 현재 코드의 실행이 중지되고 제어가 인터럽트 핸들러로 전달됩니다. 하드웨어 인터럽트와 소프트웨어 인터럽트가 모두 있습니다. 인터럽트는 우선순위에 따라 서비스됩니다. Windows 2000은 IRQL(인터럽트 요청 수준)이라는 인터럽트 우선 순위 체계를 사용합니다. 우선순위가 가장 낮은 0(수동)부터 우선순위가 가장 높은 31(높음)까지 총 32개 레벨이 있습니다. 또한 IRQL=0(수동)에서 IRQL=2(DPC\dispatch)까지의 인터럽트는 소프트웨어이고, IRQL=3(장치 1)부터 IRQL=31(높음)까지의 인터럽트는 하드웨어입니다. 인터럽트 우선 순위 수준과 스레드 우선 순위 수준을 혼동하지 마십시오. 완전히 다른 것입니다. IRQL=0 수준의 인터럽트는 엄밀히 말하면 인터럽트가 아닙니다. 이는 어떤 코드의 작업도 방해할 수 없습니다. (결국 이렇게 하려면 이 코드를 더 낮은 인터럽트 수준에서 실행해야 하지만 그러한 수준은 없습니다.) 사용자 모드 스레드는 이 IRQL에서 실행됩니다. 그리고 우리의 드라이버 코드도 이 IRQL에서 실행됩니다. 이는 모든 드라이버 코드가 항상 "수동" 수준에서 실행된다는 의미는 아닙니다. 단지 우리는 소프트웨어나 특히 하드웨어 인터럽트를 처리하지 않을 것입니다. 그리고 이것으로부터 적어도 두 가지 매우 중요한 결론이 도출됩니다.

첫째: 드라이버의 작업은 더 높은 우선순위의 인터럽트를 처리하기 위해 언제든지 중단될 수 있습니다. 나머지). 따라서 이러한 의미에서 우리 드라이버의 코드는 모든 사용자 스레드의 코드와 마찬가지로 중단 가능하고 선점 가능합니다(프로세서는 다른 스레드에 제공됨). 현재 인터럽트 수준을 확인하고 이를 높이거나 낮출 수 있는 커널 함수가 있습니다.

두번째 중요한 점: 수동 인터럽트 수준에서는 모든 커널 함수를 호출할 수 있을 뿐만 아니라(DDK에서 각 함수에 대한 설명은 호출할 수 있는 인터럽트 수준을 나타내야 함) 스왑 파일에 플러시된 메모리 페이지에 액세스할 수 있습니다. 더 높은 인터럽트 레벨(DPC/dispath 이상)에서, 존재하지 않는 페이지에 액세스하려는 시도는 물리적 메모리시스템 충돌로 이어지므로 메모리 관리자가 페이지 부재를 처리할 수 없습니다.

"죽음의 블루스크린"

누구나 한번쯤은 '죽음의 블루스크린'(BSOD)이라는 흥미진진한 그림을 본 적이 있을 것입니다. 그것이 무엇인지, 왜 발생하는지 설명할 필요가 없을 것입니다. 여기서 중요한 것은 커널 모드 드라이버 개발을 시작할 때 BSOD가 모니터 화면에 자주 나타날 것이라는 사실에 대비해야 한다는 것입니다.

세 번째 링에서는 모든 것이 간단했습니다. 대략적인 코드를 스케치하고 필요한 곳에 int3을 배치하고 실행한 다음... 디버거에서 무엇이 무엇인지 이미 이해했습니다. 뭔가 잘못된 경우 코드가 제대로 작동할 때까지 수정하고, 오류를 수정하고, 다시 컴파일하는 등의 작업을 수행했습니다. 드라이버를 프로그래밍할 때 이 기술을 잊어버릴 수 있습니다. 여기서 "공병"은 한 번 실수를 합니다. 한 번만 잘못 움직이면... 잠시 편안히 앉아 휴식을 취하실 수 있습니다.

BSOD를 가능한 한 드물게 보려면 BSOD를 매우 준수해야 합니다. 간단한 규칙: "7번 측정 - 한 번 자르기"... "7번 확인 - 한 번 실행"이라는 의미입니다. 물론 말하기는 쉽지만 실행하기는 훨씬 더 어렵습니다. 그러나 일반적으로 (이 기사를 읽은 후) 작성할 드라이버의 구조가 상대적으로 간단하다는 점을 고려하면 BSOD가 나타나기 전에 오류를 처리할 수 있습니다. 지속적으로 눈앞에 나타나고 그 이유를 알 수 없다면, 가능한 방법상황을 명확히 하기 위해서는 크래시 덤프를 분석해야 합니다. Mark Russinovich의 "크래시 메모리 덤프 분석"(http://www.osp.ru/win2000/2001/03/025.htm)의 기사에서 그것이 무엇인지, 어떻게 만들고 분석하는지 읽을 수 있습니다. 이 문제(분석)가 굉장히 어려운데 그렇게까지는 안 될 것 같아요.

나는 형편없는 이론가이므로 위의 모든 내용을 매우 중요하다고 생각할 수 있습니다. 기본 정보이해하는 데 절대적으로 필요한 원칙에 대해 설명합니다. 스레드 컨텍스트, 인터럽트 수준 및 스레드 우선 순위, 커널/사용자 모드 등을 이해하지 않고는 커널 모드 드라이버 개발을 시작할 수 없습니다. 등등. 어떤 문제에 대해 확신이 없다면 참조 목록은 아래에 있습니다.

이제 좀 더 실용적인 것(다음 기사에서 매우 실용적이 될 것입니다), 즉 이 모든 이론을 실제로 적용하는 데 필요한 사항을 다루겠습니다.

드라이버 개발 키트

첫 번째는 물론 Microsoft 웹사이트에서 무료로 다운로드할 수 있는 장치 드라이버 개발 키트(Windows 2000 드라이버 개발 키트, 2KDDK)입니다(어쨌든 저는 여기에서 완전히 무료로 다운로드했습니다: http:// www.microsoft.com/ddk/). 이 패키지에는 장치 드라이버에서 사용하는 내부 데이터 구조 및 시스템 전체 기능에 대한 풍부한 정보 소스인 문서가 포함되어 있습니다.

문서화 외에도 DDK에는 링크할 때 반드시 필요한 라이브러리 파일 세트(*.lib)가 포함되어 있습니다. DDK에는 다음 파일의 두 세트가 포함되어 있습니다. 윈도우 버전(무료 빌드라고 함) 개발용(체크 빌드라고 함). 이러한 파일은 각각 %ddk%\libfre\i386 및 %ddk%\libchk\i386 디렉터리에 있습니다. 디버그 버전에는 더 엄격한 오류 검사 기능이 있습니다. 시스템 버전에 해당하는 파일을 \masm32\lib\w2k 디렉터리에 배치하여 사용해야 합니다.

포함된 파일

함수 프로토타입 정의가 포함된 포함(*.inc) 파일도 필요합니다. 우리(더 정확하게는 나)도 스스로 해야 할 것이다. 나는 *.lib -> *.inc를 변환하는 다양한 유틸리티를 사용해 보았습니다. 두 유틸리티 모두 허치 패키지의 masm32에 포함되어 있고 인터넷의 광대한 범위에서 서로 다른 시간에 유출된 유틸리티도 있었습니다. 내가 가지고 있는 모든 것 중에서 f0dder의 protoize.exe만이 작업에 대처했으며 실제로는 아무것도 직접 편집할 필요가 없었습니다. 이 훌륭한 도구는 \tools\protoize 디렉터리에 있습니다. 저자 웹사이트: http://f0dder.didjitalyphrozen.com/. 하지만 거기에서는 찾을 수 없습니다. f0dder는 http://board.win32asmcommunity.net/ 컨퍼런스에서 이 유틸리티를 여러 번 게시했습니다. 포함은 \include\w2k 디렉토리에 위치합니다. 이는 \masm32\include\w2k 디렉토리에 배치되어야 합니다. 변환을 위해 우리는 Windows 2000의 무료 릴리스에 대해 *.lib를 사용했습니다. 왜냐하면 이것이 제가 갖고 있는 버전이기 때문입니다(아마 여러분도 마찬가지일 것입니다).

다음 문제는 더 심각하다. 이는 필요한 구조, 기호 상수 및 매크로 정의가 포함된 포함 파일이 거의 없다는 것입니다. 인터넷에서 유용한 것을 찾을 수 없을 것 같습니다. 이는 너무 이색적인 활동입니다. 어셈블러에서 커널 모드 드라이버를 작성하는 것입니다. 일부는 EliCZ http://www.anticracking.sk/EliCZ/에서 찾을 수 있습니다. Y0da http://mitglied.lycos.de/yoda2k/index.htm의 내용(부분적으로는 그에 의해 만들어졌고 부분적으로는 동일한 EliCZ에서 가져옴) 그러나 이것은 매우 형편없게 수행되었습니다(슬로바키아와 독일 동료들에 대한 깊은 존경심을 가지고): 많은 구조의 멤버 이름은 DDK의 원본 헤더 파일에 정의된 이름과 다릅니다. 중첩된 구조와 공용체에는 이름이 없습니다. 원본에서는 이름이 지정되어 있습니다. 그리고 일반적으로 모든 것이 다소 혼란스럽고 보면 우울한 인상을줍니다. ntstatus.inc만 잘 완료되었습니다. 이는 부분적으로 EliCZ가 DDK 없이도 포함을 생성하기 시작했기 때문입니다(그 자신이 말했듯이). 어쨌든, 적어도 주의 깊게 테스트하지 않고는 사용하지 말 것을 권합니다. 한때 http://board.win32asmcommunity.net/ 컨퍼런스에서 뭔가가 번쩍였지만 품질도 특별히 인상적이지는 않았습니다. 간단히 말해서, 이 상황에서 유일한 올바른 해결책은 모든 것을 직접 수동으로 수행하는 것입니다. 왜냐하면 저는 이 프로세스를 자동화할 수 있는 도구를 모르기 때문입니다. 갑자기 가치 있는 일을 발견했는데 별 문제가 아니라고 생각된다면 알려주세요.

드라이버 디버깅

디버거도 필요하고, 커널 모드 코드를 디버깅해야 하므로 적절한 디버거가 필요합니다. 제일 최선의 선택 SoftICE가 됩니다. 또는 DDK에 포함된 커널 디버거를 사용할 수 있습니다. 이 디버거에는 마스터와 슬레이브라는 두 대의 컴퓨터가 필요하지만 모든 사람이 감당할 수는 없습니다. Mark Russinovich(http://www.sysinternals.com/)는 LiveKd라는 유틸리티를 작성했는데, 이를 통해 두 번째 컴퓨터를 연결하지 않고도 커널 디버거를 사용할 수 있습니다. 웹사이트에 있는지는 모르겠지만(확인은 안해봤습니다) 책 '내부 구조' 디스크에 있습니다. 마이크로소프트 윈도우 2000"을 사용할 수 있습니다. 이 디버거는 또한 Microsoft 웹 사이트에서 무료로 다운로드할 수 있는 디버깅 기호가 설치되어 있는 경우 시스템의 내부 구조를 검사하는 데 매우 유용합니다.

  • David Solomon, Mark Russinovich, "Microsoft Windows 2000의 내부", ed. "피터", 2001.

    이 책에는 소스 코드가 한 줄도 포함되어 있지 않지만 주로 프로그래머를 위한 것입니다.

  • 스벤 슈라이버, "문서화되지 않음" 윈도우 기능 2000", 출판사 "Peter", 2002.

    Windows 2000의 많은 비밀을 밝혀주는 순전히 실용적인 책입니다.

  • Walter Oney, "Microsoft 드라이버 모델 프로그래밍", Microsoft Press, 1999

    이 책에서는 Plag"n"Play 드라이버에 중점을 두고 있지만 그렇다고 해서 그 장점이 줄어들지는 않습니다. 기본 원리들드라이버 개발은 보편적입니다.

  • Jeffrey Richter, "전문가를 위한 Windows: 64비트 Windows의 특성을 사용하여 강력한 Win32 응용 프로그램 구축" ed. "피터", 2000.

    이 책은 드라이버 프로그래밍과 직접적인 관련은 없지만 매우 흥미롭습니다 ;-)

    이 목록은 결코 완전한 것이 아닙니다. 특히 영어로 된 많은 책을 인터넷에서 찾을 수 있습니다(Schreiber를 제외한 모든 책은 전자 형식으로 제공됩니다). 책에 관해서도 모두 '꼭 가지고 있어야 할 것'이라고 말씀드리고 싶습니다. 보시다시피 - 보지 않고 구매하세요. Walter Oney를 제외한 모든 것은 우리의 "위대하고 강력한"으로 번역됩니다.

    그리고 마지막으로 한 가지. 나는 드라이버 개발 분야의 전문가가 아니기 때문에 이 기사와 이후의 모든 기사에서 오류나 부정확성이 있을 가능성이 매우 높습니다. 찾으면 마음껏 코를 찌르세요. 고맙다고 말할게요.

  • 다음을 포함한 Windows Defender 보안 센터 새 섹션"커널 격리"와 같은 고급 보안 도구 관리를 제공하는 "장치 보안".

    커널 격리는 지능형 공격에 대해 추가 보호 계층을 제공하는 가상화 기반 보안 기술입니다. 메모리 무결성은 다음 중 하나입니다. 구성 요소코어 절연 기술 - 삽입을 방지하도록 설계된 기능 악성코드높은 보안성을 갖춘 프로세스로 전환합니다. 페이지가 다음과 같은 사실로 보호가 보장됩니다. 가상 메모리커널은 무결성 검사를 성공적으로 통과한 후에만 실행을 시작합니다.

    Windows 10 2018년 4월 업데이트에서 메모리 무결성 기능을 활성화하여 컴퓨터 보안을 강화하는 방법을 살펴보겠습니다.

    메모리 무결성 활성화

    • "커널 격리" 섹션에서 "커널 격리 세부 정보" 링크를 클릭합니다.
    • "메모리 무결성" 스위치를 활성 위치로 이동합니다.

    이 단계를 완료한 후 변경 사항을 적용하려면 컴퓨터를 다시 시작해야 합니다.

    메모: 이 기능이 작동하려면 프로세서가 가상화 기술을 지원해야 합니다. 또한 BIOS 또는 UEFI에서 가상화를 활성화해야 합니다. 그렇지 않으면 해당 기능을 사용할 수 없습니다.

    커널 격리 문제 해결

    경우에 따라 커널 격리가 활성화된 경우 일부 응용 프로그램에서 호환성 문제가 발생할 수 있습니다. 문제를 해결하려면 해당 기능을 비활성화해야 합니다.

    Windows Defender 보안 센터에서 메모리 무결성을 비활성화하려고 했지만 옵션이 회색으로 표시되고 "이 설정은 관리자가 제어합니다"라는 메시지가 표시되는 경우에도 레지스트리를 사용하여 기능을 비활성화할 수 있습니다.

    메모: 레지스트리를 잘못 변경하면 심각한 문제가 발생할 수 있습니다. 생성하는 것이 좋습니다. 백업 복사본 Windows 레지스트리이 단계를 수행하기 전에. 레지스트리 편집기 메뉴에서 파일 > 내보내기를 선택하여 백업을 저장합니다.

    • 프레스 조합 Windows 키+ R을 눌러 실행 창을 불러옵니다.
    • regedit를 입력하고 확인을 클릭하여 레지스트리 편집기를 시작합니다.
    • 다음 경로로 이동하세요.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity
    • 항목을 두 번 클릭하세요. 활성화됨.
    • 값을 1에서 0으로 변경합니다.
    • 확인을 클릭하세요.

    비활성화하려면 기성품을 사용할 수도 있습니다.

    질문: 언제 장편컴퓨터를 종료하거나 절전 모드를 종료하면 시작 메뉴의 글꼴이 손실됩니다.


    컴퓨터가 장시간 실행 중이거나 절전 모드에서 해제되면 시작 메뉴는 다음과 같습니다.

    이 문제를 해결하는 방법은 무엇입니까? 도와주세요, 제발..

    답변:이미 OS를 재설치하고 업데이트했습니다(

    질문: 컴퓨터를 S1 유형의 절전 모드("대기")로 전환하는 방법은 무엇입니까?


    데스크탑 컴퓨터나 랩톱 모두에서 컴퓨터를 S1 유형의 절전 모드로 전환하는 방법을 알 수 없습니다.

    "powercfg /a" 실행 결과

    이 시스템에서는 다음과 같은 절전 모드 상태를 사용할 수 있습니다.
    대기 모드(S3)

    이 시스템에서는 다음 절전 상태를 사용할 수 없습니다.
    대기 모드(S1)

    대기 모드(S2)
    시스템 펌웨어는 대기 모드를 지원하지 않습니다.

    동면
    최대 절전 모드가 활성화되지 않았습니다.

    대기 모드(연결됨)
    시스템 펌웨어는 대기 모드를 지원하지 않습니다.

    하이브리드 절전 모드

    빠른 시작
    최대 절전 모드를 사용할 수 없습니다.

    답변:컴퓨터를 몇 분 동안 유휴 상태로 두었다가 절전 모드로 전환했다가 깨우세요.

    이벤트 로그에서:
    작업 => 사용자 정의 보기 만들기
    날짜 항목에서 예를 들어 2분 간격을 설정하고 무슨 일이 일어났는지 확인하세요.

    더 이상 아이디어가 없습니다.

    자, 컴퓨터에 연결된 드라이버와 장치를 확인해보세요

    질문: 새벽 4시에 절전 모드에서 깨어나세요


    거의 매일 밤 컴퓨터가 깨어나 나를 깨운다.
    장치 관리자에서, 네트워크 어댑터, "마법 패키지로 깨우기" 확인란을 선택 취소했습니다.
    전원 설정에서 깨우기 타이머를 비활성화했습니다.
    명령줄에는 powercfg /waketimers 명령이 표시됩니다.

    c:\>powercfg /waketimers
    레거시 커널 호출자가 설정한 타이머는 2016년 1월 9일 04:14:46까지 유효합니다.
    원인:

    돕다. 누구를 비난해야 하며 무엇을 해야 합니까?

    답변:마침내 이 병을 고쳤습니다.

    제어판 -> 보안 및 유지 관리 -> 유지 관리 -> 자동 유지 관리 -> 유지 관리 설정 변경 -> "유지 관리 작업으로 컴퓨터를 깨울 수 있도록 허용..." 선택을 취소합니다.

    질문: 밤에 컴퓨터가 자동으로 켜집니다.


    최근(약 1~2개월) 컴퓨터를 절전 모드로 전환한 후(중단된 순간부터 아침에 계속 작업할 수 있도록) 약 30~60분 정도 지나면 자동으로 켜집니다. 밤 12시쯤에 일을 끝냅니다. 켜짐 시간은 오전 0:30~1:00입니다. 모니터가 계속 어두워집니다. 침대에서 일어나 마우스를 움직입니다. 모니터가 켜지고 일반 모드로 프로필에 들어가서 다시 절전 모드로 들어갑니다. 그날 밤에는 더 이상 켜지지 않습니다.

    컴퓨터에는 Win7 시스템과 상주 MS Cecurity Essentials 바이러스 백신이 있습니다. 현재(새로 다운로드한) 치유 유틸리티인 mbar와 DrWeb Cureit를 여러 번 실행했습니다. 몇 가지 문제가 발견되었지만 자발적인 활성화는 여전히 남아 있었습니다. 내 컴퓨터를 DDOS 공격에 연결하는 바이러스인 것 같습니다. 또한 내 IP에서 들어오는 의심스러운 트래픽으로 인해 Google에서 액세스를 차단하는 경우가 가끔 있습니다. 이런 현상은 꽤 오랫동안(1년 이상) 발생했지만 최근에야 컴퓨터가 저절로 켜지는 것을 발견했습니다.

    실제로 문제는 문제가 알려져 있고 상대적으로 간단하게 처리할 수 있다면 권장 소프트웨어를 다운로드하여 스캔하여 게시하는 것입니다. 문제가 더 복잡하다면 나 자신이나 지역 전문가를 속이지 않고 어리석게도 시스템을 재정비할 것입니다.

    답변: 매사냥꾼, 제가 ​​잘 이해하지 못한 부분이 있습니다...

    보낸 메시지 매사냥꾼

    컴퓨터를 절전 모드로 전환한 후... 저절로 켜집니다.

    7의 절전 모드와 최대 절전 모드는 완전히 다릅니다. 절전 모드로 전환하려면 키보드의 절전 버튼을 누르세요. 시작을 클릭하고 종료 옆의 화살표 위에 마우스를 올리면 절전 모드가 포함된 메뉴가 나타납니다. 그리고 최대 절전 모드. 최대 절전 모드 중에는 종료할 때와 동일하게 컴퓨터 전원이 차단되지만, 컴퓨터를 켜면 절전 모드 이후와 동일하게 작업을 시작할 수 있습니다.
    그런데 당신은 다른 것에 대해 물었습니다. 작업 스케줄러를 확인하셨나요?

    질문: 밤에 컴퓨터가 절전 모드에서 깨어납니다.


    모두들 좋은 하루 되세요. 나는 이미 이 문제에 지쳤습니다. PC 자체가 밤에 절전 모드에서 깨어나는데, Windows 10이고, 7 이전에는 그런 문제가 없었기 때문에 이 섹션을 선택했습니다.
    이틀 전에 이미 수행된 작업:
    1. 이벤트 뷰어에서 이유를 찾았습니다. 타이머 - 예약된 작업 "NT TASK\Microsoft\Windows\UpdateOrchestrator\Reboot"가 실행되어 컴퓨터를 절전 모드에서 깨우도록 요청합니다.
    작업 스케줄러로 이동하여 이 작업을 찾은 다음 항목의 선택을 취소했습니다. 조건 - 작업을 완료하려면 컴퓨터를 깨우세요.
    2. powercfg.cpl로 이동 - 전원 계획 설정 - 고급 전원 설정 변경 - 절전 - 깨우기 타이머 허용 - 비활성화.

    오늘 밤에도 상황은 반복되었지만 이벤트 뷰어에서는 다음과 같은 내용만 발견했습니다.

    시스템이 저전력 상태에서 돌아왔습니다.

    수면 시간: 2016-10-29T21:38:38.657073700Z
    기상 시간: 2016-10-29T21:58:34.625754700Z

    출력 소스: 데이터 없음

    3. 장치 관리자에서 마우스, 키보드, 네트워크 드라이브 및 내가 찾은 모든 위치에서 "이 장치가 컴퓨터를 대기 모드에서 깨울 수 있도록 허용"을 선택 취소했습니다.

    이 문제를 해결하도록 도와주세요. 더 이상 어디를 파야할지 모르겠습니다...

    답변:

    보낸 메시지 GoLeMjkeee

    매일 2-00시에 서 있습니다

    낮으로 바꿔보세요.

    보낸 메시지 GoLeMjkeee

    하지만 진드기.... 그럴 가치가 없어.

    10 그녀는 그런 성격을 갖고 있어요.

    질문: 절전 모드를 종료할 때 "로그인" 버튼으로 화면을 숨기려면 어떻게 해야 합니까?


    윈도우 10 프로 1607.
    절전 모드에서 깨어나면 Windows에서 "로그인"을 누르라는 메시지를 표시합니다. 깨어나면 나타남 블루 스크린사용자 이름이 적혀 있고 그 아래에 "로그인"버튼이 있습니다. 비밀번호가 설정되지 않았습니다. 사용자는 시스템에서 관리자 권한을 가진 유일한 사람입니다. 모든 것이 로드되면 화면이나 버튼을 누르지 않고 데스크톱만 로드됩니다.

    설정에서- 계정- 로그인 옵션에는 "로그인 필요" 옵션이 없습니다.
    사용자 계정 창의 사용자 탭에서 "사용자 이름 및 비밀번호 필요" 확인란이 선택 취소되어 있습니다.
    전원 계획 설정에는 "깨우기 시 암호 필요" 옵션이 없습니다.

    절전 모드를 종료할 때 "로그인" 버튼을 제거하여 컴퓨터가 이 창을 우회하고 바탕 화면을 자동으로 시작하도록 하려면 어떻게 해야 합니까?

    답변:수면 모드 제거

    질문: Windows 8.1이 절전 모드에서 꺼집니다.


    안녕하세요.
    절전 모드에 문제가 있습니다. 잠자는 동안 컴퓨터가 완전히 꺼집니다. 저것들. 힘이 완전히 상실되었습니다. 이전에는 잠자기 중에 시스템 장치의 표시등이 깜박였지만 이제는 마우스도 USB로 완전히 꺼지고 키보드는 꺼지고 전원 버튼으로만 켤 수 있으며 물론 모든 정보가 저장되지 않습니다.
    나는 인터넷에서 많은 주제를 읽었지만 단 하나의 문제도 나와 비슷한 문제는 없습니다.
    즉시 PC 사양을 적어보겠습니다: ASUS p8h67 마더보드, 비디오 Radeon HD7850(asus), intel i5 2550k, 8gb RAM, SSD 실리콘파워 s55 120GB, HDD WD 500GB.
    Windows 8.1을 설치했는데 매우 오랫동안 설치되어 있었고 절전 모드가 제대로 작동했습니다. 어느 날 작동이 멈췄는데, 왜 그리고 어떤 작업(일부 작업) 후에 작동이 멈췄는지조차 모르겠습니다. 그런 건 설치하지 않은 것 같고 드라이버 업데이트도 안 한 것 같습니다.
    습관적으로 끄지 않고 잠자기 버튼을 누르는 경우가 많은데, 어느 날 작동이 시작되어 며칠 동안 작동했지만 시간이 지나면서 작동이 멈췄습니다.
    드라이버를 업데이트하거나 제거해 보았습니다. 컴퓨터에서 불필요한 장치의 연결을 끊으려고 했습니다(글쎄요, 여러분은 전혀 모르실 겁니다). 잠들기 전 다양한 프로그램을 비활성화합니다. 아무것도 도움이 되지 않았습니다.
    나는 인터넷에서 내 정보와 정확히 동일한 유일한 정보를 찾았습니다(8번 항목).

    물론 드라이버, 다른 플랫폼을 설치할 수 없었습니다. 나 자신도 같은 것을 찾을 수 없었습니다.

    OS를 다시 설치하고 싶지 않아서... 모든 것(침목 제외)이 잘 작동합니다.
    어떤 아이디어가 잘못될 수 있나요?

    17분 후에 추가됨
    BIOS를 재설정하고 업데이트했다는 글을 잊어버렸습니다.

    답변:그런 다음 전원 공급 장치나 마더보드를 확인하십시오. 프로그래밍 방식으로 절전 및 최대 절전 모드 powercfg /h를 구성했습니다.

    또 다른 옵션은 확인(교체)입니다. hiberfil.sys - 최대 절전 모드를 담당합니다.

    질문: Windows 8의 절전 모드


    절전 모드에서 다시 시작한 후 Windows 8이 재부팅되기 시작합니다. 창문 로딩 중다음 메시지가 나타납니다
    이 문제를 해결하는 방법을 알려주세요.

    답변:

    보낸 메시지 azat145

    절전 모드에서 다시 시작한 후 Windows 8이 재부팅되기 시작합니다.

    처음에는.
    후에.

    질문: 하이브리드 절전 모드 또는 최대 절전 모드? 데스크탑에서는 어느 것이 더 바람직합니까?


    일반적으로 질문은 제목에 있습니다. 검색 엔진에서 이해했거나 오히려 모든 사이트에 복사된 동일한 기사에서 하이브리드 절전 모드의 장점은 켜고 깨우는 속도에만 있다고 말할 수 있습니다. 데스크탑 Windows 7 x64에서 최대 절전 모드를 사용하려는 경우 함정이 있습니까? 그냥 전원만 끄면 되는데, 하이브리드 절전 모드에서는 그러지 않는 게 더 좋습니다. 응답해주신 모든 분들께 감사드립니다.

    답변:오늘 읽었습니다. 좋습니다. 제 생각에는 Microsoft에서 제공하는 짧은 브리핑 외에는 제 질문에 대한 답이 없습니다. 그런 다음 내 결론을 공유하겠습니다(비슷한 문제에 대해 이 주제를 접하는 사람들을 위해).
    그래서:

    찬성하이브리드 절전 모드: 1. 빠른 시작, 컴퓨터를 완전히 끌 필요가 없습니다.
    마이너스: 1. 부하 HDD(한 진행자에 따르면 윈도우 파티션우리 포럼의 7); 2. 완전히 꺼지지 않고 약간이라도 전류를 계속 끌어옵니다(일부에게는 이 점이 장점임)

    즉, 네트워크와의 연결을 지속적으로 끊고 싶지만 오랫동안 OS를 로드/종료하고 싶지 않은 경우 최대 절전 모드가 필요합니다.
    하이브리드 절전 모드 - 지속적으로 온라인 상태를 유지하는 PC에 만족하는 사용자를 위한 모드입니다.

    질문: 이전에는 노트북이 시작 시 꺼졌으나 지금은 절전 모드에 있습니다.


    나의 델 노트북 Windows 8.1이 설치된 INSPIRON 3521은 시작 시 꺼지는 데 사용되었습니다(DELL 로고가 나타남 - 끄고 다시 켜서 정상 작동). 시스템을 10k로 업데이트했지만 도움이 되지 않았습니다. 나는 그것을 도시에서 유명하고 자랑스러운 불행한 서비스 센터로 가져갔습니다. 그곳에서 노트북은 2 주 동안 사람들의 관심에서 안전하게 쉬었습니다. 문제를 해결한 후 빠른 부팅을 비활성화하여 문제를 해결하고 행복하게 8.1로 돌아왔습니다.
    한 달이 지났고 이제 노트북 덮개를 닫으면 절전 모드로 들어가지만(설정에서와 같이) 20분 정도 지나면 완전히 꺼집니다(이전에는 이런 일이 발생하지 않았으며 전원 설정도 변경되었습니다). 변경되지 않았습니다). 전원을 켜면 상황은 위에서 설명한 것과 같습니다. 켜기 - 로고 - 끄기. 다시 시작한 후 정상 작동됩니다. 모든 드라이버가 업데이트되었습니다. 무엇이 문제이고 어떻게 해결하나요? 불쌍한 친구가 안타깝습니다. 고작 1 년 반 밖에 안됐고 졸업장과 국가 증명서도 있습니다. 이제 석사까지 끌고 갈 수 없습니다 ...

    답변:어떻게 작동하길 원하시나요? 개인적으로 저는 절전 모드가 아닌 최대 절전 모드를 사용합니다. 비활성 상태에서 최대 절전 모드로 전환도 활성화되어 있으며 설정은 첨부 파일에 있습니다.

    전원 설정 전송 중

    공유하다