CmListGetPrevElement

NTSTATUS __stdcall CmListGetPrevElement(LIST_ENTRY *ListHead, LIST_ENTRY **ListIterator, INT64 FieldOffset){
  LIST_ENTRY *Blink; 

  Blink = *ListIterator;
  if( !*ListIterator )
  {
    Blink = ListHead->Blink;
    *ListIterator = Blink;
  }
  if( ListHead == Blink )
    return 0;
  *ListIterator = Blink->Blink;
  return(_DWORD)Blink - 32;
}

Referenced by:

CmGetKCBCacheSecurity
CmGetKeyFlags
CmGetKeyLastWriteTime
CmpCheckOpenAccessOnKeyBody
CmpQueryKeyDataFromNode
CmpUndoDeleteKeyForTrans