allocators.c
[reactos.git] / reactos / drivers / ksfilter / ks / bag.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Kernel Streaming
4 * FILE: drivers/ksfilter/ks/bag.c
5 * PURPOSE: KS Object Bag functions
6 * PROGRAMMER: Johannes Anderwald
7 */
8
9
10 #include "priv.h"
11
12
13 #if 0
14 typedef struct
15 {
16 LIST_ENTRY Entry;
17 PVOID Item;
18 PFNKSFREE Free;
19 LONG ReferenceCount;
20 }KSOBJECT_BAG_ENTRY;
21
22 typedef struct
23 {
24 LIST_ENTRY ListHead;
25 KMUTEX Lock;
26 }KSOBJECT_BAG_IMPL;
27
28 /*
29 @implemented
30 */
31 KSDDKAPI
32 NTSTATUS
33 NTAPI
34 KsAddItemToObjectBag(
35 IN KSOBJECT_BAG ObjectBag,
36 IN PVOID Item,
37 IN PFNKSFREE Free OPTIONAL)
38 {
39 KSOBJECT_BAG_ENTRY * Entry;
40 KSOBJECT_BAG_IMPL * Bag = (KSOBJECT_BAG_IMPL)ObjectBag;
41
42 Entry = ExAllocatePool(NonPagedPool, sizeof(KSOBJECT_BAG_ENTRY));
43 if (!Entry)
44 return STATUS_INSUFFICIENT_RESOURCES;
45
46 Entry->Free = Free;
47 Entry->Item = Item;
48
49 InsertTailList(&Bag->ListHead, &Entry->Entry);
50 return STATUS_SUCCESS;
51 }
52
53 KSDDKAPI
54 ULONG
55 NTAPI
56 KsRemoveItemFromObjectBag(
57 IN KSOBJECT_BAG ObjectBag,
58 IN PVOID Item,
59 IN BOOLEAN Free)
60 {
61 KSOBJECT_BAG_IMPL * Bag = (KSOBJECT_BAG_IMPL)ObjectBag;
62
63
64
65
66 }
67 #endif