есть "Singly and Doubly Linked Lists"... их применяют как механизм множественного доступа. к некой последовательности.
то есть, это механизм связаного списока, каждый член которого указывает на следующий (или два соседних).
http://msdn.microsoft.com/en-us/library/aa489548(classic).aspxвыглядит страшновато, но на самом деле вещь донельзя простая и понятная)
наверное в вашем случае подойдет Doubly Linked Lists.
1. создаете свою структуру которая будет хранить элемент ваших данных
2. одним из полей этой структуры должена быть LIST_ENTRY.
а дальше размещаете ее в памяти сами, а дальше можете добавлять новые структуры в список(в начало/конец) и произвольно удалять.
главное преимущество - существуют механизмы атомарного добавления/удаления элементов этой очереди ExInterlockedInsertHeadList, ExInterlockedInsertTailList, ExInterlockedRemoveHeadList - ЕСЛИ ОНО ВАМ НАДО.
а если нет - то можно что нибудь свое написать)