Метод IDiscRecorder2Ex::SendCommandNoData (imapi2.h)
Отправляет команду MMC на устройство записи. Используйте эту функцию, если буфер данных не отправляется на устройство и не получается с устройства.
Синтаксис
HRESULT SendCommandNoData(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout
);
Параметры
[in] Cdb
Пакет команд для отправки на устройство.
[in] CdbSize
Размер отправляемого пакета команд (в байтах). Должно быть от 6 до 16 байт.
[out] SenseBuffer
Данные контроля, возвращаемые устройством записи.
[in] Timeout
Ограничение времени (в секундах) для получения результата командой отправки.
Возвращаемое значение
S_OK или одно из следующих значений можно вернуть при успешном выполнении, но в результате реализации могут быть возвращены другие коды успешного выполнения:
Код возврата | Описание |
---|---|
|
Устройство не выполняет команду, но возвращает данные о смысле.
Значение: 0x00AA0200 |
Следующие коды ошибок обычно возвращаются при сбое операции, но не представляют единственные возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Недопустимый указатель.
Значение: 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 |