21#pragma alloc_text(PAGE, Ext2QueueRequest)
22#pragma alloc_text(PAGE, Ext2DeQueueRequest)
69 Irp->IoStatus.Status );
174 &IrpContext->WorkQueueItem,
235 switch (IrpContext->MajorFunction) {
288#if (_WIN32_WINNT >= 0x0500)
293 DEBUG(
DL_ERR, (
"Ext2DispatchRequest: Unexpected major function: %xh\n",
294 IrpContext->MajorFunction));
325 if (AtIrqlPassiveLevel) {
330 IsTopLevelIrp =
TRUE;
346 !AtIrqlPassiveLevel) {
364 if (AtIrqlPassiveLevel) {
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
ARC_STATUS Ext2Close(ULONG FileId)
ARC_STATUS Ext2Read(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
#define IRP_CONTEXT_FLAG_WAIT
VOID Ext2OplockComplete(IN PVOID Context, IN PIRP Irp)
NTSTATUS Ext2QueueRequest(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2BuildRequest(PDEVICE_OBJECT DeviceObject, PIRP Irp)
NTSTATUS Ext2DispatchRequest(IN PEXT2_IRP_CONTEXT IrpContext)
VOID Ext2LockIrp(IN PVOID Context, IN PIRP Irp)
VOID Ext2DeQueueRequest(IN PVOID Context)
_In_ PIO_STACK_LOCATION IrpSp
#define KeGetCurrentIrql()
NTSTATUS Ext2ExceptionHandler(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2QueryEa(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2Pnp(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ExceptionFilter(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
NTSTATUS Ext2Flush(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ShutDown(IN PEXT2_IRP_CONTEXT IrpContext)
PEXT2_IRP_CONTEXT Ext2AllocateIrpContext(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS Ext2Cleanup(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2DirectoryControl(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2Create(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2SetFileInformation(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2QueryVolumeInformation(IN PEXT2_IRP_CONTEXT IrpContext)
struct ext2_icb * PEXT2_IRP_CONTEXT
NTSTATUS Ext2LockControl(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2LockUserBuffer(IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation)
NTSTATUS Ext2FileSystemControl(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2SetVolumeInformation(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2DeviceControl(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2Write(IN PEXT2_IRP_CONTEXT IrpContext)
#define Ext2CompleteRequest(Irp, bPrint, PriorityBoost)
VOID Ext2DbgPrintCall(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_CONTEXT_FLAG_REQUEUED
#define FSCTL_GET_RETRIEVAL_POINTER_BASE
NTSTATUS Ext2QueryFileInformation(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
NTSTATUS Ext2SetEa(IN PEXT2_IRP_CONTEXT IrpContext)
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define FSRTL_FSP_TOP_LEVEL_IRP
_In_ ULONG _In_ ULONG _In_ ULONG Length
PIRP NTAPI IoGetTopLevelIrp(VOID)
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define FSCTL_GET_RETRIEVAL_POINTERS
#define FSCTL_GET_VOLUME_BITMAP
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define IRP_MJ_DIRECTORY_CONTROL
#define IRP_MN_QUERY_DIRECTORY
#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
EXT2_IDENTIFIER_TYPE Type
union _IO_STACK_LOCATION::@1579 Parameters
struct _IO_STACK_LOCATION::@3978::@3983 Write
struct _IO_STACK_LOCATION::@3978::@3993 FileSystemControl
EXT2_IDENTIFIER Identifier
#define STATUS_DRIVER_INTERNAL_ERROR
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
#define PEXTENDED_IO_STACK_LOCATION
_In_ PDEVICE_OBJECT DeviceObject
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define ExInitializeWorkItem(Item, Routine, Context)
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define IRP_MJ_SET_VOLUME_INFORMATION
#define IRP_MN_USER_FS_REQUEST
#define IRP_MJ_FLUSH_BUFFERS