Teste óptico de logotipo – DVD+RW
Esse teste valida que o dispositivo óptico está em conformidade com os padrões e atende aos requisitos de unidade óptica do Windows.
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 180 |
Categoria | Cenário |
Tempo limite (em minutos) | 10800 |
Requer reinicialização | false |
Requer configuração especial | false |
Tipo | automático |
Documentação adicional
Os testes nessa área de recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas nos tópicos a seguir:
Executando o teste
Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos de teste óptico de unidade de disco.
O teste mostra uma caixa de diálogo de configuração para obter a configuração da bandeja de unidade primária e secundária. O usuário precisa selecionar a unidade secundária idêntica na lista de unidades na caixa de diálogo Unidade de Gravador e deve selecionar os recursos da bandeja da unidade, independentemente de dar suporte à ejeção automática e ao carregamento automático da bandeja.
Observação
Os aplicativos com uso intensivo de E/S em execução no computador de teste podem interferir nos cenários ópticos de medição de desempenho de teste de logotipo. Verifique se não há outros aplicativos em execução no computador de teste quando o teste estiver em execução.
Solucionando problemas
Para solução de problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.
Para obter informações de solução de problemas, consulte Solução de problemas de teste de dispositivo.armazenamento.
Veja a seguir problemas conhecidos relacionados a este teste:
Cenário de teste de redefinição de barramento desabilitado por padrão.
Por padrão, o teste não valida o comportamento adequado do dispositivo após a redefinição do barramento.
Se a redefinição de ônibus acontecer, espera-se que a unidade se redefina corretamente, volte a ficar online e deverá funcionar normalmente. Algumas unidades defeituosas não são redefinidas corretamente e não funcionarão após a redefinição do barramento. Essa não é uma implementação adequada. Quando esse cenário de teste específico está habilitado, os casos de teste de verificação de comando (casos de teste de dispositivo e perfil) enviam os comandos com o sinalizador de direção de dados SRB incorreto. Isso normalmente parará o ônibus e, eventualmente, fará com que o motorista da porta redefina o ônibus após um determinado período de tempo limite.
A maioria dos controladores de armazenamento não dá suporte a esse cenário de teste corretamente. Os controladores de armazenamento implementados incorretamente não serão recuperados após a redefinição do barramento. Se isso acontecer, o caso de teste poderá falhar devido ao controlador de armazenamento, mesmo que o dispositivo tenha sido implementado corretamente. Esse teste não é capaz de distinguir falhas de dispositivo de falhas do controlador de armazenamento. Portanto, testar esse cenário específico está desabilitado por padrão. Para habilitar o teste desse cenário específico, o executável de teste deve ser executado com a opção de linha de comando "RunDataDirectionFlagScenario".
Mais informações
A unidade deve dar suporte aos seguintes comandos:
Obter Configuração (sem mídia)
Obter notificação de status do evento
Inquérito
Status do mecanismo
Sensor de modo
Impedir Permitir Remoção Média
Sensor de solicitação
Iniciar Unidade de Parada
Unidade de teste pronta
A unidade deverá dar suporte aos comandos a seguir se eles forem obrigatórios para os recursos e perfis aos quais ela dá suporte.
Obter Configuração (com mídia)
Obter desempenho
Capacidade do buffer de leitura
Capacidade de Leitura
Ler informações de disco
Capacidades de formato de leitura
Leia Toc Pma Atip
Enviar informações de Opc
Definir velocidade de CD
Leitura10
A unidade deverá dar suporte aos cenários a seguir se os comandos associados a esses cenários forem obrigatórios para os recursos e perfis aos quais ela dá suporte.
Notificação de Status do Evento
Gravar
Modo sequencial
Modo de pacote
Substituição restrita
Suporte a várias sessões
Mídia de áudio (gravar faixas de áudio)
Em branco
Número de série da unidade exclusiva
Streaming em tempo real
Gravação bruta sem lacunas de mídia de áudio
Os casos de teste são segregados nos três grupos a seguir:
Casos de teste de dispositivo. Os seguintes comandos verificam os casos de teste aplicáveis ao dispositivo:
GET CONFIGURATION (SEM MÍDIA)
OBTER NOTIFICAÇÃO DE STATUS DO EVENTO
INQUIRY
STATUS DO MECANISMO
MODE SENSE
IMPEDIR PERMITIR REMOÇÃO MÉDIA
REQUEST SENSE
INICIAR UNIDADE DE PARADA
TEST UNIT READY
Casos de teste de perfil. Os seguintes comandos verificam casos de teste serão testados em todos os perfis aplicáveis:
OBTER CONFIGURAÇÃO
OBTER DESEMPENHO
CAPACIDADE DE LEITURA
LER CAPACIDADE DO BUFFER
LER INFORMAÇÕES DO DISCO
CAPACIDADES DE FORMATO DE LEITURA
LEIA TOC PMA ATIP
ENVIAR INFORMAÇÕES DE OPC
DEFINIR VELOCIDADE DE CD
LEIA10
Casos de teste do cenário de uso. Os seguintes cenários são testados usando as interfaces do mecanismo de queima de IMAPI:
NOTIFICAÇÃO DE STATUS DO EVENTO
BLANK
WRITE/MULTISESSION
MÍDIA DE ÁUDIO
GRAVAR MÍDIA DE CAMADA DUPLA
NÚMERO DE SÉRIE DA UNIDADE
UNIDADE SOMENTE LEITURA
STREAMING EM TEMPO REAL
GRAVAÇÃO BRUTA SEM LACUNAS DE MÍDIA DE ÁUDIO
Este teste inclui os seguintes casos de teste:
OBTER COMANDO DE CONFIGURAÇÃO (SEM MÍDIA)
OBTER COMANDO DE NOTIFICAÇÃO DE STATUS DO EVENTO
COMANDO INQUIRY
COMANDO STATUS DO MECANISMO
COMANDO MODE SENSE
IMPEDIR PERMITIR COMANDO DE REMOÇÃO MÉDIA
COMANDO REQUEST SENSE
INICIAR COMANDOS DE UNIDADE DE PARADA, EJETAR & DESEMPENHO DE CARGA
COMANDO PRONTO PARA UNIDADE DE TESTE
OBTER COMANDO DE CONFIGURAÇÃO
OBTER DESEMPENHO
COMANDO DE CAPACIDADE DE LEITURA
COMANDO LER CAPACIDADE DO BUFFER
COMANDO LER INFORMAÇÕES DO DISCO
COMANDO READ FORMAT CAPACITIES
COMANDO LER TOC/PMA/ATIP
COMANDO ENVIAR INFORMAÇÕES OPC
COMANDO SET CD SPEED
COMANDO READ10
EVENT NOTIFICATION
TESTES DE GRAVAÇÃO
MÍDIA DE ÁUDIO (GRAVAR FAIXAS DE ÁUDIO)
BLANK
GRAVAR MÍDIA DE CAMADA DUPLA
UNIDADE SOMENTE LEITURA
NÚMERO DE SÉRIE DA UNIDADE
STREAMING EM TEMPO REAL
MEDIÇÃO DE VELOCIDADE DE GRAVAÇÃO
GRAVAÇÃO BRUTA SEM LACUNAS DE MÍDIA DE ÁUDIO
Comando GET CONFIGURATION (sem mídia)
Descrição: Esse teste é para garantir que a unidade responda ao comando GET CONFIGURATION corretamente quando não há mídia na bandeja.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Ejete a bandeja enviando o comando START STOP UNIT.
Aguarde até que a bandeja esteja aberta.
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 4 bytes para obter o comprimento dos dados do cabeçalho do recurso. Se o comando falhar, imprima a tecla sense e falhe no caso de teste. Finalidade: permitir que o software investigue o suporte ao comando.
Verifique se a unidade relata nenhum perfil atual no cabeçalho do recurso. Se a unidade não reproduzir o perfil atual como "nenhum perfil atual", falhará no caso de teste.
Envie o comando GET CONFIGURATION novamente com RT=00b e com o comprimento de dados correto retornado pelo dispositivo na etapa 3. Finalidade: permitir que o software recupere toda a lista de recursos compatíveis com a unidade.
Verifique se a unidade relata nenhum perfil atual no cabeçalho do recurso. Se a unidade não reproduzir o perfil atual como "nenhum perfil atual", falhará no caso de teste.
Obtenha o descritor de recursos da lista de perfis na resposta para o conjunto de bits de perfil atual e Falhe no caso de teste se qualquer um dos descritores de perfil tiver o bit de perfil atual definido como 1.
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 20 bytes, RT=01b, Número do Recurso Inicial=0010h (Recurso Legível Aleatório). Se o comando falhar ou se o descritor de Recurso Legível Aleatório não for retornado, imprima a chave de sentido conforme apropriado e falhe no caso de teste. Finalidade: permitir que o software investigue uma moeda de recurso específica (não atual).
[Opcional] Envie o comando GET CONFIGURATION com o sinalizador de direção de dados definido como "para o dispositivo" e com o comprimento dos dados de resposta de 4 bytes para obter o comprimento dos dados do cabeçalho do recurso. Se o comando falhar, imprima a tecla sense e falhe no caso de teste. Finalidade: para garantir que o dispositivo manipule o comando com direção de dados incorreta.
Injete a bandeja.
Aguarde até que o dispositivo chegue ao estado pronto
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 16 bytes, RT=01b, Número do Recurso Inicial=0003h (Recurso Médio Removível). Se o comando falhar, imprima a tecla sense conforme apropriado e falhe no caso de teste. Se o comando for bem-sucedido:
Verifique se o bit "Ejetar" está definido se a unidade dá suporte ao mecanismo de ejeção automática.
Verifique se o bit "Carregar" está definido se a unidade dá suporte ao mecanismo de injeção automática.
Resultado: A unidade deve responder ao comando GET CONFIGURATION corretamente
Comando GET EVENT STATUS NOTIFICATION
Descrição: Para validar se a unidade dá suporte ao comando GET EVENT STATUS NOTIFICATION
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Comando Enviar Obter Notificação de Status do Evento com os valores a seguir no CDB.
Solicitação de classe de notificação = 0x7E (alteração operacional, gerenciamento de energia, solicitação externa, mídia, vários host, dispositivo ocupado),
Sondado = 1
Tamanho da Alocação igual ao tamanho do cabeçalho de resposta (4 bytes)
Se o comando falhar, falhará no caso de teste
Na resposta marcar quais eventos têm suporte
[Opcional] Comando Enviar Obter Notificação de Status do Evento com o sinalizador de direção de dados definido como "para o dispositivo" e os valores a seguir no CDB.
Solicitação de classe de notificação = 0x7E (alteração operacional, gerenciamento de energia, solicitação externa, mídia, vários host, dispositivo ocupado),
Sondado = 1
Tamanho da Alocação igual ao tamanho do cabeçalho de resposta (4 bytes)
Se o comando falhar, falhará no caso de teste
Na resposta marcar que o Comprimento dos Dados do Evento é 0x6, o bit do NEA é limpo, a Classe de Notificação é diferente de zero e as Classes de Evento com suporte são idênticas à etapa 3. Caso contrário, falhará no caso de teste.
Comando Enviar Obter Notificação de Status do Evento com os valores a seguir no CDB.
Solicitação de classe de notificação = 0x7E (alteração operacional, gerenciamento de energia, solicitação externa, mídia, vários host, dispositivo ocupado).
Sondado = 1
Tamanho da Alocação igual ao tamanho do cabeçalho de resposta (4 bytes)
Se o comando falhar, falhará no caso de teste.
Resultado: A unidade deve responder corretamente ao comando GET EVENT STATUS NOTIFICATION.
Comando INQUIRY
Descrição: Para validar se a unidade dá suporte ao comando INQUIRY.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando INQUIRY com comprimento de alocação igual a 08h. Finalidade: permitir que o software investigue o tamanho do buffer de resposta necessário.
Se o comando for bem-sucedido, marcar a resposta para o comprimento adicional no cabeçalho. O comprimento adicional deve ser 32d ou maior [MMC5r04 6.9.2].
Envie o comando INQUIRY novamente com o comprimento de alocação definido como 5 bytes a mais do que o comprimento adicional da etapa 2.
Se o comando for bem-sucedido, verifique se os campos de dados de resposta correspondem aos valores especificados na tabela MMC5r04 320.
Verifique se a Identificação do Fornecedor, a Identificação do Produto e o Nível de Revisão do Produto não são nulos.
- Finalidade: identificação básica por software.
Verifique se os seguintes valores correspondem:
Tipo de dispositivo = 5
Qualificador de tipo de dispositivo = 0
Mídia removível = 1
Formato de dados de resposta = 2
Suporte à hierarquia = 0
ACA normal = 0
Proteger = 0
Cópia de terceiros = 0
Suporte ao grupo de portas de destino = 0
Coordenador de Controles de Acesso = 0
SCC com suporte = 0
Addr16 = 0
Alterador Médio = 0
Várias portas = 0
VS1 = 0
Serviços de compartimento = 0
BQue = 0
VS2 = 0
Fila de comandos = 0
Comandos vinculados = 0
Síncrono = 0
Wide16 = 0
Envie o comando INQUIRY com os seguintes valores no CDB:
EVPD = 0
Comprimento da alocação = 240
Envie o comando INQUIRY com os seguintes valores no CDB:
EVPD = 1
Comprimento da alocação = 240
Se o comando for bem-sucedido, compare a resposta das etapas 7 e 8, se ambas forem iguais, então falhará no caso de teste.
Envie o comando INQUIRY para um número aleatório de vezes entre 10 e 25 com comprimentos de alocação aleatórios. Se o comando falhar, o caso de teste falhará.
[Opcional] Envie o comando INQUIRY com o sinalizador de direção de dados definido como " para o dispositivo" e com os seguintes valores no CDB
EVPD = 0
Comprimento da alocação = 240
Resultado: A unidade deve responder corretamente ao comando INQUIRY.
Comando MECHANISM STATUS
Descrição: Para validar se a unidade dá suporte ao comando MECHANISM STATUS
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando MECHANISM STATUS com comprimento de alocação 0 bytes (sensor de dados não especificado). Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
- Finalidade: permitir que o software investigue o suporte do comando
Ejete a bandeja.
Aguarde até que o dispositivo retorne os dados de sensor (Sense Key : 0x2, ASC: 0x3A, ASCQ: 0x02)
Envie o comando MECHANISM STATUS com comprimento de alocação de 8 bytes.
Verifique se o bit Abrir porta é 1b.
- Finalidade: permitir que o software detecte se a porta está aberta ou fechada (aberta).
Injetar a bandeja
Aguarde até que o dispositivo esteja pronto
Envie o comando MECHANISM STATUS com comprimento de alocação de 8 bytes.
Verifique se Door Open bit é 0b.
- Finalidade: permitir que o software detecte se a porta está aberta ou fechada (fechada).
Crie um buffer de 8 bytes e preencha-o com dados aleatórios.
[Opcional] Envie o comando MECHANISM STATUS com o sinalizador de direção de dados definido como "para o dispositivo" e com comprimento de alocação de 8 bytes. Passe o buffer da etapa 11 para o dispositivo.
Resultado: A unidade deve responder ao comando MECHANISM STATUS corretamente
Comando MODE SENSE
Descrição: Para validar se a unidade dá suporte ao comando Mode Sense.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando MODE SENSE com os seguintes valores no CDB para obter todas as Páginas de Modo com suporte:
Controle de página = 0
Desabilitar descritores de bloco = 1
Código da página = 0x3F
Comprimento da alocação = 0x8000
Verifique os seguintes valores na resposta:
O comprimento do descritor de bloco no cabeçalho de parâmetros do modo é zero
O comprimento da página para cada dados de página de modo é igual ao valor documentado no MMC5.
Validar os dados da página Modo para cada página relatada
Envie o comando Mode Sense para cada página relatada com os seguintes valores no CDB:
Controle de Página = 0
Desabilitar descritores de bloco = 1
Comprimento da Alocação = Comprimento da Página relatado pela unidade na etapa 2
Verifique os seguintes valores na resposta:
Bloquear Comprimento do Descritor no cabeçalho de parâmetros do modo é zero.
O código da página no cabeçalho da página do modo corresponde ao código de página solicitado.
O comprimento da página no cabeçalho da página do modo é igual ao documento de valor no MMC5.
Enviar o comando Mode Sense com comprimento de alocação 0xFFF0
Verifique os seguintes valores na resposta:
Bloquear Comprimento do Descritor no cabeçalho de parâmetros de modo é zero
O código da página no cabeçalho da página do modo corresponde ao código de página solicitado
Enviar o comando Mode Sense com comprimento de alocação 0x0A
Verifique se a resposta corresponde ao byte por byte até o tamanho da resposta (0x0A) com a resposta para o comprimento de alocação igual a 0xFFF0.
Envie o comando Mode Sense para um número aleatório de vezes entre 10 e 25 com comprimentos de alocação aleatórios entre 0x0A e 0xFFF0.
Verifique se a resposta corresponde ao byte por byte até o tamanho da resposta (valor aleatório entre 0x0A e 0xFFF0) com a resposta para o comprimento de alocação igual a 0xFFF0.
[Opcional] Envie o comando MODE SENSE com o sinalizador de direção de dados definido como "para o dispositivo" e com os seguintes valores no CDB para obter todas as Páginas de Modo com suporte:
Controle de Página = 0
Desabilitar descritores de bloco = 1
Código da página = 0x3F
Comprimento da alocação = 0x8000
Resultado: A unidade deve responder ao comando GET CONFIGURATION corretamente
Comando PREVENT ALLOW MEDIUM REMOVAL
Descrição: Para validar se a unidade dá suporte ao comando PREVENT ALLOW MEDIUM REMOVAL.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando PREVENT ALLOW MEDIUM REMOVAL com o bit prevent definido como 1 e Bit persistente definido como 0. Isso bloquearia a unidade. Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Envie o comando de unidade de parada inicial com o bit LocEj definido como 1 e Bit imediato definido como 0 e Iniciar bit definido como zero. Isso tentará ejetar o disco. Se a unidade não rejeitar o comando com dados de detecção 0x05 0x53, 0x02 será uma falha.
Envie o comando pronto da Unidade de Teste e verifique se ele foi bem-sucedido.
Peça ao usuário para pressionar o botão ejetar para ejetar a mídia.
Envie o comando pronto para a Unidade de Teste e verifique se ele ainda tem êxito (a porta não deve ser aberta).
Envie o comando Impedir Permitir Remoção Média com impedir bits definido como 0 e Bit persistente definido como 0. Isso desbloquearia a unidade. Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Peça ao usuário para pressionar o botão ejetar para ejetar a mídia
Aguarde até que o dispositivo abra a porta – Envie o comando pronto da Unidade de Teste, se o comando for bem-sucedido, aguarde 1 segundo e tente novamente até que ele falhe com (02/3A/02). Tempo limite após 30 segundos.
Se a unidade der suporte ao mecanismo de carregamento automático, injete a bandeja de volta na unidade, caso contrário, peça ao usuário para inserir a bandeja de volta na unidade.
Aguarde até que o dispositivo esteja pronto
[Opcional] Envie o comando PREVENT ALLOW MEDIUM REMOVAL com o sinalizador de direção de dados definido como "para o dispositivo" e passe os dados aleatórios em um buffer de tamanho aleatório.
Resultado: A unidade deve responder corretamente ao comando PREVENT ALLOW MEDIUM REMOVAL.
Comando REQUEST SENSE
Descrição: Para validar se a unidade dá suporte ao comando REQUEST SENSE.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando REQUEST SENSE, com o bit do descritor definido como zero e o Comprimento da Alocação definido como 252. A unidade deve responder com os dados de sentido de formato fixo.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Se o código de resposta for 0x70 ou 0x71 o teste for aprovado, caso contrário, o teste falhará.
[Opcional] Envie o comando REQUEST SENSE, com o sinalizador de direção de dados definido como "para o dispositivo" e com o bit do descritor definido como zero e Comprimento da Alocação definido como 252. A unidade deve responder com os dados de sentido de formato fixo.
Resultado: A unidade deve responder ao comando REQUEST SENSE corretamente.
Comando START STOP UNIT, EXECUTE & LOAD PERFORMANCE
Descrição: Para validar se a unidade dá suporte ao comando START STOP UNIT.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Enviar o comando START STOP UNIT com os seguintes valores no CDB
Immediate = 0, LoadEject = 0, Start = 0, PowerConditions = 0
Immediate = 0, LoadEject = 0, Start = 1, PowerConditions = 0
Immediate = 1, LoadEject = 0, Start = 0, PowerConditions = 0
Immediate = 1, LoadEject = 0, Start = 1, PowerConditions = 0
O comando terá êxito para cada uma desta combinação.
Se a unidade der suporte à ejeção da bandeja, envie o comando START STOP UNIT com os seguintes valores no CDB para ejetar a bandeja
- Immediate = 1, LoadEject = 1, Start = 0, PowerConditions = 0
Aguarde até que o dispositivo abra a porta – Envie o comando TEST UNIT READY, se o comando for bem-sucedido, aguarde 5 segundos e tente novamente até que ele falhe com (02/3A/02). Tempo limite após 10 segundos.
Se a unidade der suporte ao carregamento da bandeja (injeção automática), envie o comando START STOP UNIT com os seguintes valores no CDB para injetar a bandeja:
- Immediate = 1, LoadEject = 1, Start = 1, PowerConditions = 0
Se a unidade não der suporte ao carregamento da bandeja, peça ao usuário para inserir a bandeja novamente na unidade.
Aguarde até que o dispositivo esteja pronto – Envie o comando TEST UNIT READY, se o comando falhar com uma chave de sentido, aguarde 1 segundo e tente novamente até que ele seja bem-sucedido. Tempo limite após 30 segundos. LOGOTIPO PREMIUM: tempo limite: 20 segundos.
Envie o comando START STOP UNIT com os seguintes valores no CDB para ejetar a bandeja:
- Immediate = 0, LoadEject = 1, Start = 0, PowerConditions = 0
Aguarde até que o dispositivo abra a porta – Envie o comando TEST UNIT READY, se o comando for bem-sucedido, aguarde 1 segundo e tente novamente até que ele falhe com (02/3A/02). Tempo limite após 30 segundos.
Peça ao usuário para remover a mídia
Se a unidade der suporte ao carregamento da bandeja (injeção automática), envie o comando START STOP UNIT com os seguintes valores no CDB para injetar a bandeja:
- Immediate = 0, LoadEject = 1, Start = 1, PowerConditions = 0
Verifique se o comando falha com Não Pronto/Médio não presente/Bandeja fechada (02/3A/01)
Se a unidade der suporte à ejeção da bandeja, envie o comando START STOP UNIT com os seguintes valores no CDB para ejetar a bandeja:
- Immediate = 0, LoadEject = 1, Start = 0, PowerConditions = 0
Peça ao usuário para colocar a mídia na bandeja.
Se a unidade não der suporte ao carregamento da bandeja, peça ao usuário para inserir a bandeja novamente na unidade e aguardar até que o dispositivo esteja pronto. Se a unidade der suporte ao carregamento da bandeja (injeção automática), envie o comando START STOP UNIT com os seguintes valores no CDB, para injetar a bandeja e aguardar até que o dispositivo esteja pronto.
- Immediate = 0, LoadEject = 1, Start = 1, PowerConditions = 0
[Opcional] Envie o comando START STOP UNIT com o sinalizador de direção de dados definido como "para o dispositivo". Enviar buffer de tamanho aleatório com dados aleatórios e com os seguintes valores no CDB.
- Immediate = 0, LoadEject = 0, Start = 0, PowerConditions = 0
Resultado: A unidade deve responder ao comando START STOP UNIT corretamente.
Comando TEST UNIT READY
Descrição: Para validar se a unidade dá suporte ao comando TEST UNIT READY.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando TEST UNIT READY.
Se o comando falhar, imprima a chave de sentido e falhe no caso de teste
[Opcional] Envie o comando TEST UNIT READY com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios.
Resultado: A unidade deve responder corretamente ao comando TEST UNIT READY.
Comando GET CONFIGURATION
Descrição: Para validar se a unidade dá suporte ao comando GET CONFIGURATION para o perfil relatado.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 0 bytes (sensor de dados não especificado). Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
- Finalidade: permitir que o software investigue o suporte do comando.
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 4 bytes para obter o comprimento dos dados do cabeçalho do recurso. Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
- Finalidade: permitir que o software investigue o suporte do comando.
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 8 bytes (para obter o cabeçalho), RT=00b, Número do Recurso Inicial=0000h. Se o comando falhar ou se o Perfil Atual for igual a 00h, imprima a tecla sense conforme apropriado e falhe no caso de teste.
Fins:
permitir que o software investigue o tamanho do buffer de resposta necessário.
permitir que o software investigue o perfil atual (um perfil é atual).
Se o comando for bem-sucedido marcar o seguinte na resposta
O comprimento dos dados no cabeçalho é diferente de zero e é alinhado a quatro bytes
O número de perfil atual corresponde ao tipo de mídia carregado na unidade
Envie o comando GET CONFIGURATION com o comprimento dos dados de resposta lido na etapa 3, RT=00b, Número do Recurso Inicial=0000h. Leia o Perfil Atual e procure esse código de perfil na lista de perfis com suporte. Verifique se o perfil atual corresponde ao tipo de perfil da mídia inserida. Se o comando falhar ou se o perfil atual não for relatado atualmente na lista de perfis com suporte, imprima a chave de sensor conforme apropriado e falhe no caso de teste.
- Finalidade: garanta a consistência das informações relatadas pela unidade.
Envie o comando GET CONFIGURATION novamente com RT=00b e com o comprimento de dados correto retornado pelo dispositivo na etapa3 se o comprimento se ajustar a 2 bytes. Se o comprimento exceder 2 bytes, envie o comando com comprimento máximo de dados para 2 bytes.
- Finalidade: permitir que o software recupere toda a lista de recursos compatíveis com a unidade.
Se o comprimento excedeu 2 bytes, leia o número do recurso do último descritor de recurso completo retornado e emita o comando GET CONFIGURATION adicional com RT=10b e com o número de recurso inicial igual a esse número de recurso mais 1. Repita a operação até que o comprimento dos dados retornado no cabeçalho do recurso seja igual ou menor ao comprimento alocado. Concatene os descritores de recursos resultantes para verificação na etapa 10.
Para todos os comandos com êxito nas etapas 3 a 6, marcar se o comprimento dos dados no cabeçalho da resposta for múltiplo de 4 (4 bytes alinhados). Falha se não estiver alinhado a 4 bytes. Finalidade: o alinhamento de 4 bytes é assumido pelo software.
Além disso, se os comandos tiverem sido bem-sucedidos, marcar que cada recurso relatado version e campos De comprimento adicional são iguais ou maiores que os respectivos valores para o recurso fornecido no documento MMC-5. Por exemplo: a versão do Recurso Principal deve ser 0010b ou superior e seu comprimento adicional deve ser 8 ou maior. Finalidade: garanta a consistência das informações relatadas pela unidade. Se o recurso de mídia removível for relatado, o número de versão dele deverá ser 1, conforme especificado no comando GET CONFIGURATION.
Além disso, se os comandos tiverem sido bem-sucedidos, marcar que cada recurso obrigatório para o perfil com suporte relatado seja relatado.
- Finalidade: garanta a consistência das metadadas relatadas pela unidade.
Envie o comando GET CONFIGURATION com comprimento de dados de resposta de 20 bytes, RT=01b, Número do Recurso Inicial=0010h (Recurso Legível Aleatório). Se o comando falhar ou se o descritor de Recurso Legível Aleatório não for retornado, imprima a chave de sensor conforme apropriado e falhe no caso de teste. Finalidade: permitir que o software investigue a moeda de recurso específica (atual).
[Opcional] Envie o comando GET CONFIGURATION com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios. Os seguintes valores são definidos no CDB:
- Comprimento da Alocação = Tamanho do buffer, Número do Recurso Inicial=0000h, RT=00b
Resultado: A unidade deve implementar corretamente o comando GET CONFIGURATION para os tipos de mídia aplicáveis.
Comando GET PERFORMANCE
Descrição: Para validar se a unidade dá suporte ao comando GET PERFORMANCE para o perfil relatado.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-R
CD-ROM
CD-RW
DVD+R
DVD+R Dual Layer
DVD+RW
Substituição restrita de DVD-RW
DVD-RAM
DVD-R
SEQ de camada dupla DVD-R
DVD-ROM
BD-R
BD-RE
BD-ROM
Etapas do caso de teste:
Envie o comando GET CONFIGURATION para obter o recurso STREAMING em TEMPO REAL. Verifique a resposta, se o bit descritor de desempenho de velocidade de gravação estiver definido. Se isso não estiver definido, a unidade não oferecerá suporte a descritores de velocidade de gravação. Ignore as etapas 6 a 11 que validam os descritores de velocidade de gravação.
Envie o comando GET PERFORMANCE com os seguintes valores no CDB para obter zero descritores de desempenho de leitura nominal
Tipo = 0
Iniciando LBA = 1
Descritores máximos = 0
Tipo de dados = 0x10
Se o comando falhar, imprima a tecla sense e falhe no caso de teste
Enviar o comando GET PERFORMANCE com os seguintes valores no CDB para obter um descritor de desempenho de leitura nominal
Tipo = 0
Iniciando LBA = 1
Descritores máximos = 1
Tipo de dados = 0x10
Se o comando falhar, imprima a tecla sense e falhe no caso de teste
Envie o comando GET PERFORMANCE com os seguintes valores no CDB para obter um descritor de desempenho de gravação nominal.
Tipo = 0
Iniciando LBA = 1
Descritores máximos = 1
Tipo de dados = 0x14
Se o comando falhar, imprima a tecla sense e falhe no caso de teste
Envie o comando GET PERFORMANCE com os seguintes valores no CDB para obter o comprimento dos dados para a lista de descritores de velocidade de gravação
Tipo = 3
Iniciando LBA = 1
Descritores máximos = 0
Tipo de dados = 0x14
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Envie o comando GET PERFORMANCE com os seguintes valores no CDB para obter a lista de descritores de velocidade de gravação
Tipo = 3
Iniciando LBA = 1
Descritores máximos = 10
Tipo de dados = 0x14
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
[Opcional] Envie o comando GET PERFORMANCE com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios. Defina com os valores a seguir no CDB para obter zero descritores de desempenho de leitura nominal.
Tipo = 0
Iniciando LBA = 1
Descritores máximos = 0
Tipo de dados = 0x10
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Resultado: A unidade deve implementar corretamente o comando GET PERFORMANCE para os tipos de mídia aplicáveis.
Comando READ CAPACITY
Descrição: Para validar se a unidade dá suporte ao comando READ CAPACITY para o perfil relatado.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando READ CAPACITY.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Se o comprimento do bloco em bytes não for 2048, falhará no caso de teste.
[Opcional] Envie o comando READ CAPACITY com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Resultado: A unidade deve implementar corretamente o comando READ CAPACITY para os tipos de mídia aplicáveis.
Comando READ BUFFER CAPACITY
Descrição: Para validar se a unidade dá suporte ao comando READ BUFFER CAPACITY para o perfil relatado.
Mídia aplicável: Qualquer mídia compatível com o dispositivo.
Etapas do caso de teste:
Envie o comando GET CONFIGURATION para obter o recurso STREAMING em TEMPO REAL. Verifique a resposta, se o bit RBCB (Bloco de Capacidade do Buffer de Leitura) estiver definido. Se isso não estiver definido, a unidade não oferecerá suporte ao comando Capacidade de Buffer de Leitura. Ignore o caso de teste.
Envie o comando READ BUFFER CAPACITY com bit de bloco definido como 0 e Comprimento de Alocação igual ao tamanho da Estrutura de Capacidade do Buffer.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Repita a etapa 2 com o bit Bloquear definido como 1.
Se o comando falhar, imprima a tecla sense e falhe no comando .
[Opcional] Envie o comando READ BUFFER CAPACITY com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios e bits de bloco definidos como zero.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Resultado: A unidade deve implementar corretamente o comando READ BUFFER CAPACITY para os tipos de mídia aplicáveis.
Comando READ DISC INFORMATION
Descrição: Para validar se a unidade dá suporte ao comando READ DISC INFORMATION para o perfil relatado.
Mídia aplicável: Qualquer uma das seguintes mídias:
DVD+R
DVD+RW
DVD-R
CD-R
CD-RW
Etapas do caso de teste:
Envie o comando READ DISC INFORMATION, com o comprimento de alocação de 2 para obter o tamanho das informações de disco padrão.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Obtenha o comprimento das informações do disco da resposta. Se o comprimento for menor que o Tamanho do Bloco de Informações do Disco Padrão (34), falhará no caso de teste.
Envie o comando READ DISC INFORMATION, com o comprimento de alocação igual ao comprimento dos dados da etapa 3 mais 2.
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
[Opcional] Envie o comando READ DISC INFORMATION com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios e comprimento de alocação definido como o tamanho do buffer.
Resultado: A unidade deve implementar corretamente o comando READ DISC INFORMATION para os tipos de mídia aplicáveis.
Comando READ FORMAT CAPACITIES
Descrição: Para validar se a unidade dá suporte ao comando READ FORMAT CAPACITIES para o perfil relatado.
Mídia aplicável: Qualquer uma das seguintes mídias:
DVD+RW
Substituição restrita de DVD-RW
DVD-RAM
CD-RW
Etapas do caso de teste:
Envie o comando READ FORMAT CAPACITIES com Comprimento de Alocação igual a 4 (Cabeçalho de Lista de Capacidade).
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Obter o comprimento da lista de capacidade da resposta
Envie o comando READ FORMAT CAPACITIES com Comprimento de Alocação igual ao Tamanho da Lista de Capacidade + 4 (tamanho do Cabeçalho da Lista de Capacidade).
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
Verifique a resposta se o comprimento da lista de capacidade é múltiplo de 8.
[Opcional] Envie o comando READ FORMAT CAPACITIES com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios e comprimento de alocação definido como o tamanho do buffer.
Resultado: A unidade deve implementar corretamente o comando READ FORMAT CAPACITIES para os tipos de mídia aplicáveis.
Comando READ TOC/PMA/ATIP
Descrição: Para validar se a unidade dá suporte ao comando READ TOC/PMA/ATIP para o perfil relatado.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-ROM
DVD-ROM
BD-ROM
Etapas do caso de teste:
Envie o comando READ TOC/PMA/ATIP com os valores a seguir no CDB.
- Format = 0, MSF = 0, Track Session Number = 1, Allocation Length = 4
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
[Opcional] Envie o comando READ TOC/PMA/ATIP com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer preenchido com dados aleatórios e comprimento de alocação definido como o tamanho do buffer. Defina o CDB com os seguintes valores:
- Format = 0, MSF = 0, Track Session Number = 1, Allocation Length = 4
Resultado: A unidade deve implementar corretamente o comando READ TOC/PMA/ATIP para os tipos de mídia aplicáveis
Comando SEND OPC INFORMATION
Descrição: [Este conteúdo ainda não está disponível.]
Mídia aplicável: Qualquer uma das seguintes mídias:
Substituição restrita de DVD-RW
DVD-R
CD-RW
CD-R
Etapas do caso de teste:
Enviar o comando SEND OPC INFORMATION com DoOpc definido como 1
Se o comando falhar, imprima a tecla sense e falhe no caso de teste.
[Opcional] Envie o comando SEND OPC INFORMATION com DoOpc definido como 1, sinalizador de direção de dados definido como "para o dispositivo" e com buffer de tamanho aleatório preenchido com dados aleatórios. O comprimento da alocação é definido como o tamanho do buffer.
Resultado: A unidade deve implementar corretamente o comando SEND OPC INFORMATION para os tipos de mídia aplicáveis.
Comando SET CD SPEED
Descrição: Para validar se a unidade dá suporte ao comando SET CD SPEED para o perfil relatado.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando GET CONFIGURATION para obter o recurso STREAMING em TEMPO REAL. Verifique a resposta, se o bit Definir Velocidade de CD (SCS) estiver definido. Se isso não estiver definido, a unidade não oferecerá suporte ao comando SET CD SPEED. Ignore o caso de teste.
Envie o comando SET CD SPEED, com os seguintes valores no CDB.
- RotationalControl = 0, ReadSpeed = 0xFFFF, WriteSpeed = ((4* 75 * 2352) + 500) / 1000) Se o comando falhar ao imprimir a tecla sense e falhar no caso de teste
[Opcional] Envie o comando SET CD SPEED com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios. Defina os valores a seguir no CDB.
- RotationalControl = 0, ReadSpeed = 0xFFFF, WriteSpeed = ((4* 75 * 2352) + 500) / 1000)
Resultado: A unidade deve implementar corretamente o comando SET CD SPEED para os tipos de mídia aplicáveis.
Comando READ10
Descrição: Para validar se a unidade dá suporte ao comando READ10 para o perfil relatado.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-ROM
DVD-ROM
Etapas do caso de teste:
Enviar o comando READ TOC/PMA/ATIP com Comprimento de Alocação igual ao tamanho do cabeçalho de resposta READ TOC (4 bytes)
Envie o comando READ TOC/PMA/ATIP com Comprimento de Alocação igual ao tamanho do cabeçalho de resposta READ TOC ( 4 bytes) + o Comprimento dos Dados do Cabeçalho de Resposta da etapa 1.
Verifique todos os descritores do TOC de Leitura formatados, se qualquer um de seus controles estiver definido como 0x04
Se não for encontrado, falhe no caso de teste
Caso contrário, obtenha o endereço inicial da faixa do descritor de faixa toc formatado.
Envie o comando Capacidade de Leitura com o campo LBA definido como zero para obter o tamanho do bloco.
Envie o Comando de Leitura com o Comprimento de Transferência definido como zero e o LBA inicial definido para o LBA da etapa 5.
Calcular o número de blocos a serem lidos
Se o LBA na resposta de capacidade de leitura for menor que o LBA da etapa 5, o número de blocos a serem lidos será definido como 0
Se o LBA na resposta de capacidade de leitura for maior que o LBA da etapa 5, defina o número de blocos para leitura igual à diferença entre o LBA da resposta de capacidade de leitura e o LBA da etapa 5. Se esse valor for maior que 50, defina o número de blocos para leitura como 50.
Definir o LBA inicial no CDB de leitura 10 para o LBA da etapa 5
Enviar o comando read10 com o comprimento de transferência definido como 1
Dormir por 10 milissegundos
Incrementar o LBA inicial no CDB de leitura de 10
Repita as etapas de 12 a 14 até lermos todo o número de blocos.
[Opcional] Envie o comando READ10 com o sinalizador de direção de dados definido como "para o dispositivo" e com o buffer de tamanho aleatório preenchido com dados aleatórios. Defina os valores a seguir no CDB.
- TransferLength = 1, Starting LBA = Random LBA value in the LBA range of Number of LBAs from step 8 with starting LBA from the step 5
Resultado: A unidade deve implementar corretamente o comando READ10 para os tipos de mídia aplicáveis.
Notificação de evento
Descrição: Para validar se a notificação de evento do dispositivo é relatada corretamente para o PNP do Windows.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Se o campo BusType da estrutura de STORAGE_ADAPTER_DESCRIPTOR da unidade estiver definido como BusTypeSata, envie IOCTL_ATA_PASS_THROUGH com solicitação para identificar dados de informações do dispositivo de pacote. Na resposta marcar o bit 5 do word 78 (há suporte para o recurso notificação assíncrona) e o bit 5 do word 79 (o recurso notificação assíncrona está habilitado) estão definidos. Caso contrário, falhará no teste
Registre-se para o evento De alteração operacional.
Verifique se a mídia está presente.
Se a mídia estiver presente, ejete a mídia.
Aguarde o evento MEDIA REMOVAL. Se o evento não for gerado dentro de 60 segundos, o caso de teste falhará.
Injete a mídia na unidade.
Aguarde o evento MEDIA ARRIVAL. Se o evento não for gerado dentro de 60 segundos, o caso de teste falhará.
Resultado: A unidade deve implementar corretamente as notificações de evento.
Gravar testes
Descrição: Valida os recursos de gravação da unidade para o conteúdo de dados no contexto do IMAPI. O dispositivo é testado com várias velocidades de gravação relatadas pela unidade. O teste também valida se os recursos de multissessão do dispositivo são aplicáveis à mídia inserida
Mídia aplicável: Qualquer uma das seguintes mídias (depende da operação de unidade):
Gravação sequencial:
CD-R
CD-RW
DVD+R
DVD-R
DVD-RAM
BD-R
BD-RE
Substituição restrita:
- DVD-RW
Modo de pacote:
- DVD+RW
Multisessão:
CD-R
CD-RW
DVD-R
DVD+R
BD-R
Etapas do caso de teste:
Peça ao usuário para inserir mídia em branco.
Chame a API IDiscFormat2Data::get_CurrentMediaStatus para marcar se a mídia estiver em branco.
Se a mídia não estiver em branco e se for um dos seguintes tipos de mídia reescrito, apague a mídia enviando o comando em branco com uma opção mínima em branco.
CD-RW
Gravação Sequencial de DVD-RW
Substituição restrita de DVD-RW
DVD+RW
DVD-RAM
BD-RE
Se a mídia não for uma mídia rewritable, peça ao usuário para inserir a mídia em branco. Repita isso por três vezes, caso contrário, falhe no caso de teste.
Se a mídia não for uma mídia rewritable, peça ao usuário para inserir a mídia em branco. Repita isso por três vezes, caso contrário, falhe no caso de teste.
Obtenha a lista de Descritores de Velocidade de Gravação chamando a API IDiscFormat2Data::get_SupportedWriteSpeedDescriptors.
Randomizar a ordem das velocidades de gravação relatadas
Defina a Velocidade de Gravação chamando a API IDiscFormat2Data::SetWriteSpeed com uma das velocidades de gravação da etapa 6.
Crie um tamanho de dados aleatório com o intervalo de 10% do espaço disponível na mídia. Preencha o buffer com dados aleatórios.
Obtenha o número de blocos gratuitos no disco usando a IDiscFormat2Data::get_FreeSectorsOnMedia da API.
Obtenha o próximo endereço gravável usando a API IDiscFormat2Data::get_NextWritableAddress.
Escreva o buffer de dados da etapa 8 usando IDiscFormat2Data::Write.
Se a unidade der suporte ao mecanismo de injeção automática, ejete e injete a mídia na bandeja.
Se a mídia não for DVD-RW, DVD+RW, DVD-RAM, BD-RE, então:
Obtenha o número de blocos gratuitos no disco usando a IDiscFormat2Data::get_FreeSectorsOnMedia da API.
Verifique se o número de setores livres é menor que o valor da etapa 9 pelo tamanho dos dados de gravação na etapa 8.
Obtenha o próximo endereço gravável usando a API IDiscFormat2Data::get_NextWritableAddress.
Verifique se o próximo endereço gravável é maior que o próximo endereço gravável da etapa 10 pelo tamanho dos dados de gravação na etapa 8.
Leia os dados do disco e compare se ele corresponde aos dados gravados na mídia na etapa 11.
Obter as últimas informações de faixa
Se a mídia não for DVD-RW, marcar se o Tamanho da Faixa Lógica for maior ou igual ao tamanho dos dados que escrevemos.
Verifique se o número da faixa lógica está correto.
Obtenha a página Modo de parâmetros de gravação.
Verifique se a página Controlar informações relatadas pela unidade não é Pacote/Incremental se a página Modo de parâmetros de gravação é relatada como Pacote fixo.
Leia as informações do disco e marcar se o número de sessões corresponder.
Se a mídia não for DVD-RW, DVD+RW e DVD-RAM, repita as etapas de 7 a 19 para cada velocidade de gravação. Se a unidade retornou apenas uma velocidade de gravação, repita as etapas 7 a 19 mais uma vez para adicionar mais uma sessão ao disco para validar os recursos de multissessão.
Resultado: A unidade deve ser capaz de queimar os dados no contexto do IMAPI.
MÍDIA DE ÁUDIO (GRAVAR FAIXAS DE ÁUDIO)
Descrição: Valide os recursos de gravação da unidade para o conteúdo de áudio no contexto do IMAPI.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-R
CD-RW
Etapas do caso de teste:
Se a mídia não estiver em branco e se for um tipo de mídia CD-RW, apague a mídia enviando o comando em branco com uma opção mínima em branco.
Se a mídia não for uma mídia recriável, peça ao usuário para inserir a mídia em branco. Repita isso por três vezes, caso contrário, falhará no caso de teste.
Bloqueie a mídia para acesso exclusivo chamando DiscFormat2TrackAtOnce::P repareMedia.
Obtenha a lista de Descritores de Velocidade de Gravação chamando a API IDiscFormat2TrackAtOnce::get_SupportedWriteSpeeds.
Escolha o número aleatório de faixas de áudio entre 3 e 10.
Randomize a ordem das velocidades de gravação relatadas.
Defina a Velocidade de Gravação chamando a API IDiscFormat2TrackAtOnce::SetWriteSpeed da etapa 1.
Obtenha o número de blocos gratuitos no disco usando a API IDiscFormat2Data::get_FreeSectorsOnMedia.
Crie dados de áudio de tamanho aleatório de dados de áudio de 1 minuto a 10 minutos de dados de áudio. O tamanho dos dados deve ser um múltiplo de 2352.
Adicione o fluxo de dados de áudio ao IDiscFormat2TrackAtOnce::AddAudioTrack.
Obter a última faixa Informações
Verifique se o Tamanho da faixa lógica se for maior ou igual ao tamanho da faixa de áudio que escrevemos.
Verificar se o número da faixa lógica está correto
Obtenha o número de setores gratuitos na mídia chamando IDiscFormat2TrackAtOnce::FreeSectorsOnMedia.
Verifique se o número de setores livres da etapa 14 é menor que o valor da etapa 8 pelo tamanho da faixa de áudio gravada na mídia.
Repita as etapas de 5 a 15 para o número de faixas de áudio da etapa 5
Obter a página modo de parâmetros de gravação
Verifique se a página Controlar informações relatadas pela unidade não é Pacote/Incremental se a página Modo de parâmetros de gravação é relatada como Pacote fixo
Repita as etapas de 1 a 18 para cada Velocidade de Gravação.
Se a unidade der suporte ao mecanismo autojetar-injetar, ejete e injete a mídia na bandeja.
Resultado: A unidade deve ser capaz de queimar a mídia de áudio no contexto do IMAPI.
Vazio
Descrição: Valida os recursos de formato/em branco da unidade no contexto do IMAPI.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-RW
DVD+RW
Substituição restrita de DVD-RW
BD-RE
Etapas do caso de teste:
Verifique se a mídia é um dos seguintes tipos de mídia de gravação de leitura chamando a API IDiscFormat2Data::CurrentPhysicalMediaType
CD-RW
DVD-RW
DVD+RW
Se a mídia não for um dos tipos de mídia de gravação de leitura, ignore o caso de teste.
Verifique se a mídia é uma mídia em branco chamando a API IDiscFormat2Erase::MediaPhysicallyBlank.
Se a mídia estiver em branco, vá para a etapa 7.
Crie um fluxo de dados aleatório de 25 MB.
Escreva o fluxo de dados no disco usando a API IDiscFormat2Data::Write.
Verifique se a unidade relata a mídia como mídia não em branco chamando a API IDiscFormat2Data::get_CurrentMediaStatus.
Se a unidade ainda relatar mídia como em branco, então falhará no caso de teste
Implemente Erase Event Handler DDiscFormat2EraseEvents::Update.
Chame a API IDiscFormat2Erase::p ut_FullErase e defina a opção de apagamento como false, para que ela faça um mínimo em branco.
Envie o comando em branco usando a API IDiscFormat2Erase::EraseMedia.
Chame a API IDiscFormat2Data::get_CurrentMediaStatus para marcar se a mídia estiver em branco.
Ler informações de disco e marcar se o
O número de sessões relatadas é 1.
A primeira faixa na última sessão é 1.
A última faixa na última sessão é 1.
Chame a API IDiscFormat2Erase::p ut_FullErase e defina a opção apagar como full blank. Repita as etapas de 9 a 14.
Resultado: A unidade deve ser capaz de formatar a mídia no contexto do IMAPI.
Gravar mídia de camada dupla
Descrição: Valida os recursos de gravação do para a mídia de camada dupla no contexto do IMAPI. O dispositivo é testado com várias velocidades de gravação relatadas pela unidade.
Mídia aplicável: Qualquer uma das seguintes mídias:
DVD+R DL
DVD-R DL
Etapas do caso de teste:
Peça ao usuário para inserir mídia em branco.
Chame a API IDiscFormat2Data::get_CurrentMediaStatus para marcar se a mídia estiver em branco
Se a mídia não for uma mídia recriável, peça ao usuário para inserir a mídia em branco. Repita isso por três vezes, caso contrário, falhará no caso de teste.
Obtenha a lista de Descritores de Velocidade de Gravação chamando a API IDiscFormat2Data :: get_SupportedWriteSpeedDescriptors.
Randomizar a ordem das velocidades de gravação relatadas
Defina a Velocidade de Gravação chamando a API IDiscFormat2Data::SetWriteSpeed com uma das velocidades de gravação da etapa 5.
Crie um fluxo de dados aleatório de tamanho aleatório de até 50% do espaço disponível na mídia. Preencher o buffer com dados aleatórios
Escreva o buffer de dados da etapa 7 usando IDiscFormat2Data :: Write.
Se a unidade der suporte ao mecanismo de injeção automática de ejeção, ejete e injete a mídia na bandeja.
Leia os dados do disco e compare se ele corresponde aos dados gravados na mídia na etapa 9.
Obtenha as últimas informações de rastreamento.
Verifique se o Tamanho da Faixa Lógica será maior ou igual ao tamanho dos dados que escrevemos.
Verificar se o número da faixa lógica está correto
Obtenha a página Modo de parâmetros de gravação.
Verifique se a página Controlar informações relatadas pela unidade não é Pacote/Incremental se a página Modo de parâmetros de gravação é relatada como Pacote fixo.
Leia as informações do disco e marcar se o número de sessões corresponder.
Repita as etapas de 8 a 16 com um fluxo de dados aleatório de tamanho aleatório de até 100% do espaço disponível na mídia.
Aviso
Essas últimas etapas são testar se a unidade é capaz de gravar os dados na camada dupla corretamente.
Resultado: A unidade deve ser capaz de queimar os dados em ambas as camadas da mídia de Camada Dupla no contexto do IMAPI.
Unidade somente leitura
Descrição: Teste a funcionalidade de leitura de uma unidade somente leitura em um disco aberto (acréscimo) e fechado (finalizado).
Aviso
Esse caso de teste requer uma unidade de gravador secundária para criar o disco de dados de teste para o perfil de teste correspondente.
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-ROM
DVD-ROM
BD-ROM
Etapas do caso de teste:
Ejete a bandeja da unidade do gravador.
Se o perfil de teste for
CD-ROM solicita que o usuário insira CD-R/CD-RW na unidade de gravador.
DVD-ROM peça ao usuário para inserir DVD+R/DVD-R/DVD+RW/DVD-RAM na unidade do gravador.
O BD-ROM solicita que o usuário insira BD-R/ BD-RE na unidade de gravador.
Injete a bandeja da unidade do gravador.
Obtenha a lista de Descritores de Velocidade de Gravação chamando a API IDiscFormat2Data :: get_SupportedWriteSpeedDescriptors.
Crie um fluxo de dados aleatório de tamanho aleatório de até 10% do espaço disponível na mídia. Preencha o buffer com dados aleatórios.
Defina a Velocidade de Gravação chamando a API IDiscFormat2Data::SetWriteSpeed com o primeiro valor do descritor de velocidade de gravação da etapa 4.
Escreva o buffer de dados da etapa 5 usando IDiscFormat2Data::Write na mídia na unidade de gravador.
Ejete a bandeja de unidade do gravador se ela der suporte ao mecanismo de ejeção automática. Caso contrário, peça ao usuário para pressionar o botão ejetar
Ejete a bandeja de test drive se ela der suporte ao mecanismo de ejeção automática ejetar a bandeja, caso contrário, peça ao usuário para pressionar o botão ejetar.
Peça ao uso para remover a mídia da unidade de gravador e colocá-la no test drive.
Injete a bandeja da unidade do gravador se ela der suporte ao mecanismo de injeção automática (carregando a bandeja). Caso contrário, peça ao usuário para inserir a bandeja na unidade.
Injete a bandeja do test drive se ela der suporte ao mecanismo de injeção automática (carregando a bandeja). Caso contrário, peça ao usuário para inserir a bandeja na unidade.
Leia os dados do disco de test drive e compare se ele corresponde aos dados gravados na mídia na etapa 7.
Defina iDiscFormat2Data::ForceMediaToBeClosed como true e Repita as etapas 1 a 13 para validar o test drive em um disco finalizado.
Resultado: A unidade deve ser capaz de ler a mídia fechada e aberta.
Número de série da unidade
Descrição: Valida se o número de série da unidade retornado pelo test drive está em conformidade com o MMC/Mt. Padrões de especificação fuji.
Aviso
Esse caso de teste requer duas unidades idênticas para validar se ambas as unidades retornam números de série exclusivos. Um dispositivo de teste primário e o outro é um test drive secundário.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Envie o comando INQUIRY para o dispositivo de teste primário com o comprimento de alocação igual a 05h.
Se o comando for bem-sucedido, obtenha o valor de comprimento adicional do cabeçalho de resposta.
Envie o comando INQUIRY novamente para o dispositivo primário com comprimento de alocação definido como 5 bytes a mais do que o comprimento adicional da etapa 2.
Se o comando for bem-sucedido, obtenha a Identificação do Fornecedor, a Identificação do Produto e o Nível de Revisão do Produto.
Repita a etapa 1 a 4 para a unidade secundária e obtenha a Identificação do Fornecedor, a Identificação do Produto e o Nível de Revisão do Produto.
Compare os valores de Identificação do Fornecedor, Identificação do Produto e Nível de Revisão do Produto das etapas 4 e 5. Se eles não corresponderem, falhará no caso de teste.
Aviso
Isso é para garantir que ambos os test drives sejam idênticos
Envie o comando GET CONFIGURATION para o test drive primário para obter o recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA com comprimento de alocação igual ao tamanho do descritor de recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA.
Verifique a resposta se o código do recurso corresponde ao código do recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA. Obtenha o comprimento adicional.
Envie o comando GET CONFIGURATION para o test drive primário para obter o recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA com comprimento de alocação igual ao tamanho do descritor de recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA mais o comprimento adicional necessário relatado na etapa 8.
Verifique o seguinte na resposta:
O código do recurso corresponde ao código do recurso NÚMERO DE SÉRIE DA UNIDADE LÓGICA.
Os dados de número de série relatados estão em ASCII.
Os dados são preenchidos.
Nenhum dado após o preenchimento.
Repita de 7 a 9 para o dispositivo de teste secundário e obtenha o número de série da unidade.
Compare os números de série da unidade das etapas 10 e 11. Espera-se que as unidades retornem números de série exclusivos. Se ambos os números de série forem iguais, falhará no caso de teste.
Resultado: A unidade deve retornar um número de série exclusivo e esse número deve estar em conformidade com o MMC/Mt. Padrões Fuji.
Streaming em tempo real
Descrição: Valida que os recursos de streaming em tempo real da unidade para o conteúdo de dados no contexto de cdrom.sys driver. O dispositivo é testado com várias velocidades de leitura e gravação relatadas pela unidade.
Mídia aplicável: Qualquer mídia compatível com o dispositivo
Etapas do caso de teste:
Peça ao usuário para inserir mídia.
Se a mídia não for gravável ou recriável, prossiga para o teste de leitura na etapa 13.
Chame a API IDiscFormat2Data::get_CurrentMediaStatus para marcar se a mídia estiver em branco.
Se a mídia não estiver em branco e se for um dos seguintes tipos de mídia recriáveis, apague a mídia enviando o comando em branco com uma opção mínima em branco.
CD-RW
Gravação sequencial de DVD-RW
Substituição restrita de DVD-RW
DVD+RW
DVD-RAM
BD-RE
Se a mídia não for uma mídia recriável, peça ao usuário para inserir a mídia em branco. Repita isso por três vezes, caso contrário, falhará no caso de teste.
Comando Enviar GET CONFIGURATION com a solicitação do recurso STREAMING em TEMPO REAL. Se não for bem-sucedido ou o bit Atual não estiver definido, falhará no teste.
Se o bit SW (Gravação de Fluxo) ou o bit WSPD (Descritor de Desempenho de Velocidade de Gravação) da resposta do recurso STREAMING em TEMPO REAL não estiver definido, o teste falhará.
Comando Enviar GET PERFORMANCE com solicitação para descritores de velocidade de gravação e build e matriz de velocidades de gravação com suporte. Se o comando não for bem-sucedido, falhe no teste.
Embaralhar a matriz de velocidade de gravação.
SE o tamanho da mídia gratuita for superior a 10% de sua chamada de capacidade total DeviceIoControl com IOCTL_CDROM_SET_SPEED e CDROM_SET_STREAMING estrutura fornecida para a próxima velocidade de gravação. Escreva dados aleatórios de até 10% da capacidade total e meça a velocidade (consulte a seção correspondente neste documento para medir a descrição do procedimento).
Repita a etapa 10 o máximo possível. Se todas as velocidades de gravação forem investigadas, embaralte a matriz de velocidade e defina a próxima velocidade de gravação para o início.
Enviar comandos CLOSE TRACK SESSION para finalizar a mídia
Se o bit WSPD (Descritor de Desempenho de Velocidade de Gravação) da resposta do recurso STREAMING em TEMPO REAL estiver definido, envie o comando GET PERFORMANCE com a solicitação de Descritores de Velocidade de Gravação e crie uma matriz de velocidades de leitura com suporte, caso contrário, envie o comando GET PERFORMANCE com a solicitação de dados de desempenho com bits de tolerância definidos como 10b (nominal) e, para as velocidades de leitura, selecione o menor valor dos campos Desempenho inicial e Desempenho Final na resposta. Se um dos comandos não tiver êxito, falharei no teste.
Embaralhar a matriz de velocidade de leitura.
Defina o comprimento de leitura como o tamanho da primeira faixa na mídia.
Para cada chamada de velocidade de leitura DeviceIoControl com IOCTL_CDROM_SET_SPEED e CDROM_SET_STREAMING estrutura fornecida para a próxima velocidade de leitura. Leia os dados inteiros registrados na mídia em partes de 10% da capacidade de mídia (ou pelo menos 5 MB se a mídia tiver menos de 50 MB de dados) e meça a velocidade de cada parte. Se a velocidade real de qualquer parte estiver abaixo da velocidade solicitada para qualquer uma das partes, marque que o teste falhou.
Resultado: A unidade deve ser capaz de operar no modo de streaming em tempo real.
Medição de velocidade de gravação
O teste consulta o dispositivo e obtém as velocidades de gravação com suporte para a mídia de teste. Em seguida, ele tentará validar o cenário de gravação para todas as velocidades de gravação relatadas. O teste espera que as velocidades de gravação calculadas para cada cenário de gravação sejam próximas da velocidade de gravação definida para a unidade. O teste permite tolerância de 10% para a velocidade de gravação medida. O teste valida a velocidade de gravação conforme mostrado abaixo.
O teste grava dados na mídia e monitora a quantidade de dados que estão sendo gravados. Ele exclui o tempo para os dados gravados iniciais de 10% dos dados gravados nos últimos 10%. Ele mede o tempo apenas para os dados médios de 80% e calcula a velocidade para esses dados e adiciona tolerância de 10% a esse valor. Portanto, se 'x' for o calculado, a velocidade dos dados médios de 80%, a velocidade calculada final será de 1,1x. O teste espera que esse valor seja maior ou igual à velocidade definida para a unidade antes de iniciar a gravação.
O teste exclui os 10% iniciais de tempo de gravação de dados para permitir que a unidade se prepare para gravação. O tempo de dados final de 10% é excluído para permitir que a unidade faça a limpeza adequada dos dados gravados na mídia.
Gravações brutas sem lacunas de mídia de áudio
Descrição: Valida os recursos de gravação da unidade para o conteúdo de áudio bruto sem lacunas no contexto do IMAPI
Mídia aplicável: Qualquer uma das seguintes mídias:
CD-R
CD-RW
Etapas do caso de teste:
Verifique se a unidade com mídia inserida dá suporte à gravação bruta sem lacunas ou não. Se não houver suporte, o teste falhará.
Verifique os tipos de setor compatíveis com o test drive.
Para cada tipo de setor compatível com test drive, conclua as etapas 4 a 9
Crie a imagem bruta.
Defina o tipo de setor correto e crie o fluxo de resultados para a imagem bruta.
Determine se a imagem bruta é sem lacunas ou não.
Escolha aleatoriamente uma velocidade de gravação e defina-a como a velocidade de queima. Defina o tipo de setor solicitado como aquele que foi definido para a imagem bruta. Escreva o fluxo da imagem bruta na mídia e watch o progresso. Calcule a velocidade de queima e imprima a taxa de transferência.
Determine se a gravação foi bem-sucedida verificando cada informação de faixa lógica. Verifique se a faixa é de áudio, se o tamanho da faixa está correto e se o tamanho do último número de faixa lógica mais seu endereço inicial é igual ao endereço inicial do cliente potencial fora do disco. Se qualquer uma das condições retornar false, o teste falhará. Caso contrário, ele passará.
Faça uma leitura bruta para a mídia. Para cada faixa, marcar se a faixa for áudio. Se não for, falhe no teste, pois a gravação já garantiu que as faixas são faixas de áudio. Calcule o deslocamento inicial e o deslocamento final da faixa. Faça a leitura da faixa começando do deslocamento inicial e terminando no deslocamento final da faixa. Se ocorrer um erro durante o processo de leitura, falhe no teste;
Resultado: A unidade deve ser capaz de queimar a imagem de áudio bruto sem lacunas no contexto do IMAPI.
Uso de comando
Comando | Descrição |
---|---|
OpticalLogoTest.exe /drive [StorageDriveLetter]:\ /log [log] [AdditionalParams] /profile [profile] /RunTestCaseTypes [RunTestCaseTypes] |
Executa o teste. |
Observação
Para obter ajuda de linha de comando para esse binário de teste, digite /h.
Sintaxe de comando
Opção de comando | Descrição |
---|---|
unidade |
Testar letra de unidade de dispositivo óptico. Exemplo: /drive e:\\ |
adaptador |
path (usado para teste do adaptador). Exemplo: /adapter \"PCI\\VEN_8086&DEV_27DF&SUBSYS_01AD1028&REV_01\\3&172E68DDD&0&F9\" |
PrimaryTestDrive |
Testar letra de unidade de dispositivo óptico. Exemplo: /PrimaryTestDrive e:\\ |
SecondaryTestDrive |
Letra de unidade de dispositivo de teste óptico secundária. Exemplo: /Secondary Test Drive f:\\ |
WriterDrive |
Letra da unidade do Gravador que precisa ser usada para testar unidades somente leitura. Exemplo: /WriterDrive f:\\ |
PrimaryDriveTray |
Recursos primários de bandeja de dispositivo óptico. Exemplo: /PrimaryDriveTray SupportsEjectInject |
SecondaryDriveTray |
Recursos secundários da bandeja de dispositivos ópticos. Exemplo: /SecondaryDriveTray SupportsEjectInject |
WriterDriveTray |
Funcionalidades da bandeja de disco do gravador. Exemplo: /WriterDriveTray SupportsEjectInject |
perfil |
Execute os perfis especificados dos casos de teste. A ID do perfil deve estar em casas decimais e separadas por vírgula sem espaços. Exemplo: /profile 9,10,16 |
seed |
Valor de semente para gerar dados de teste aleatórios. Exemplo: /seed 1000 |
RunTestCaseTypes |
Executa apenas a categoria de casos de teste. Exemplo: dispositivo /RunTestCaseTypes |
RunTestCase |
Executa somente este caso de teste. Exemplo: /RunTestCase Inquiry |
Automação |
Execute no modo de automação usando o robô para alterar a mídia. Exemplo: /Automation |
AutomationConfigFile |
O arquivo de configuração usado para especificar o local do compartimento para mídia. Exemplo: /AutomationConfigFile OpticalLogoTest.exe.config |
Calibrar |
Calibrar o robô usado para alterar a mídia. Exemplo: /Calibrar |
Logotipo |
O nível de requisitos de certificação a serem testados. Exemplo: /logo basic ou /logo premium |
ReuseMedia |
Reutilize a mídia não em branco para teste. O teste não espera que a mídia fique em branco se a multissessão tiver suporte para essa mídia. Essa opção é somente para teste. Não permitido para certificação. Exemplo: /ReuseMedia |
SkipFullBlank |
Ignore o cenário em branco completo e teste apenas o mínimo em branco. Exemplo: /SkipFullBlank |
SkipManualTestCases |
Ignorar casos de teste que precisam de interação manual. Exemplo: /SkipManualTestCases |
RunDataDirectionFlagScenario |
Valide os comandos com um sinalizador de direção de dados incorreto. Exemplo: /RunDataDirectionFlagScenario |
Depurador |
Solicita a anexação do depurador que dá tempo para permitir que o depurador seja anexado antes de executar o programa. Exemplo: /Depurador |
Detalhamento |
Detalhamento de log. Exemplo: /Verbosity Verbose |
log |
Nome do arquivo de log Valor padrão: OpticalLogoTest.wtl Exemplo: /log mytestlog.wtl |
EnableImapiv2Trace |
Habilite o rastreamento de software IMAPIv2. Exemplo: /EnableImapiv2Trace |
Imapiv2TraceGuidsFile |
IMAPIv2 trace GUIDs file that has the entire list of component GUIDs for which the traces need to be logged Valor padrão: imapiv2-guids.txt Exemplo: /IMAPIv2TraceGuidsFile imapiv2-guids.txt |
Imapiv2TraceLogFile |
Arquivo de log de rastreamento de saída IMAPIv2. Valor padrão: imapiv2-tracelog.etl Exemplo: /IMAPIv2TraceLogFile imapiv2-tracelog.etl |
cmdPerfTraceAnalysis |
Execute a análise de desempenho do comando. Exemplo: /cmdPerfTraceAnalysis Always |
cmdPerfTraceGuidsFile |
Arquivo GUIDs de rastreamento de desempenho que tem os GUIDs de componentes que rastreiam dados de desempenho Valor padrão: perf-guids.txt Exemplo: /cmdPerfTraceGuidsFile perf-guids.txt |
cmdPerfTraceLogFile |
Arquivo de log de rastreamento de saída de desempenho Valor padrão: perf-tracelog.etl Exemplo: /cmdPerfTraceLogFile perf-tracelog.etl |
cmdPerfTraceTmfFile |
Arquivo de descrição do formato de rastreamento de desempenho. Exemplo: /cmdPerfTraceTmfFile perf-tracelog.tmf |
Lista de arquivos
Arquivo | Location |
---|---|
ataportlogotrace.tmf |
<[testbinroot]>\nttest\driverstest\storage\optical\setup\tracing\ |
autoloader.dll |
<[testbinroot]>\nttest\driverstest\storage\optical\autoloader\ |
DataPacket.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
DeviceTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
DiscManagerLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
microsoft.storage.imapi.dll |
<[testbinroot]>\nttest\driverstest\storage\interop\imapi\ |
ModularTestCase.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalLogoTest.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalTestHarness.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalTestLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ProfileTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ScenarioTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ScsiLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
storageinteroputil.dll |
<[testbinroot]>\nttest\driverstest\storage\interop\utils\ |
tracefmt.exe |
<[osbinroot]>\idw\ |
storagedevices.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
TraceLib.dll |
<[osbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
tracelog.exe |
<[osbinroot]>\idw\ |
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
StorageDriveLetter | Letra da unidade de dispositivo de teste |
profile | |
LLU_NetAccessOnly | Conta de usuário para acessar o compartilhamento de arquivos de teste. |
LLU_LclAdminUsr | Conta de usuário para executar o teste. |
WDKDeviceID | Caminho da instância do dispositivo a ser testado |
log | |
RunTestCaseTypes | |
AdditionalParams |