Go to the source code of this file.
◆ _Function_class_()
_Function_class_ |
( |
WORKER_THREAD_ROUTINE |
| ) |
|
Definition at line 95 of file worker-thread.c.
NTSTATUS do_write_job(device_extension *Vcb, PIRP Irp)
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
NTSTATUS do_read_job(PIRP Irp)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
_In_ PIO_STACK_LOCATION IrpSp
◆ add_thread_job()
Definition at line 109 of file worker-thread.c.
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)
#define ExInitializeWorkItem(Item, Routine, Context)
#define EXCEPTION_EXECUTE_HANDLER
VOID NTAPI IoFreeMdl(PMDL Mdl)
#define ExAllocatePoolWithTag(hernya, size, tag)
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
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionCode()
#define _SEH2_YIELD(__stmt)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Referenced by _Dispatch_type_().
◆ do_read_job()
Definition at line 26 of file worker-thread.c.
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);
bool is_top_level(_In_ PIRP Irp)
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 NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
_In_ PIO_STACK_LOCATION IrpSp
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
ULONG NTAPI ExIsResourceAcquiredSharedLite(IN PERESOURCE Resource)
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionCode()
Referenced by _Dispatch_type_(), and _Function_class_().
◆ do_write_job()
Definition at line 68 of file worker-thread.c.
79 ERR(
"write_file returned %08lx\n",
Status);
83 TRACE(
"wrote %Iu bytes\n",
Irp->IoStatus.Information);
bool is_top_level(_In_ PIRP Irp)
NTSTATUS write_file(device_extension *Vcb, PIRP Irp, bool wait, bool deferred_write) __attribute__((nonnull(1
#define IoCompleteRequest
#define NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionCode()
Referenced by _Dispatch_type_(), and _Function_class_().