I am not sure that I can add any further information that will help you.
The reported issue is a SQL Server / Windows I/O error.
Operating system error 1784 ERROR_INVALID_USER_BUFFER or ERROR_NOT_ENOUGH_MEMORY. Each device driver maintains a fixed-size list (in a nonpaged pool) of outstanding I/O requests. If the list is full, the system can't queue the request and the error is generated. This msdn article
on the Windows Asynchronous Device I/O may help.
Apart from Security permissions of the SQL Server account, the problem may be caused by one of the following:
Workload of the server at the time of the restore?
Check the system's I/O processes?
Possible problem with device driver?