Partager via


StorPortInterlockedInsertHeadList, fonction (storport.h)

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 la tête 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 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 verrou de rotation uniquement avec les routines StorPortInterlockedXxxList.

Valeur de retour

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

Retourner le code 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.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête storport.h (include Storport.h)

Voir aussi

InitializeListHead

InsertHeadList

StorPortInitializeSpinLock

StorPortInterlockedInsertTailList

StorPortInterlockedRemoveHeadList