Partilhar via


Driver de Ônibus do IEEE 1394 no Windows 7

O Windows 7 inclui 1394ohci.sys, um novo driver de ônibus IEEE 1394 que dá suporte a velocidades mais rápidas e mídia alternativa, conforme definido na especificação IEEE-1394b. O driver de barramento 1394ohci.sys é um único driver de dispositivo (monolítico), implementado usando a estrutura de driver do modo kernel (KMDF). O driver de barramento 1394 herdado (disponível em versões anteriores do Windows) inclui vários drivers de dispositivo que foram implementados usando o WDM (Modelo de Driver do Windows) em uma configuração de porta/miniport. O motorista do ônibus 1394ohci.sys substitui o driver de porta herdado, 1394bus.sys e o driver de miniporto primário, ochi1394.sys.

O novo 1394ohci.sys motorista de ônibus é totalmente compatível com versões anteriores com o motorista de ônibus herdado. Este tópico descreve algumas das diferenças conhecidas no comportamento entre o novo e o motorista de ônibus herdado 1394.

Observação

O driver 1394ohci.sys é um driver de sistema incluído no Windows. Ele é carregado automaticamente quando você instala um controlador 1394. Esse não é um driver redistribuível que você pode baixar separadamente.

Conclusão da solicitação de E/S

Todas as solicitações de E/S enviadas para o novo motorista de ônibus 1394 retornam STATUS_PENDING porque o 1394ohci.sys motorista de ônibus é implementado usando KMDF em vez do WDM. Esse comportamento difere do do driver de ônibus herdado 1394, no qual determinadas solicitações de E/S são concluídas imediatamente.

Um motorista cliente deve aguardar até que as solicitações de E/S enviadas ao novo motorista de ônibus 1394 sejam concluídas. Você pode fornecer uma rotina de conclusão de E/S que é chamada após a conclusão da solicitação. O status da solicitação de E/S concluída está no IRP.

Recuperação de ROM de Configuração

O novo motorista de ônibus 1394 tenta usar transações de bloco assíncronas em velocidades de ônibus mais rápidas para recuperar o conteúdo da ROM de configuração de um nó. O motorista de ônibus herdado 1394 usa leituras quádruplas assíncronas a velocidade S100 ou 100 megabits por segundo (Mbps). O driver de barramento 1394ohci.sys também usa os valores especificados em entradas de geração e max_rom do cabeçalho ROM de configuração do nó para melhorar a recuperação do conteúdo restante da ROM de configuração. Para obter mais informações sobre como o novo driver de barramento 1394 recupera o conteúdo da ROM de configuração de um nó, consulte Recuperando o conteúdo de uma ROM de configuração do nó IEEE 1394.

Suporte a PHY do IEEE-1394-1995

O driver de barramento 1394ohci.sys requer uma PHY (camada física) que dá suporte a IEEE-1394a ou IEEE-1394b. Ele não dá suporte a um PHY que dê suporte ao IEEE-1394-1995. Esse requisito ocorre devido ao uso exclusivo de redefinições de barramento curtas (arbitradas) pelo motorista do ônibus 1394ohci.sys.

Uso da estrutura NODE_DEVICE_EXTENSION

Um driver cliente pode referenciar a extensão de dispositivo no driver de barramento 1394 associado ao PDO (objeto de dispositivo físico) para o dispositivo que o driver cliente controla. Essa extensão de dispositivo é descrita pela estrutura NODE_DEVICE_EXTENSION . Em 1394ohci.sys, essa estrutura permanece no mesmo local que no driver de ônibus herdado 1394, mas os membros não estáticos da estrutura podem não ser válidos. Quando um driver cliente usa o novo driver de ônibus 1394, ele deve garantir que os dados acessados no NODE_DEVICE_EXTENSION sejam válidos. Os membros estáticos de NODE_DEVICE_EXTENSION que contêm dados válidos são Tag, DeviceObject e PortDeviceObject. Todos os outros membros NODE_DEVICE_EXTENSION não são estáticos, que o driver do cliente não deve referenciar.

Otimização de Contagem de Lacunas

O comportamento padrão do 1394ohci.sys driver de barramento é otimizar a contagem de lacunas quando localiza apenas dispositivos IEEE 1394a no barramento 1394, excluindo o nó local. Por exemplo, se o sistema que está executando 1394ohci.sys tiver um controlador host que esteja em conformidade com o IEEE 1394b, mas todos os dispositivos no barramento estiverem em conformidade com o IEEE 1394a, o novo driver de ônibus 1394 tentará otimizar a contagem de lacunas.

A otimização da contagem de lacunas ocorrerá somente se o 1394ohci.sys motorista do ônibus determinar que o nó local é o gerenciador de ônibus.

O 1394ohci.sys motorista de ônibus determina se um dispositivo está em conformidade com o IEEE-1394a pela configuração de velocidade no pacote de auto-identificação do nó. Se um nó definir ambos os bits no campo de velocidade (sp) no pacote de auto-id, 1394ohci.sys considerará o nó para estar em conformidade com o IEEE-1394b. Se o campo de velocidade contiver qualquer outro valor, 1394ohci.sys considerará o nó em conformidade com o IEEE-1394a. O valor de contagem de lacunas usado é baseado na tabela E-1 na especificação IEEE-1394a, que fornece a contagem de lacunas como uma função de saltos. O driver de barramento 1394ohci.sys não calcula a contagem de lacunas. Você pode alterar o comportamento de contagem de lacunas padrão usando um valor do Registro. Para obter mais informações, consulte Modificando o comportamento padrão do driver de barramento do IEEE 1394.

Alterações na DDI (Interface do Driver de Dispositivo)

No Windows 7, os DDIs 1394 foram alterados para dar suporte a velocidades mais rápidas, conforme definido pela especificação de 1394b e aprimorados para simplificar o desenvolvimento de drivers de cliente 1394. Para obter mais informações sobre as alterações gerais de DDI compatíveis com o novo driver de barramento 1394, consulte Alterações de DDI (Interface do Driver de Dispositivo) no Windows 7.

A pilha de driver do IEEE 1394
Recuperando o conteúdo de uma ROM de configuração de um nó do IEEE 1394