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);
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;
}