49 return KsDevice->lpVtbl->InitializeObjectBag(KsDevice, Bag,
NULL);
61 Entry = ObjectList->Flink;
63 while(
Entry != ObjectList)
94 DPRINT(
"KsAddItemToObjectBag\n");
154 Entry = DeviceHeader->ObjectBags.Flink;
155 while(
Entry != &DeviceHeader->ObjectBags)
379 if (*PointerToPointerToItem)
390 if (!BagEntry ||
NewSize > OldSize)
413 if (*PointerToPointerToItem)
435 *PointerToPointerToItem =
Item;
struct KSIOBJECT_BAG_ENTRY * PKSIOBJECT_BAG_ENTRY
#define STATUS_INSUFFICIENT_RESOURCES
NTSTATUS NTAPI KsAddItemToObjectBag(IN KSOBJECT_BAG ObjectBag, IN PVOID Item, IN PFNKSFREE Free OPTIONAL)
struct KSIDEVICE_HEADER * PKSIDEVICE_HEADER
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
KSDDKAPI NTSTATUS NTAPI _KsEdit(IN KSOBJECT_BAG ObjectBag, IN OUT PVOID *PointerToPointerToItem, IN ULONG NewSize, IN ULONG OldSize, IN ULONG Tag)
KSDDKAPI ULONG NTAPI KsRemoveItemFromObjectBag(IN KSOBJECT_BAG ObjectBag, IN PVOID Item, IN BOOLEAN Free)
#define InsertTailList(ListHead, Entry)
LONG NTAPI KeReleaseMutex(IN PKMUTEX Mutex, IN BOOLEAN Wait)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
struct KSIOBJECT_BAG * PKSIOBJECT_BAG
#define RtlMoveMemory(Destination, Source, Length)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
KSDDKAPI NTSTATUS NTAPI KsAllocateObjectBag(IN PKSDEVICE Device, OUT KSOBJECT_BAG *ObjectBag)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
VOID FreeItem(IN PVOID Item)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
struct _LIST_ENTRY * Flink
#define NT_SUCCESS(StatCode)
ULONG KspGetObjectItemReferenceCount(IN PKSIDEVICE_HEADER DeviceHeader, IN PVOID Item)
#define InterlockedDecrement
_Must_inspect_result_ _In_ USHORT NewSize
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
PKSIOBJECT_BAG_ENTRY KspFindObjectBagItem(IN PLIST_ENTRY ObjectList, IN PVOID Item)
#define InterlockedIncrement
KSDDKAPI NTSTATUS NTAPI KsCopyObjectBagItems(IN KSOBJECT_BAG ObjectBagDestination, IN KSOBJECT_BAG ObjectBagSource)
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
base of all file and directory entries
KSDDKAPI VOID NTAPI KsFreeObjectBag(IN KSOBJECT_BAG ObjectBag)
PULONG MinorVersion OPTIONAL