Partager via


StorPortInterlockedPopEntrySList, fonction (storport.h)

Supprime un élément à l’avant d’une liste liée gérée par Storport. L’accès à la liste est synchronisé sur un système multiprocesseur.

Syntaxe

Syntaxe

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

Paramètres

[in] HwDeviceExtension

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

[in, out] SListHead

Pointeur vers une structure STOR_SLIST_HEADER qui représente la tête d’une liste liée de manière singly. Cette structure est considérée comme opaque et est utilisée uniquement par le pilote Storport.

[out] Result

Pointeur vers un pointeur d’entrée de liste. La valeur retournée est un pointeur vers l’élément supprimé de l’avant de la liste. Si la liste est vide, NULL est retournée dans la valeur indiquée par Result.

Valeur de retour

StorPortInterlockedPopEntrySList retourne l’un des codes d’état 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
L’élément de liste a été supprimé de la liste ou est déjà vide.
STOR_STATUS_INVALID_PARAMETER
Un pointeur dans SListHead ou Result est NULL.

Remarques

Le StorPortInterlockedPopEntrySList retourne également STATUS_SUCCESS lorsqu’aucune entrée n’est dans la liste. La valeur de pointeur référencée par Result doit être évaluée pour NULL pour vérifier qu’aucune entrée n’a été retournée.

StorPortInterlockedPopEntrySList ne libère pas l’entrée de liste qu’elle retourne. Tout code de désallocation de la liste doit prendre soin de libérer de la mémoire allouée pour une entrée de liste à l’emplacement obtenu avant tout ajustement pour l’alignement des limites. La valeur pointée par Résultat peut ne pas être l’emplacement de mémoire tampon d’origine alloué en raison d’un ajustement pour MEMORY_ALLOCATION_ALIGNMENT. Consultez les remarques relatives à StorPortInterlockedPushEntrySList.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.
plateforme cible Universel
d’en-tête storport.h (include Storport.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPushEntrySList

StorPortQueryDepthSList