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ò ottenere.

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 l'archiviazione.

[in] Count

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

[in] Limit

Specifica il valore massimo di conteggio che il semaforo può ottenere. Il 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 a pagina allocato dal chiamante.

Per altre informazioni sugli oggetti semafori, vedere Semaphore Objects.

Requisiti

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 HwStorPortProhibitedDDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

Vedi anche

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject