NdisCancelTimerObject 함수(ndis.h)

NdisCancelTimerObject 함수는 NdisSetTimerObject 함수에 대한 이전 호출과 연결된 타이머 개체를 취소합니다.

구문

BOOLEAN NdisCancelTimerObject(
  [in] NDIS_HANDLE TimerObject
);

매개 변수

[in] TimerObject

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

반환 값

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

설명

마지막으로 지정한 시간 제한 간격이 아직 만료되지 않은 경우 NdisCancelTimerObject 를 호출하면 NetTimerCallback 함수의 실행이 취소됩니다.

NDIS 드라이버는 NetTimerCallback 함수가 드라이버가 이미 릴리스한 리소스에 액세스하려고 시도하지 않도록 중지하거나 언로드할 때 먼저 NdisCancelTimerObject를 호출해야 합니다.

NdisSetTimerObject 함수의 MillisecondsPeriod 매개 변수에 0이 아닌 값을 지정한 경우 타이머를 주기적 타이머라고 합니다. MillisecondsPeriod 매개 변수에 0 값을 지정한 경우 타이머를 원샷 타이머라고 합니다. 다음 점은 두 유형의 타이머를 모두 취소하는 데 적용됩니다.

  • NdisCancelTimerObject의 호출자가 주기적인 타이머를 취소하는 경우 IRQL = PASSIVE_LEVEL 실행 중이어야 합니다. 그렇지 않으면 NdisCancelTimerObject 의 호출자가 IRQL <= DISPATCH_LEVEL 실행되어야 합니다.
  • NdisCancelTimerObject의 호출자가 주기적 타이머를 취소하는 경우 NdisCancelTimerObjectKeFlushQueuedDpcs를 호출하여 타이머가 현재 실행되고 있지 않은지 확인합니다. 따라서 호출자는 타이머가 현재 다른 프로세서에서 실행되고 있지 않은지 확인하기 위해 별도의 동기화 메커니즘이 필요하지 않습니다.

    NdisCancelTimerObject의 호출자가 원샷 타이머를 취소하는 경우 호출자는 타이머가 현재 다른 프로세서에서 실행되고 있지 않은지 확인하기 위해 별도의 동기화 메커니즘이 있어야 합니다. 예를 들어 호출자는 스레드가 완료되려고 할 때 타이머 스레드가 뮤텍스 개체에 신호를 보낼 때까지 대기하기 위해 NDIS_WAIT_FOR_MUTEX 호출할 수 있습니다.

    자세한 내용은 네트워크 드라이버의 동기화 및 알림을 참조하세요.

요구 사항

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

추가 정보

NdisAllocateTimerObject

NdisSetTimerObject

NetTimerCallback