32#define Dbg (DEBUG_TRACE_FSP_DISPATCHER)
35#pragma alloc_text(PAGE, FatFspDispatch)
83 Irp = IrpContext->OriginatingIrp;
124 ExceptionCompletedIrp =
FALSE;
155 Status = FatCommonCreate( IrpContext,
Irp );
214 (
VOID) FatCommonRead( IrpContext,
Irp );
223 (
VOID) FatCommonWrite( IrpContext,
Irp );
232 (
VOID) FatCommonQueryInformation( IrpContext,
Irp );
241 (
VOID) FatCommonSetInformation( IrpContext,
Irp );
268 (
VOID) FatCommonFlushBuffers( IrpContext,
Irp );
277 (
VOID) FatCommonQueryVolumeInfo( IrpContext,
Irp );
286 (
VOID) FatCommonSetVolumeInfo( IrpContext,
Irp );
295 (
VOID) FatCommonCleanup( IrpContext,
Irp );
304 (
VOID) FatCommonDirectoryControl( IrpContext,
Irp );
313 (
VOID) FatCommonFileSystemControl( IrpContext,
Irp );
322 (
VOID) FatCommonLockControl( IrpContext,
Irp );
331 (
VOID) FatCommonDeviceControl( IrpContext,
Irp );
340 (
VOID) FatCommonShutdown( IrpContext,
Irp );
353 (
VOID) FatCommonPnp( IrpContext,
Irp );
378 ExceptionCompletedIrp =
TRUE;
400 if ( VolDo !=
NULL ) {
427 WorkQueueItem.List );
431 Irp = IrpContext->OriginatingIrp;
461 if (VolDo->OverflowQueueCount > 0) {
469 VolDo->OverflowQueueCount -= 1;
475 VolDo->PostedRequestCount -= 1;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
enum _TYPE_OF_OPEN TYPE_OF_OPEN
#define IRP_CONTEXT_FLAG_IN_FSP
#define IRP_CONTEXT_FLAG_WAIT
IRP_CONTEXT * PIRP_CONTEXT
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS FatCommonQueryEa(IN PIRP_CONTEXT IrpContext, IN PIRP Irp)
NTSTATUS FatCommonSetEa(IN PIRP_CONTEXT IrpContext, IN PIRP Irp)
#define KeReleaseSpinLock(sl, irql)
#define KeAcquireSpinLock(sl, irql)
#define RemoveHeadList(ListHead)
PVOID FatRemoveOverflowEntry(IN PVOLUME_DEVICE_OBJECT VolDo)
ULONG FatExceptionFilter(IN PIRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
#define DebugTrace(INDENT, LEVEL, X, Y)
TYPE_OF_OPEN FatDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Outptr_ PVCB *Vcb, _Outptr_ PFCB *FcbOrDcb, _Outptr_ PCCB *Ccb)
#define FatCompleteRequest(IRPCONTEXT, IRP, STATUS)
WORKER_THREAD_ROUTINE FatFspDispatch
#define IRP_CONTEXT_FLAG_RECURSIVE_CALL
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define FSRTL_FSP_TOP_LEVEL_IRP
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define IRP_MJ_DIRECTORY_CONTROL
#define IRP_MJ_DEVICE_CONTROL
#define IRP_MJ_QUERY_VOLUME_INFORMATION
#define IRP_MJ_LOCK_CONTROL
#define IRP_MJ_SET_INFORMATION
#define IRP_MJ_QUERY_INFORMATION
base of all file and directory entries
PDEVICE_OBJECT DeviceObject
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_DEVICE_REQUEST
_In_ PDEVICE_OBJECT DeviceObject
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define IRP_MJ_SET_VOLUME_INFORMATION
#define IRP_MJ_FLUSH_BUFFERS