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");
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
bool is_top_level(_In_ PIRP Irp)
NTSTATUS write_file(device_extension *Vcb, PIRP Irp, bool wait, bool deferred_write) __attribute__((nonnull(1
_Function_class_(WORKER_THREAD_ROUTINE)
NTSTATUS NTSTATUS NTSTATUS do_read(PIRP Irp, bool wait, ULONG *bytes_read)
#define IoCompleteRequest
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
FSRTL_ADVANCED_FCB_HEADER Header
#define ExInitializeWorkItem(Item, Routine, Context)
#define NT_SUCCESS(StatCode)
NTSTATUS do_write_job(device_extension *Vcb, PIRP Irp)
#define EXCEPTION_EXECUTE_HANDLER
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
VOID NTAPI IoFreeMdl(PMDL Mdl)
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS do_read_job(PIRP Irp)
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
PMDL NTAPI IoAllocateMdl(IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN PIRP Irp)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
enum _LOCK_OPERATION LOCK_OPERATION
_In_ PIO_STACK_LOCATION IrpSp
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
bool add_thread_job(device_extension *Vcb, PIRP Irp)
ULONG NTAPI ExIsResourceAcquiredSharedLite(IN PERESOURCE Resource)
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionCode()
#define _SEH2_YIELD(__stmt)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters