Difference between r1.5 and the current
@@ -26,11 +26,16 @@
== 드라이버 등록 ==
== 플러그 앤 플레이 (PnP) ==
== 디스패치 (Dispatch) ==
== 메모리 ==
=== ExFreePool ===
{{{
if (Buffer != NULL)
ExFreePool(Buffer);
}}}
== 동기화 ==
=== 스핀락 ===
==== KeInitializeSpinLock ====
{{{
KeInitializeSpinLock(&BufferLock);
}}}
WDM API #
--
김도집 2025/01/12T04:00:09
그냥 정리 차원에서 작성하는 것이다.
분류 기준도 없으며, 자세한 설명도 없으며, 그냥 임의대로 정리한 것이다.
디바이스 드라이버 소스를 보다보면 #pragma로 시작하는 것들이 있다.
사용 예는 다음과 같다.
#pragma code_seg{"INIT") // start INIT section
...
#pragma code_seg() // end INIT section
간략하게 정리하면 다음과 같다.
pragma | 설명 |
code_seg("INIT") | INIT 섹션을 시작한다. |
code_seg() | INIT 섹션이 끝났다. |
code_seg("PAGE") | PAGE 섹션을 시작한다. |
code_seg() | PAGE 섹션이 끝났다. |
if (Buffer != NULL)
ExFreePool(Buffer);
1.7.1.1 ?KeInitializeSpinLock #
KeInitializeSpinLock(&BufferLock);