osfmk/man/DR_overwrite_async.html
System Trap - Read a sequence of bytes from a device object into the caller's
**kern\_return\_t device\_read\_overwrite\_async**** (mach\_port\_t **device,** mach\_port\_t **queue,** mach\_port\_t **request\_id,** dev\_mode\_t **mode,** recnum\_t **recnum,** io\_buf\_len\_t **bytes\_wanted,** io\_buf\_ptr\_t **buffer** );**
device[in device send right] A device port to the device to be read.
queue[in io_done queue send right] The port returned from the io_done_queue_create call.
request_id[in send right] An unique request identifier that will be passed back as part of the io_done_result structure.
mode[in scalar] I/O mode value. Meaningful options are:
D_NOWAIT Do not wait if data is unavailable.
recnum[in scalar] Record number to be read.
bytes_wanted[in scalar] Size of data transfer.
buffer[pointer to in array of bytes] Data buffer to be overwritten.
The device_read_overwrite system trap enqueues a read operation for a sequence of bytes from a device object to be placed directly into the caller's address space. The meaning of recnum as well as the specific operation performed is device dependent.
device_read_overwrite_async returns only invalid parameter errors.
Functions: device_read_async, device_read_async_inband, device_write_async, device_write_async_inband, io_done_queue_create.