CustomTimerDpc 컨텍스트 정보 제공
KeInitializeDpc에 전달된 DeferredContext 포인터는 다른 드라이버 루틴과 CustomTimerDpc 루틴 자체가 상태를 유지할 수 있는 컨텍스트 영역을 가리킵니다. 커널은 DPC 루틴에 대한 모든 호출에서 DeferredContext 포인터를 전달합니다.
IoTimer 루틴과 달리 CustomTimerDpc는 드라이버에서 만든 디바이스 개체와 특별한 연관이 없습니다. 그러나 드라이버는 컨텍스트 영역에 디바이스 개체에 대한 포인터를 포함하여 CustomTimerDpc 루틴을 드라이버에서 만든 디바이스 개체와 연결할 수 있습니다.
컨텍스트 영역은 드라이버가 할당한 상주 메모리에 있어야 합니다. 일반적으로 이 컨텍스트 영역은 디바이스 확장에 있지만 비페이지 풀에 있을 수도 있습니다. 드라이버가 컨트롤러 개체를 사용하는 경우 컨트롤러 확장에 있을 수 있습니다. 컨텍스트 영역의 내용은 드라이버로 결정됩니다.
CustomTimerDpc 루틴이 드라이버의 ISR과 컨텍스트 정보를 공유하는 경우 CustomTimerDpc 루틴은 KeSynchronizeExecution을 사용하여 공유 컨텍스트에 액세스하는 SynchCritSection 루틴을 호출해야 합니다. 자세한 내용은 중요 섹션 사용을 참조하세요.
CustomTimerDpc가 다른 비 ISR 드라이버 루틴과 컨텍스트 정보를 공유하는 경우 DeferredContext의 영역은 임원 스핀 잠금으로 보호되어야 합니다. 자세한 내용은 스핀 잠금을 참조하세요.