Функция RemoveHeadList (wdm.h)

Подпрограмма RemoveHeadList удаляет запись из начала двукратного связанного списка LIST_ENTRY структур.

Синтаксис

PLIST_ENTRY RemoveHeadList(
  [in, out] PLIST_ENTRY ListHead
);

Параметры

[in, out] ListHead

Указатель на структуру LIST_ENTRY , которая служит заголовком списка.

Возвращаемое значение

RemoveHeadList возвращает указатель на запись, удаленную из списка. Если список пуст, Функция RemoveHeadList возвращает ListHead.

Комментарии

RemoveHeadList удаляет первую запись из списка, задав ListHead-Flink> указатель на вторую запись в списке. Подпрограмма задает элемент Blink второй записи в ListHead. В случае, если список пуст, это фактически no-op.

Сведения об использовании этой процедуры при реализации двудвойного связанного списка см. в разделе Singly и Doubly Linked Lists.

Вызывающие объект RemoveHeadList могут выполняться в любом IRQL. Если RemoveHeadList вызывается в IRQL >= DISPATCH_LEVEL, хранилище для ListHead и записи списка должны быть резидентами.

Требования

   
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Рабочий стол
Заголовок wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL Любой уровень (см. раздел "Примечания")
Правила соответствия DDI CancelSpinLock(wdm), CompleteRequest(wdm), DoubleCompletion(wdm), DoubleExFreePool(storport), Init_NdisAllocateIoWorkItem(ndis), InvalidReqAccessLocal(kmdf), IoAllocateFree(wdm), IoReuseIrp(wdm), IrpProcessingComplete(wdm), MarkInterlockedQueuedIrps(wdm), MarkQueuedIrps(wdm), MarkIrpPending(wdm), MarkIrpPending2(wdm), PendedCompletedRequest(wdm), PendedCompletedRequest2(wdm), PendedCompletedRequest3(wdm), PendedCompletedRequestEx(wdm),RemoveLock(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm), RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockMnRemove(wdm), RemoveLockMnSurpriseRemove(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePnp(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm)

См. также раздел

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList