LIST_ENTRY应用操作

来源:互联网 发布:淘宝店怎么装修免费 编辑:程序博客网 时间:2024/06/10 21:05
typedef struct _FILE_LIST_ENTRY {
LIST_ENTRY Entry;
PWSTR NameBuffer;
} FILE_LIST_ENTRY, *PFILE_LIST_ENTRY;    

LIST_ENTRY            listHead;
PFILE_LIST_ENTRY        tmpEntry;

Initialize(tmpEntry);
InitializeListHead(&listHead);

InsertHeadList(&listHead, &tmpEntry->Entry); 
InsertTailList(&listHead, &tmpEntry->Entry); 

IsListEmpty(&listHead);

PFILE_LIST_ENTRY tmpEntry = RemoveHeadList(&listHead);
PFILE_LIST_ENTRY tmpEntry = RemoveTailList(&listHead);
RemoveEntryList(&tmpEntry->Entry);

typedef struct _XXX_LIST_ENTRY
{
 LIST_ENTRY m_List;
        ...
}XXX_LIST_ENTRY;


XXX_LIST_ENTRY*
LookupWaitEntryByID(PLIST_ENTRY lpListHeader, ULONG ulID)
{
    PLIST_ENTRY lpList;
    XXX_LIST_ENTRY* lpEntry = NULL;

    for (lpList = lpListHeader->Flink; lpList != lpListHeader; lpList = lpList->Flink)
    {
        lpEntry = CONTAINING_RECORD(lpList, WAIT_LIST_ENTRY, m_List);
        if (lpEntry->m_ID == ulID)
        {
            return lpEntry;
        }
    }

    return NULL;
}

原创粉丝点击