Condividi tramite


Funzione KeInitializeSemaphore (wdm.h)

La routine KeInitializeSemaphore inizializza un oggetto semaforo con un conteggio specificato e specifica un limite superiore che il conteggio può raggiungere.

Sintassi

void KeInitializeSemaphore(
  [out] PRKSEMAPHORE Semaphore,
  [in]  LONG         Count,
  [in]  LONG         Limit
);

Parametri

[out] Semaphore

Puntatore a un oggetto dispatcher di tipo semaforo, per il quale il chiamante fornisce lo spazio di archiviazione.

[in] Count

Specifica il valore del conteggio iniziale da assegnare al semaforo. Questo valore deve essere positivo. Un valore diverso da zero imposta lo stato iniziale del semaforo su segnalato.

[in] Limit

Specifica il valore massimo di conteggio che il semaforo può raggiungere. Questo valore deve essere positivo. Determina il numero di thread in attesa che diventano idonei per l'esecuzione quando il semaforo è impostato sullo stato segnalato e può quindi accedere alla risorsa che il semaforo protegge.

Valore restituito

Nessuno

Osservazioni

L'oggetto semaforo viene inizializzato con il conteggio iniziale e il limite specificati.

L'archiviazione per un oggetto semaforo deve essere residente: nell'estensione del dispositivo di un oggetto dispositivo creato dal driver, nell'estensione del controller di un oggetto controller creato dal driver o in un pool non di pagine allocato dal chiamante.

Per altre informazioni sugli oggetti semaforo, vedere Semaphore Objects.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 2000.
piattaforma di destinazione Universale
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
regole di conformità DDI HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

Vedere anche

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject