33 bool acquired_fcb_lock =
false;
35 Irp->IoStatus.Information = 0;
39 acquired_fcb_lock =
true;
48 if (acquired_fcb_lock)
56 TRACE(
"read %Iu bytes\n",
Irp->IoStatus.Information);
79 ERR(
"write_file returned %08lx\n",
Status);
83 TRACE(
"wrote %Iu bytes\n",
Irp->IoStatus.Information);
114 ERR(
"out of memory\n");
121 if (!
Irp->MdlAddress) {
142 ERR(
"out of memory\n");
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
static void write_file(HANDLE hFile, const WCHAR *str)
NTSTATUS NTSTATUS NTSTATUS do_read(PIRP Irp, bool wait, ULONG *bytes_read)
#define NT_SUCCESS(StatCode)
bool is_top_level(_In_ PIRP Irp)
_In_ PIO_STACK_LOCATION IrpSp
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExAcquireResourceSharedLite(res, wait)
#define EXCEPTION_EXECUTE_HANDLER
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
#define _Function_class_(x)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
ULONG NTAPI ExIsResourceAcquiredSharedLite(IN PERESOURCE Resource)
#define IoCompleteRequest
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
struct _IO_STACK_LOCATION::@3974::@3979 Write
struct _IO_STACK_LOCATION::@3974::@3978 Read
union _IO_STACK_LOCATION::@1575 Parameters
FSRTL_ADVANCED_FCB_HEADER Header
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
bool add_thread_job(device_extension *Vcb, PIRP Irp)
NTSTATUS do_write_job(device_extension *Vcb, PIRP Irp)
NTSTATUS do_read_job(PIRP Irp)
#define ExInitializeWorkItem(Item, Routine, Context)
enum _LOCK_OPERATION LOCK_OPERATION