Funzione KeInitializeSpinLock (wdm.h)
La routine KeInitializeSpinLock inizializza una variabile di tipo KSPIN_LOCK.
Sintassi
void KeInitializeSpinLock(
[out] PKSPIN_LOCK SpinLock
);
Parametri
[out] SpinLock
Puntatore a un blocco spin, per il quale il chiamante deve fornire lo spazio di archiviazione.
Valore restituito
nessuno
Osservazioni
Questa routine deve essere chiamata prima di una chiamata iniziale a KeAcquireSpinLock, a KeAcquireInStackQueuedSpinLock o a qualsiasi altra routine di supporto che richiede un blocco spin come argomento.
L'archiviazione per un oggetto di blocco di selezione deve risiedere: nell'estensione del dispositivo di un oggetto dispositivo creato dal driver, nell'estensione controller di un oggetto controller creato dal driver o in un pool non a pagina allocato dal chiamante.
Questa funzione è inlined per i sistemi x64 da Windows XP a Windows 7. A partire da Windows 8, questa funzione viene esportata da ntoskrnl.lib
. Di conseguenza, se si usa la Windows 10 WDK per compilare un file binario in esecuzione in Windows 7 e pertanto è necessario usare il pool NX per superare Windows 10 test HLK, è necessario definire WIN9X_COMPAT_SPINLOCK
. In caso contrario, è possibile che venga visualizzato Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)
.
Per altre informazioni sui blocchi di rotazione, vedere Blocchi di rotazione.
I chiamanti di questa routine possono essere eseguiti in qualsiasi IRQL. In genere, un chiamante viene eseguito in IRQL = PASSIVE_LEVEL in una routine AddDevice .
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Qualsiasi livello (vedere la sezione Osservazioni) |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport) |
Vedi anche
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock