다음을 통해 공유


서비스 타이머

NDIS 6.0 타이머가 실행되면 NDIS는 NetTimerCallback 함수를 호출합니다. 이 함수의 FunctionContext 매개 변수에는 드라이버 제공 컨텍스트 영역에 대한 포인터가 포함되어 있습니다. FunctionContext의 기본값은 NDIS_TIMER_CHARACTERISTICS 구조체에 지정됩니다. 드라이버는 구조체를 NdisAllocateTimerObject 함수에 전달하여 연결된 타이머 개체를 할당하고 초기화했습니다.

드라이버가 NdisSetTimerObject 함수에 전달되는 FunctionContext 매개 변수에서 NULL이 아닌 값을 지정한 경우 NDIS는 해당 값을 NetTimerCallback 함수의 FunctionContext 매개 변수에 전달합니다. 그렇지 않으면 NDIS는 NDIS_TIMER_CHARACTERISTICS 구조에 지정된 기본값을 전달합니다.

모든 NDIS 드라이버에는 둘 이상의 NetTimerCallback 함수가 있을 수 있습니다. 이러한 각 NetTimerCallback 함수는 다른 드라이버 할당 및 초기화된 타이머 개체와 연결되어야 합니다.

NdisSetTimerObject 함수를 호출하면 타이머 개체와 연결된 NetTimerCallback 함수가 지정된 간격 후에 또는 주기적으로 실행됩니다.

NetTimerCallback 함수에 대한 호출을 중지하려면 NdisCancelTimerObject 함수를 호출합니다. NdisCancelTimerObject를 호출하기 전에 시간 제한이 이미 만료된 경우에도 NDIS는 NetTimerCallback을 호출할 수 있습니다.

NetTimerCallback 함수가 리소스를 다른 드라이버 함수와 공유하는 경우 드라이버는 스핀 잠금을 사용하여 해당 리소스에 대한 액세스를 동기화해야 합니다.