diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 92f9afab33e..40c18d8043e 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -438,9 +438,9 @@ static NTSTATUS WINAPI dispatch_irp_completion( DEVICE_OBJECT *device, IRP *irp, { req->handle = wine_server_obj_handle( irp_handle ); req->status = irp->IoStatus.u.Status; + req->size = irp->IoStatus.Information; if (irp->IoStatus.u.Status >= 0) { - req->size = irp->IoStatus.Information; if (out_buff) wine_server_add_data( req, out_buff, irp->IoStatus.Information ); } status = wine_server_call( req ); diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c index c701cf21d8e..e7a8cc987a1 100644 --- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c @@ -445,7 +445,7 @@ static void test_return_status(void) ok(!ret, "ioctl succeeded\n"); ok(GetLastError() == ERROR_MR_MID_NOT_FOUND, "got error %u\n", GetLastError()); todo_wine ok(!strcmp(buffer, "ghidef"), "got buffer %s\n", buffer); - todo_wine ok(ret_size == 3, "got size %u\n", ret_size); + ok(ret_size == 3, "got size %u\n", ret_size); strcpy(buffer, "abcdef"); status = 0xceadbeef; @@ -455,7 +455,7 @@ static void test_return_status(void) ok(!ret, "ioctl succeeded\n"); ok(GetLastError() == ERROR_MR_MID_NOT_FOUND, "got error %u\n", GetLastError()); ok(!strcmp(buffer, "abcdef"), "got buffer %s\n", buffer); - todo_wine ok(ret_size == 3, "got size %u\n", ret_size); + ok(ret_size == 3, "got size %u\n", ret_size); } static void test_driver3(void)