다음을 통해 공유


NdisMSleep 함수(ndis.h)

NdisMSleep 함수는 지정된 간격의 호출자 실행을 마이크로초 단위로 지연합니다.

구문

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

매개 변수

[in] MicrosecondsToSleep

지연할 마이크로초 수입니다.

반환 값

없음

설명

MicrosecondsToSleep 매개 변수에서 지정된 시간 동안 호출자의 실행 스레드가 대기 상태로 전환되어 다른 스레드가 현재 프로세서에서 작업을 완료할 수 있습니다. 지정된 간격이 만료되면 NdisMSleep 호출자가 실행을 다시 시작합니다.

드라이버가 IRQL >= DISPATCH_LEVEL 실행되지 않는 한 NDIS 드라이버는 항상 NdisStallExecution 함수를 기본 설정으로 NdisMSleep을 호출해야 합니다. NdisMSleep은NdisStallExecution보다 더 큰 지연 간격을 허용할 수 있습니다. 이 간격은 50 마이크로초보다 큰 간격으로 호출 해서는 안 됩니다. 시간 제한이 30,000,000마이크로초(즉, 30초 또는 반 분)인 NdisMSleep 을 호출하지 마세요.

미니포트 드라이버는 MiniportInitializeEx에서 NdisMSleep을 호출할 수 있으며, 해당 함수가 작업을 계속하기 전에 두 함수가 NIC에서 상태 변경이 발생할 때까지 기다려야 하는 경우 MiniportHaltEx 함수를 호출할 수 있습니다.

NdisMSleepNdisStallExecution을 모두 사용하면 미니포트 드라이버가 호스트 CPU의 클록 속도와 일관되게 독립적으로 지연을 지정할 수 있습니다. 두 함수 모두 NdisSetTimerObject 함수에서 사용하는 것과 같은 타이머 개체를 포함하지 않습니다. 호스트 시스템 클록의 해상도는 다양하므로 매우 짧은 지연은 NdisMSleep 또는 NdisStallExecution 호출자가 지정한 지연 시간보다 약간 더 오래 걸릴 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(NdisMSleep(NDIS 5.1 참조))에 대해 지원됩니다. NDIS 5.1 드라이버에 대해 지원됩니다(NdisMSleep(NDIS 5.1 참조)).
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL < DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Miniport_Driver_Function(ndis)

추가 정보

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback