다음을 통해 공유


NDIS_TIMER_FUNCTION 콜백 함수(ndis.h)

NdisTimerFunction 콜백 함수는 드라이버가 타이머가 실행되면 원샷 또는 정기적인 타이머를 설정한 후 NDIS에서 호출됩니다.

참고NDIS_TIMER_FUNCTION 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.
 

통사론

NDIS_TIMER_FUNCTION NdisTimerFunction;

void NdisTimerFunction(
  [in] PVOID SystemSpecific1,
  [in] PVOID FunctionContext,
  [in] PVOID SystemSpecific2,
  [in] PVOID SystemSpecific3
)
{...}

매개 변수

[in] SystemSpecific1

시스템 사용을 위해 예약된 시스템별 값에 대한 포인터입니다.

[in] FunctionContext

드라이버가 NdisSetTimerObject 함수에 전달한 드라이버 제공 컨텍스트 영역에 대한 포인터입니다. NdisSetTimerObjectFunctionContext 매개 변수가 NULL 경우 NDIS는 드라이버에서 지정한 기본값을 사용합니다. NDIS_TIMER_CHARACTERISTICS 구조체입니다. 드라이버는 연결된 타이머 개체를 초기화하기 위해 NdisAllocateTimerObject 함수에 구조를 전달했습니다.

[in] SystemSpecific2

시스템 사용을 위해 예약된 시스템별 값에 대한 포인터입니다.

[in] SystemSpecific3

시스템 사용을 위해 예약된 시스템별 값에 대한 포인터입니다.

반환 값

없음

발언

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

드라이버는 다음을 호출하여 드라이버 할당 타이머 개체를 초기화합니다. NdisAllocateTimerObject 함수입니다.

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

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

NdisTimerFunction 콜백이 다른 드라이버 함수와 리소스를 공유하는 경우 드라이버는 해당 리소스에 대한 액세스를 스핀 잠금과 동기화해야 합니다.

예제

NdisTimerFunction 함수를 정의하려면 먼저 정의하려는 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버 , SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 코드 분석을데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 "MyTimerCallback"이라는 NdisTimerFunction 함수를 정의하려면 다음 코드 예제와 같이 NDIS_TIMER_FUNCTION 형식을 사용합니다.

NDIS_TIMER_FUNCTION MyTimerCallback;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MyTimerCallback(
    PVOID  SystemSpecific1,
    PVOID  FunctionContext,
    PVOID  SystemSpecific2,
    PVOID  SystemSpecific3
    )
  {...}

NDIS_TIMER_FUNCTION 함수 형식은 Ndis.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 NDIS_TIMER_FUNCTION 함수 형식에 적용되는 주석이 사용되는지 확인합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations대한 자세한 내용은 함수 동작 주석참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL DISPATCH_LEVEL

참고 항목

NDIS 타이머 초기화

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetTimerObject

서비스 타이머

타이머 설정 및 지우기