diff options
Diffstat (limited to 'UsbDk/FilterDevice.cpp')
-rw-r--r-- | UsbDk/FilterDevice.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/UsbDk/FilterDevice.cpp b/UsbDk/FilterDevice.cpp index 8fe016e..22d4383 100644 --- a/UsbDk/FilterDevice.cpp +++ b/UsbDk/FilterDevice.cpp @@ -481,11 +481,19 @@ bool CUsbDkChildDevice::AttachToDeviceStack() void CUsbDkFilterDevice::OnFileCreate(WDFREQUEST Request) { - WDF_REQUEST_SEND_OPTIONS options; - WDF_REQUEST_SEND_OPTIONS_INIT(&options, WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET); + CWdfRequest r(Request); + WdfRequestFormatRequestUsingCurrentType(Request); // in the log we'll see which process created the file TraceEvents(TRACE_LEVEL_INFORMATION, TRACE_FILTERDEVICE, "%!FUNC!"); - WdfRequestSend(Request, IOTarget(), &options); + r.SendWithCompletion(IOTarget(), [](WDFREQUEST Request, WDFIOTARGET Target, PWDF_REQUEST_COMPLETION_PARAMS Params, WDFCONTEXT Context) + { + UNREFERENCED_PARAMETER(Target); + CWdfRequest r(Request); + TraceEvents(TRACE_LEVEL_INFORMATION, TRACE_FILTERDEVICE, "%s: completed", (LPCSTR)Context); + r.SetStatus(Params->IoStatus.Status); + r.SetBytesWritten(Params->IoStatus.Information); + }, + __FUNCTION__); } NTSTATUS CUsbDkFilterDevice::AttachToStack(WDFDRIVER Driver) |