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

서비스 타이머

타이머 설정 및 지우기