23#define BugCheckFileId (CDFS_BUG_CHECK_WORKQUE)
30#define FSP_PER_DEVICE_THRESHOLD (2)
43#pragma alloc_text(PAGE, CdFsdPostRequest)
44#pragma alloc_text(PAGE, CdOplockComplete)
45#pragma alloc_text(PAGE, CdPrePostIrp)
88 CdPrePostIrp( IrpContext,
Irp );
142 switch (IrpContext->MajorFunction) {
154 if ((IrpContext->TeardownFcb !=
NULL) &&
155 *(IrpContext->TeardownFcb) !=
NULL) {
157 CdTeardownStructures( IrpContext, *(IrpContext->TeardownFcb), &RemovedFcb );
165 *(IrpContext->TeardownFcb) =
NULL;
166 IrpContext->TeardownFcb =
NULL;
272 switch (IrpContext->MajorFunction) {
284 if (IrpContext->TeardownFcb !=
NULL) {
286 CdTeardownStructures( IrpContext, *(IrpContext->TeardownFcb), &RemovedFcb );
294 *(IrpContext->TeardownFcb) =
NULL;
295 IrpContext->TeardownFcb =
NULL;
381 &IrpContext->WorkQueueItem.List );
407#pragma prefast(suppress:28155, "the function prototype is correct")
414#pragma prefast(suppress: 28159, "prefast believes this routine is obsolete, but it is ok for CDFS to continue using it")
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
#define ASSERT_IRP_CONTEXT(IC)
VOID CdAddToWorkque(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
#define FSP_PER_DEVICE_THRESHOLD
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
#define CdReleaseFcb(IC, F)
WORKER_THREAD_ROUTINE CdFspDispatch
#define CdLockUserBuffer(IC, BL, OP)
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
#define _Requires_lock_held_(lock)
#define _Analysis_assume_lock_held_(lock)
_In_ PIO_STACK_LOCATION IrpSp
#define InsertTailList(ListHead, Entry)
#define KeReleaseSpinLock(sl, irql)
#define KeAcquireSpinLock(sl, irql)
#define IRP_MJ_DIRECTORY_CONTROL
#define IRP_MN_QUERY_DIRECTORY
struct _IO_STACK_LOCATION::@3970::@3974 Read
struct _IO_STACK_LOCATION::@3970::@3976 QueryDirectory
PDEVICE_OBJECT DeviceObject
union _IO_STACK_LOCATION::@1575 Parameters
__volatile LONG PostedRequestCount
KSPIN_LOCK OverflowQueueSpinLock
#define CONTAINING_RECORD(address, type, field)
_In_ PDEVICE_OBJECT DeviceObject
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define ExInitializeWorkItem(Item, Routine, Context)