2017-03-23 8 views
0

이 테스트 KMDF 프로젝트입니다. 그것의 기능은 읽기 및 쓰기 레지스트리입니다.커널 드라이버가 예외를 throw 할 때 레지스트리 값을 업데이트 할 수없는 이유는 무엇입니까?

사례 1 :

1.read 레지스트리 값과 값이 창에서

2.Check 레지스트리를 레지스트리에 쓰기는 값이 업데이트되었습니다.

Case2 :

1.read 레지스트리 값, 레지스트리 끝에서 예외를 추가 할 값을 작성합니다. 부팅 윈도우가 발생할 때 BSOD가 발생합니다.

2. 예외 예외, 부팅 창, 레지스트리 검사, 값이 업데이트되지 않습니다.

다음은 내가 사용하는 예외 코드입니다.

void GoException() 
    { 
    PDRIVER_OBJECT obj = NULL; 
    obj->DeviceObject->CurrentIrp = NULL; 
    } 

두 개의 레지스트리 경로를 사용해보십시오. DELL \ 테스트 \

HKEY_LOCAL_MACHINE \ 소프트웨어 (정상 경로) \ CurrentControlSet \ Services에

HKEY_LOCAL_MACHINE을 \ 시스템 \ TEST (서비스 경로)

답변

0

레지스트리 키를 업데이트 할 수없는 이유, 그것으로 얻을 필요 부팅시 변경 사항을 저장하는 특정 지점. 한 드라이버에서 예외가 발생하면 저장되지 않을 수 있습니다.