Go to the source code of this file.
◆ _Function_class_()
_Function_class_ |
( |
WORKER_THREAD_ROUTINE |
| ) |
|
Definition at line 95 of file worker-thread.c.
96 {
99
104 }
105
107}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS do_write_job(device_extension *Vcb, PIRP Irp)
NTSTATUS do_read_job(PIRP Irp)
◆ add_thread_job()
Definition at line 109 of file worker-thread.c.
109 {
111
113 if (!ji) {
114 ERR(
"out of memory\n");
115 return false;
116 }
117
120
121 if (!
Irp->MdlAddress) {
126
133 } else {
136 return false;
137 }
138
140
142 ERR(
"out of memory\n");
144 return false;
145 }
146
151
155
158 }
159
162
163 return true;
164}
#define ExAllocatePoolWithTag(hernya, size, tag)
#define EXCEPTION_EXECUTE_HANDLER
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
union _IO_STACK_LOCATION::@1579 Parameters
struct _IO_STACK_LOCATION::@3978::@3983 Write
struct _IO_STACK_LOCATION::@3978::@3982 Read
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define ExInitializeWorkItem(Item, Routine, Context)
enum _LOCK_OPERATION LOCK_OPERATION
Referenced by _Dispatch_type_().
◆ do_read_job()
Definition at line 26 of file worker-thread.c.
26 {
33 bool acquired_fcb_lock = false;
34
35 Irp->IoStatus.Information = 0;
36
39 acquired_fcb_lock = true;
40 }
41
47
48 if (acquired_fcb_lock)
50
53
55
56 TRACE(
"read %Iu bytes\n",
Irp->IoStatus.Information);
57
59
60 if (top_level)
62
64
66}
NTSTATUS NTSTATUS NTSTATUS do_read(PIRP Irp, bool wait, ULONG *bytes_read)
#define NT_SUCCESS(StatCode)
bool is_top_level(_In_ PIRP Irp)
#define ExAcquireResourceSharedLite(res, wait)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
ULONG NTAPI ExIsResourceAcquiredSharedLite(IN PERESOURCE Resource)
#define IoCompleteRequest
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
FSRTL_ADVANCED_FCB_HEADER Header
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Referenced by _Dispatch_type_(), and _Function_class_().
◆ do_write_job()