次の方法で共有


StorPortInterlockedPopEntrySList 関数 (storport.h)

Storport で管理される 1 つのリンクリストの先頭から項目を削除します。 リストへのアクセスは、マルチプロセッサ システムで同期されます。

構文

構文

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

パラメーター

[in] HwDeviceExtension

ホスト バス アダプター (HBA) のハードウェア デバイス拡張機能へのポインター。

[in, out] SListHead

1 つのリンクされたリストの先頭を表す STOR_SLIST_HEADER 構造体へのポインター。 この構造体は不透明と見なされ、Storport ドライバーでのみ使用されます。

[out] Result

リスト エントリ ポインターへのポインター。 返される値は、リストの先頭から削除された項目へのポインターです。 リストが空の場合、Result が指す値に NULL が返されます。

戻り値

StorPortInterlockedPopEntrySList は 、次のいずれかの状態コードを返します。

リターン コード 説明
STOR_STATUS_NOT_IMPLEMENTED
この関数は、アクティブなオペレーティング システムには実装されていません。
STOR_STATUS_SUCCESS
リスト アイテムがリストから正常に削除されたか、既に空です。
STOR_STATUS_INVALID_PARAMETER
SListHead または Result のポインターが NULL です

注釈

StorPortInterlockedPopEntrySList は、一覧にエントリがない場合もSTATUS_SUCCESSを返します。 エントリが返されなかったことを確認するには、 Result によって参照されるポインター値を NULL に対して評価する必要があります。

StorPortInterlockedPopEntrySList は、返されるリスト エントリを解放しません。 リストの割り当て解除コードは、境界配置の調整の前に取得した場所のリスト エントリに割り当てられたメモリを解放するように注意する必要があります。 Result が指す値は、MEMORY_ALLOCATION_ALIGNMENTの調整により割り当てられた元のバッファーの場所ではない可能性があります。 StorPortInterlockedPushEntrySList の解説を参照してください。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header storport.h (Storport.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPushEntrySList

StorPortQueryDepthSList