WdfRequest: Handle buffer-less requests properly

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
This commit is contained in:
Dmitry Fleytman 2015-11-17 11:49:57 +02:00
parent 11be0fe902
commit 39144b74ef

View file

@ -81,6 +81,12 @@ NTSTATUS CWdfRequest::SendWithCompletion(WDFIOTARGET Target, PFN_WDF_REQUEST_COM
NTSTATUS CWdfRequest::LockUserBufferForRead(PVOID Ptr, size_t Length, WDFMEMORY &Buffer) const
{
if (Length == 0)
{
Buffer = WDF_NO_HANDLE;
return STATUS_SUCCESS;
}
auto status = WdfRequestProbeAndLockUserBufferForRead(m_Request, Ptr, Length, &Buffer);
if (!NT_SUCCESS(status))
@ -95,6 +101,12 @@ NTSTATUS CWdfRequest::LockUserBufferForRead(PVOID Ptr, size_t Length, WDFMEMORY
NTSTATUS CWdfRequest::LockUserBufferForWrite(PVOID Ptr, size_t Length, WDFMEMORY &Buffer) const
{
if (Length == 0)
{
Buffer = WDF_NO_HANDLE;
return STATUS_SUCCESS;
}
auto status = WdfRequestProbeAndLockUserBufferForWrite(m_Request, Ptr, Length, &Buffer);
if (!NT_SUCCESS(status))