Метод IDiscRecorder2Ex::SendCommandGetDataFromDevice (imapi2.h)
Отправляет команду MMC на записывающее устройство, запрашивая данные с устройства.
Синтаксис
HRESULT SendCommandGetDataFromDevice(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout,
[out] BYTE *Buffer,
[in] ULONG_IMAPI2_NONZERO BufferSize,
[out] ULONG_IMAPI2_NOT_NEGATIVE *BufferFetched
);
Параметры
[in] Cdb
Командный пакет для отправки на устройство.
[in] CdbSize
Размер отправляемого пакета команды в байтах. Должно быть от 6 до 16 байт.
[out] SenseBuffer
Контрольные данные, возвращаемые устройством записи.
[in] Timeout
Ограничение времени в секундах, разрешенное команде отправки для получения результата.
[out] Buffer
Выделенный приложением буфер данных, который будет получать данные, связанные с командой отправки. Не должно иметь значение NULL.
[in] BufferSize
Размер буфера данных буфера в байтах. Не должно быть равно нулю.
[out] BufferFetched
Размер данных, возвращаемых в буфере данных буфера , в байтах.
Возвращаемое значение
S_OK или одно из следующих значений можно вернуть при успешном выполнении, но в результате реализации могут быть возвращены другие коды успешного выполнения:
Код возврата | Описание |
---|---|
|
Устройство не выполняет команду, но возвращает данные о смысле. |
Следующие коды ошибок обычно возвращаются при сбое операции, но не представляют единственные возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Недопустимый указатель.
Значение: 0x80004003 |
|
Неопределенный сбой.
Значение: 0x80004005 |
|
Диск не поддерживает команду GET CONFIGURATION.
Значение: 0xC0AA020C |
|
Запрошенная страница функции не поддерживается устройством.
Значение: 0xC0AA020A |
|
Не удалось выделить необходимую память.
Значение: 0x8007000E |
|
Запрошенная страница функции поддерживается, но не помечается как текущая.
Значение: 0xC0AA020B |
|
Устройству не удалось принять команду в течение периода ожидания. Это может быть вызвано тем, что устройство перешло в несогласованное состояние, или может потребоваться увеличить время ожидания для команды.
Значение: 0xC0AA020D |
|
Устройство сообщило о непредвиденных или недопустимых данных для команды.
Значение: 0xC0AA02FF |
|
Носитель вставляется вверх ногами.
Значение: 0xC0AA0204 |
|
Диск сообщил, что он находится в процессе подготовки. Повторите запрос позже.
Значение: 0xC0AA0205 |
|
На устройстве нет носителя.
Значение: 0xC0AA0202 |
|
В настоящее время форматируется носитель. Дождитесь завершения форматирования, прежде чем пытаться использовать носитель.
Значение: 0xC0AA0206 |
|
Диск сообщил, что он выполняет длительную операцию, например завершает запись. Диск может быть непригодным для использования в течение длительного периода времени.
Значение: 0xC0AA0207 |
|
Не удалось выполнить запись, так как диск не получил данные достаточно быстро, чтобы продолжить запись. Перемещение исходных данных на локальный компьютер, снижение скорости записи или включение параметра "буфер недостаточной свободы" может устранить эту проблему.
Значение: 0xC0AA0300 |
|
Носитель несовместим или имеет неизвестный физический формат.
Значение: 0xC0AA0203 |
|
Структура DVD отсутствует. Это может быть вызвано несовместимыми дисками и носителями.
Значение: 0xC0AA020E |
|
Устройство сообщило, что запрошенная страница режима (и тип) отсутствует.
Значение: 0xC0AA0201 |
|
Диск сообщил, что сочетание параметров, предоставленных на странице режима для команды MODE SELECT, не поддерживается.
Значение: 0xC0AA0208 |
|
Диск сообщил, что носитель защищен от записи.
Значение: 0xC0AA0209 |
|
Скорость носителя несовместима с устройством. Это может быть вызвано использованием носителя с более высокой или низкой скоростью, чем диапазон скоростей, поддерживаемый устройством.
Значение: 0xC0AA020F |
|
Указанный дескриптор недопустим.
Значение: 6 |
|
Указанный сетевой ресурс или устройство больше не доступны.
Значение: 55 |
|
Устройство, связанное с этим устройством записи во время последней операции, было заблокировано исключительно, что привело к сбою этой операции.
Значение: 0xC0AA0210 |
Комментарии
Дополнительные сведения о содержимом пакета команд, данных осмысления и буфера выходных данных см. в последней редакции спецификации MMC в ftp://ftp.t10.org/t10/drafts/mmc5.
Длина определяемых клиентом команд (CDB), используемых с этим методом, должна составлять от 6 до 16 байт. Кроме того, размер каждой команды должен соответствовать размеру, определенному в коде операции, как указано в следующей таблице.
Диапазон кода операции CDB | Группа CDB | Требуемый размер CDB |
---|---|---|
0x00 — 0x1F | 0 | 6 байт |
0x20 — 0x3F | 1 | 10 байт |
0x40 — 0x5F | 2 | 10 байт |
0x60 — 0x7F | 3 | В будущем будут применяться стандартные требования к размеру для этого диапазона операционных кодов. |
0x80 — 0x9F | 4 | 16 байт |
0xA0 — 0xBF | 5 | 12 байт |
0xC0 — 0xDF | 6 | Уникальный поставщик — любой допустимый размер |
0xE0 — 0xFF | 7 | Уникальный поставщик — любой допустимый размер |
На некоторых очень ранних устройствах использовались уникальные для поставщика коды операций, поэтому некоторые коды операций не могут быть проверены таким образом. Следующие коды операций по-прежнему являются допустимыми и проверяют только, что размер составляет от 6 до 16 байт:
0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista, Windows XP с пакетом обновления 2 (SP2) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | imapi2.h |