ntdll: Use file_complete_async() in NtFsControlFile().

This commit is contained in:
Elizabeth Figura 2024-06-13 22:30:16 -05:00 committed by Alexandre Julliard
parent 0a42bd290d
commit 0db0f6180d

View file

@ -6182,6 +6182,7 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
IO_STATUS_BLOCK *io, ULONG code, void *in_buffer, ULONG in_size,
void *out_buffer, ULONG out_size )
{
ULONG_PTR size = 0;
NTSTATUS status;
TRACE( "(%p,%p,%p,%p,%p,0x%08x,%p,0x%08x,%p,0x%08x)\n",
@ -6225,7 +6226,7 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
buffer->StartingVcn.QuadPart = 1;
buffer->Extents[0].NextVcn.QuadPart = 0;
buffer->Extents[0].Lcn.QuadPart = 0;
io->Information = sizeof(RETRIEVAL_POINTERS_BUFFER);
size = sizeof(RETRIEVAL_POINTERS_BUFFER);
status = STATUS_SUCCESS;
}
else
@ -6259,7 +6260,7 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
memset( info, 0, sizeof(*info) );
memcpy( info->ObjectId, &st.st_dev, sizeof(st.st_dev) );
memcpy( info->ObjectId + 8, &st.st_ino, sizeof(st.st_ino) );
io->Information = sizeof(*info);
size = sizeof(*info);
}
else status = STATUS_BUFFER_TOO_SMALL;
break;
@ -6267,7 +6268,6 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
case FSCTL_SET_SPARSE:
TRACE("FSCTL_SET_SPARSE: Ignoring request\n");
io->Information = 0;
status = STATUS_SUCCESS;
break;
default:
@ -6275,7 +6275,8 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
in_buffer, in_size, out_buffer, out_size );
}
if (!NT_ERROR(status) && status != STATUS_PENDING) io->Status = status;
if (!NT_ERROR(status) && status != STATUS_PENDING)
file_complete_async( handle, event, apc, apc_context, io, status, size );
return status;
}