21 #pragma alloc_text(PAGE, Ext2QueueRequest) 22 #pragma alloc_text(PAGE, Ext2DeQueueRequest) 65 Irp->IoStatus.Status );
166 &IrpContext->WorkQueueItem,
223 switch (IrpContext->MajorFunction) {
276 #if (_WIN32_WINNT >= 0x0500) 279 #endif //(_WIN32_WINNT >= 0x0500) 281 DEBUG(
DL_ERR, (
"Ext2DispatchRequest: Unexpected major function: %xh\n",
282 IrpContext->MajorFunction));
309 if (AtIrqlPassiveLevel) {
314 IsTopLevelIrp =
TRUE;
330 !AtIrqlPassiveLevel) {
348 if (AtIrqlPassiveLevel) {
#define KeGetCurrentIrql()
#define IRP_CONTEXT_FLAG_WAIT
NTSTATUS NTAPI Ext2BuildRequest(PDEVICE_OBJECT DeviceObject, PIRP Irp)
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS Ext2Cleanup(IN PEXT2_IRP_CONTEXT IrpContext)
#define FsRtlEnterFileSystem
#define IRP_MJ_FLUSH_BUFFERS
NTSTATUS Ext2FileSystemControl(IN PEXT2_IRP_CONTEXT IrpContext)
#define FsRtlExitFileSystem
NTSTATUS Ext2QueueRequest(IN PEXT2_IRP_CONTEXT IrpContext)
#define IRP_MJ_SET_VOLUME_INFORMATION
#define IRP_MN_QUERY_DIRECTORY
NTSTATUS Ext2LockUserBuffer(IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation)
NTSTATUS Ext2SetEa(IN PEXT2_IRP_CONTEXT IrpContext)
VOID NTAPI Ext2OplockComplete(IN PVOID Context, IN PIRP Irp)
#define FSCTL_GET_RETRIEVAL_POINTER_BASE
NTSTATUS Ext2LockControl(IN PEXT2_IRP_CONTEXT IrpContext)
EXT2_IDENTIFIER_TYPE Type
NTSTATUS Ext2QueryEa(IN PEXT2_IRP_CONTEXT IrpContext)
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define _SEH2_GetExceptionInformation()
NTSTATUS Ext2DispatchRequest(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2DeviceControl(IN PEXT2_IRP_CONTEXT IrpContext)
#define IRP_MJ_QUERY_VOLUME_INFORMATION
#define IRP_MJ_DIRECTORY_CONTROL
NTSTATUS Ext2QueryVolumeInformation(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2Write(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2QueryFileInformation(IN PEXT2_IRP_CONTEXT IrpContext)
EXT2_IDENTIFIER Identifier
NTSTATUS Ext2ShutDown(IN PEXT2_IRP_CONTEXT IrpContext)
#define IRP_MN_USER_FS_REQUEST
#define ExInitializeWorkItem(Item, Routine, Context)
NTSTATUS Ext2DirectoryControl(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ExceptionHandler(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ExceptionFilter(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
#define IRP_MJ_FILE_SYSTEM_CONTROL
ARC_STATUS Ext2Close(ULONG FileId)
PIRP NTAPI IoGetTopLevelIrp(VOID)
#define Ext2CompleteRequest(Irp, bPrint, PriorityBoost)
#define FSRTL_FSP_TOP_LEVEL_IRP
#define STATUS_UNSUCCESSFUL
#define STATUS_DRIVER_INTERNAL_ERROR
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
#define FSCTL_GET_RETRIEVAL_POINTERS
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
ARC_STATUS Ext2Read(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
NTSTATUS Ext2Create(IN PEXT2_IRP_CONTEXT IrpContext)
#define FSCTL_GET_VOLUME_BITMAP
_In_ PIO_STACK_LOCATION IrpSp
struct ext2_icb * PEXT2_IRP_CONTEXT
#define IRP_CONTEXT_FLAG_REQUEUED
#define IRP_MJ_LOCK_CONTROL
NTSTATUS Ext2SetVolumeInformation(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2SetFileInformation(IN PEXT2_IRP_CONTEXT IrpContext)
#define IRP_MJ_SET_INFORMATION
NTSTATUS Ext2Flush(IN PEXT2_IRP_CONTEXT IrpContext)
PEXT2_IRP_CONTEXT Ext2AllocateIrpContext(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MJ_QUERY_INFORMATION
#define _SEH2_EXCEPT(...)
IO_STACK_LOCATION * PEXTENDED_IO_STACK_LOCATION
VOID NTAPI Ext2DeQueueRequest(IN PVOID Context)
NTSTATUS Ext2Pnp(IN PEXT2_IRP_CONTEXT IrpContext)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
VOID NTAPI Ext2LockIrp(IN PVOID Context, IN PIRP Irp)
VOID Ext2DbgPrintCall(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MJ_DEVICE_CONTROL