Funzione NdisMSleep (ndis.h)

La funzione NdisMSleep ritarda l'esecuzione del chiamante per un determinato intervallo in microsecondi.

Sintassi

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

Parametri

[in] MicrosecondsToSleep

Numero di microsecondi da ritardare.

Valore restituito

nessuno

Osservazioni

Per il tempo specificato nel parametro MicrosecondsToSleep , il thread di esecuzione del chiamante viene inserito in uno stato di attesa, consentendo così ad altri thread di lavorare sul processore corrente. Alla scadenza dell'intervallo specificato, il chiamante di NdisMSleep riprende l'esecuzione.

Un driver NDIS deve sempre chiamare NdisMSleep in preferenza alla funzione NdisStallExecution a meno che il driver non sia in esecuzione in IRQL >= DISPATCH_LEVEL. NdisMSleep può accettare un intervallo di ritardo maggiore di NdisStallExecution, che non deve mai essere chiamato con un intervallo maggiore di 50 microsecondi. Non chiamare NdisMSleep con un timeout di più di 30.000.000 microsecondi (ovvero 30 secondi o mezzo minuto).

I driver Miniport possono chiamare NdisMSleep dal miniportInitializeEx e, possibilmente, le funzioni MiniportHaltEx quando una delle due funzioni deve attendere che le modifiche di stato vengano apportate nella scheda di interfaccia di rete prima che tale funzione continui le operazioni.

Sia NdisMSleep che NdisStallExecution consentono a un driver miniport di specificare un ritardo coerente e indipendentemente dalla velocità di clock della CPU host. Nessuna delle due funzioni implica un oggetto timer, ad esempio quelli usati dalla funzione NdisSetTimerObject . La risoluzione dell'orologio del sistema host varia, pertanto i ritardi molto brevi possono richiedere tempi leggermente più lunghi rispetto al tempo di ritardo specificato dal chiamante di NdisMSleep o NdisStallExecution .

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisMSleep (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisMSleep (NDIS 5.1)).
Piattaforma di destinazione Universale
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL < DISPATCH_LEVEL
Regole di conformità DDI Irql_Miniport_Driver_Function(ndis)

Vedi anche

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback