Condividi tramite


Funzione StorPortInterlockedPopEntrySList (storport.h)

Rimuove un elemento dalla parte anteriore di un elenco collegato gestito di Storport. L'accesso all'elenco viene sincronizzato in un sistema multiprocessore.

Sintassi

Sintassi

ULONG StorPortInterlockedPopEntrySList(
  [in]      PVOID              HwDeviceExtension,
  [in, out] PSTOR_SLIST_HEADER SListHead,
  [out]     PSTOR_SLIST_ENTRY  *Result
);

Parametri

[in] HwDeviceExtension

Puntatore all'estensione del dispositivo hardware per la scheda bus host (HBA).

[in, out] SListHead

Puntatore a una struttura STOR_SLIST_HEADER che rappresenta l'intestazione di un elenco collegato singly. Questa struttura è considerata opaca e viene utilizzata solo dal driver Storport.

[out] Result

Puntatore a un puntatore di ingresso dell'elenco. Il valore restituito è un puntatore all'elemento rimosso dalla parte anteriore dell'elenco. Se l'elenco è vuoto, NULL viene restituito nel valore a cui punta Result.

Valore restituito

StorPortInterlockedPopEntrySList restituisce uno dei codici di stato seguenti:

Codice restituito Descrizione
STOR_STATUS_NOT_IMPLEMENTED
Questa funzione non viene implementata nel sistema operativo attivo.
STOR_STATUS_SUCCESS
L'elemento di elenco è stato rimosso correttamente dall'elenco o è già vuoto.
STOR_STATUS_INVALID_PARAMETER
Un puntatore in SListHead o Result è NULL.

Osservazioni

Anche StorPortInterlockedPopEntrySList restituirà STATUS_SUCCESS quando non sono presenti voci nell'elenco. Il valore del puntatore a cui fa riferimento Result deve essere valutato per NULL per verificare che non sia stata restituita alcuna voce.

StorPortInterlockedPopEntrySList non libera la voce di elenco restituita. Qualsiasi codice di deallocazione per l'elenco deve prestare attenzione a liberare memoria allocata per una voce di elenco nella posizione ottenuta prima di qualsiasi regolazione per l'allineamento dei limiti. Il valore a cui punta Result potrebbe non essere la posizione del buffer originale allocata a causa di una regolazione per MEMORY_ALLOCATION_ALIGNMENT. Vedere le osservazioni per StorPortInterlockedPushEntrySList.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 8.
piattaforma di destinazione Universale
intestazione storport.h (include Storport.h)
IRQL <= DISPATCH_LEVEL

Vedere anche

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPushEntrySList

StorPortQueryDepthSList