NdisSetTimerObject 함수(ndis.h)

NdisSetTimerObject 함수는 지정된 간격 후에 또는 주기적으로 타이머 개체를 실행하도록 설정합니다.

구문

BOOLEAN NdisSetTimerObject(
  [in]           NDIS_HANDLE   TimerObject,
  [in]           LARGE_INTEGER DueTime,
  [in, optional] LONG          MillisecondsPeriod,
  [in, optional] PVOID         FunctionContext
);

매개 변수

[in] TimerObject

드라이버가 를 호출할 때 NDIS에서 제공하는 타이머 개체에 대한 핸들입니다. NdisAllocateTimerObject 함수입니다.

[in] DueTime

타이머가 만료되는 절대 또는 상대 시간입니다. DueTime 매개 변수의 값이 음수이면 만료 시간은 현재 시스템 시간을 기준으로 합니다. 그렇지 않으면 만료 시간이 절대입니다. 만료 시간은 시스템 시간 단위(100나노초 간격)로 표시됩니다. 절대 만료 시간은 시스템 시간의 변경 내용을 추적합니다. 상대 만료 시간은 시스템 시간 변경의 영향을 받지 않습니다.

[in, optional] MillisecondsPeriod

타이머가 취소되지 않는 한 타이머가 실행될 때마다 그리고 NetTimerCallback 함수에 대한 다음 호출 사이에 경과하는 주기적 시간 간격(밀리초)입니다. 이 매개 변수의 값은 MAXLONG보다 작거나 같아야 합니다.

[in, optional] FunctionContext

타이머가 실행될 때 NDIS가 연결된 NetTimerCallback 함수에 전달하는 호출자 제공 컨텍스트 영역에 대한 포인터입니다. 이 매개 변수가 NULL이면 NDIS는 에 지정된 기본값을 사용합니다. NDIS_TIMER_CHARACTERISTICS 구조체입니다.

반환 값

타이머 개체가 시스템 타이머 큐에 이미 있는 경우 NdisSetTimerObjectTRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

설명

드라이버가 NdisSetTimerObject를 호출하면 DueTime 매개 변수에 지정된 간격이 만료될 때까지 타이머 개체가 큐에 대기합니다. 간격이 만료되면 타이머 개체가 큐에서 해제되고 프로세서를 사용할 수 있게 되는 즉시 IRQL = DISPATCH_LEVEL 호출자 제공 NetTimerCallback 함수가 한 번 실행됩니다.

MillisecondsPeriod 매개 변수에 0이 아닌 값을 지정하면 MillisecondsPeriod에 지정된 간격이 만료될 때까지 타이머 개체가 다시 큐에 대기합니다. 이 간격이 만료되면 타이머 개체가 다시 큐에 추가되고 프로세서를 사용할 수 있게 되는 즉시 IRQL = DISPATCH_LEVEL 호출자 제공 NetTimerCallback 함수가 한 번 실행됩니다.

참고 Windows 7부터는 를 호출하여 전력 소비를 줄일 수 있습니다.정확한 타이머 정밀도가 필요하지 않은 경우 NdisSetTimerObject 대신 NdisSetCoalescableTimerObject입니다.
 
타이머 동작에 대한 자세한 내용은 KeSetTimerEx를 참조하세요.

타이머를 취소하려면 NdisCancelTimerObject 함수를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Timer_Function(ndis), PeriodicTimer(ndis)

추가 정보

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback