The question of usbd_io

I am writing a usb driver.I want to get audio data from usb device.
status=usbd_setup_isochronous( micro->urb, URB_DIR_IN|URB_ISOCH_ASAP|URB_SHORT_XFER_OK,0,micro->ep_int_buf, micro->ep_int_size );
printf(“URB status:%d\n”,status);
if( status = usbd_io( micro->urb, micro->ep_int, micro_int_cbf, micro, USBD_TIME_INFINITY ) ) {
printf(“Failed Status:%d\n”,status);
return( status );
}
And the return value of usbd_io is ‘2’ which means “No such file or directory”.
And this usb device `s interrupt pipe is work well.

Why the the return value of usbd_io is ‘2’ ?