Partager via


Fonction StorPortInterlockedInsertHeadList (storport.h)

La routine StorPortInterlockedInsertHeadList insère atomiquement une entrée au début d’une liste doublement liée de structures STOR_LIST_ENTRY .

Syntaxe

ULONG StorPortInterlockedInsertHeadList(
  [in]      PVOID            HwDeviceExtension,
  [in, out] PSTOR_LIST_ENTRY ListHead,
  [in, out] PSTOR_LIST_ENTRY ListEntry,
  [in, out] PSTOR_LIST_ENTRY *Result,
  [in, out] PSTOR_KSPIN_LOCK Lock
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique matériel pour l’adaptateur de bus hôte (HBA).

[in, out] ListHead

Pointeur vers la structure STOR_LIST_ENTRY qui représente le début de la liste.

[in, out] ListEntry

Pointeur vers une structure STOR_LIST_ENTRY qui représente l’entrée à insérer dans la liste.

[in, out] Result

Pointeur vers une structure STOR_LIST_ENTRY qui représente la première entrée de la liste avant l’insertion de la nouvelle entrée.

[in, out] Lock

Pointeur vers une structure de STOR_KSPIN_LOCK qui sert de verrou de rotation utilisé pour synchroniser l’accès à la liste. Le stockage du verrou de rotation doit être résident et doit avoir été initialisé en appelant StorPortInitializeSpinLock.

Vous devez utiliser ce verrouillage de rotation uniquement avec les routines StorPortInterlockedXxxList .

Valeur retournée

StorPortInterlockedInsertHeadList retourne un code status tel que l’un des éléments suivants :

Code de retour Description
STOR_STATUS_NOT_IMPLEMENTED Cette fonction n’est pas implémentée sur le système d’exploitation actif.
STOR_STATUS_SUCCESS Les éléments de liste ont été supprimés correctement ou la liste est déjà vide.
STOR_STATUS_INVALID_PARAMETER Un pointeur dans ListHead ou Result est NULL.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)

Voir aussi

InitializeListHead

InsertHeadList

StorPortInitializeSpinLock

StorPortInterlockedInsertTailList

StorPortInterlockedRemoveHeadList