How to Migrate a Windows-based Desktop NDIS Miniport Driver to Windows Embedded CE
9/8/2008
Você pode migrar um driver de miniporta Network Driver Interface Specification (NDIS) de um área de trabalho Windows-Based plataforma para Windows Embedded CE com uma quantidade mínima de alterações. Muitas das alterações envolvem condicionalmente compilando NDIS funcionalidade driver de miniporta que Windows Embedded CE não tem suporte. Para portabilidade entre área de trabalho Windows-Based plataformas e Windows Embedded CE, Microsoft recomenda que você fizer alterações seu driver para habilitá-lo para compilar no ferramenta de desenvolvimento de Microsoft® Platform Builder e com um driver desenvolvimento kit (DDK) para área de trabalho Windows-Based plataformas.
O NDIS wrapper é um dynamic-link library (DLL) que facilita o desenvolvimento e migrar os drivers de miniporta NDIS por partes de OS abstracting e fornecendo funções de suporte.
Para completo o seguinte procedimento, Microsoft usado um área de trabalho Windows-Based driver que ofereça suporte a Intel EtherExpress PRO/100 + ** adaptador Ethernet PCI e Intel EtherExpress pro/adaptador PCI 100B** (E100BEX). Você pode obter a codificar origem exemplo para o driver E100BEX instalando o DDK Windows XP.
Observação
Começando com Windows CE 5.0, um driver para o driver E100BEX Windows Embedded CE está incluído o sistema operacional. As etapas neste documento instrução são basicamente ilustrativos.
Estes são o principal diferenças entre os drivers de miniporta NDIS para o área de trabalho Windows-Based plataformas e Windows Embedded CE:
- Windows Embedded CE Drivers de miniporta NDIS são arquivos .dll, mas os drivers de miniporta NDIS para área de trabalho Windows-Based plataformas são arquivos .sys.
- Windows Embedded CE Drivers de miniporta NDIS devem expor o DriverEntry função.
- Windows Embedded CE não usa a menor 64 KB de espaço de endereço de E/S.
Não use os valores 16 bit para E/S porta endereços. - A implementação NDIS Windows Embedded CE não suporte os ônibus EISA ou MCA.
Não use o NdisOverRideBusNumber e NdisReadMcaPosInformation funções. - A implementação NDIS Windows Embedded CE não suporte direcionar acessar memória (acesso direto à memória (DMA)).
Não use o NdisSetupDmaTransfer, NdisCompleteDmaTransfer, NdisMRegisterDmaChannel, NdisMDeregisterDmaChannel, NdisMAllocateMapRegisters, NdisMFreeMapRegisters, NdisMReadDmaCounter, e NdisGetSharedDataAlignment funções.
Use o NdisMAllocateSharedMemory e NdisMFreeSharedMemory funções de mestre barramento PCI acesso direto à memória (DMA) transfere. - Em Windows Embedded CE, a NdisInitializeEvent função requer o NdisFreeEvent função e o NdisInitializeReadWriteLock função requer o NdisFreeReadWriteLock função.
- Em Windows Embedded CE, evite unaligned acessar E/S e memória.
Você talvez precise estruturas reorganizar ou condicionalmente definir outro tipo com oUNALIGNED
palavra-chave. - Em Windows Embedded CE, para atrasos maiores que 50 microssegundos, use o NdisMSleep função, em vez de NdisStallExecution função. NdisStallExecution Requer um QueryPerformanceCounter implementação de seu dispositivo destino.
Hardware e Software Assumptions
- Você tem um área de trabalho Windows-Based driver de miniporta NDIS. Para obter mais informações, consulte Miniports, drivers intermediárias e drivers de protocolo.
- Você criou um design OS de Platform Builder. Para obter mais informações, consulte Como usar o IDE para criar, personalizar e criar uma imagem Run-Time.
- Seu dispositivo destino tem um cartão Ethernet para download a executar - imagem tempo e um cartão Ethernet para produto Ethernet e você pretende usar o driver de miniporta NDIS para o cartão Ethernet do produto. Para obter mais informações, consulte Opções de conexão Ethernet.
- Você está familiarizado com o download executar-tempo imagens para um dispositivo destino. Para obter mais informações, consulte Como configurar e baixar uma imagem em tempo de execução para uma CEPC.
Etapas
Etapa | Tópico |
---|---|
1. Adicionar o Wired Local Area Network Catalog item para seu design OS.
|
|
2. Excluir Vmini.dll do design de OS por configuração variáveis de ambiente BSP_NOSHAREETH e IMGNOSHAREETH. |
|
3. Adicionar o driver de miniporta Desktop NDIS Windows-Based a seu executar-imagem tempo compilar. |
Adding the Windows-based Desktop NDIS Miniport Driver to the Run-Time Image Build |
4. Adicione zonas depuração às funções inicialização driver de miniporta NDIS. |
Adding Debug Zones to the NDIS Miniport Driver Initialization Functions |
5. Remova acesso direto à memória (DMA) suporte as funções inicialização driver de miniporta NDIS. |
Removing DMA Support from the NDIS Miniport Driver Initialization Functions |
6. Remover não usado local variáveis a partir de funções núcleo driver de miniporta NDIS. |
Removing Unused Local Variables from the NDIS Miniport Driver Core Functions |
7. Adicione DllMain ponto de entrada para as funções núcleo driver de miniporta NDIS. |
Adding a DllMain Entry Point to the NDIS Miniport Driver Core Functions |
8. Remova o envio driver de miniporta NDIS suporte acesso direto à memória (DMA) e receber funções. |
Removing DMA Support From the NDIS Miniport Driver Send and Receive Functions |
9. Remova suporte Windows Management Instrumentation (WMI) do e condicionalmente Definição de gerenciamento de energia para as funções identificador de objeto driver de miniporta NDIS. |
Removing WMI Support From the NDIS Miniport Driver Object Identifier Functions |
10. Condicionalmente defina gerenciamento de energia nas funções identificador de objeto driver de miniporta NDIS. |
Conditionally Defining Power Management in the NDIS Miniport Driver Object Identifier Functions |
11. Filtro local variáveis no driver de miniporta NDIS PhyDetect e SetupPhy funções. |
Filtering Local Variables in the NDIS Miniport Driver PhyDetect and SetupPhy Functions |
12. Promover o design OS um executar-imagem tempo. |
|
13. In a Saída janela, na Saída Guia, verificar que a compilar não possua erros. |
|
14. Escolha um serviço baixar apropriado para o hardware conexão. O serviço baixar irá baixar um executar-imagem tempo ao dispositivo de destino. |
|
15. Configurar o hardware conexão exigido para o serviço baixar. Esse hardware conecta-se o dispositivo destino a estação de trabalho de desenvolvimento, na qual o Platform Builder está instalado. Exemplos de hardware conexão incluem cabos, um hub ou adaptadores rede Ethernet. |
|
16. Se você selecionou serial Service download na etapa 14, configurar o terminal do HyperTerminal aplicativo de Emulação para exibir o serial saída depuração a Partir de porta serial no dispositivo de destino. Esta configuração requer um NULL - modem cabo conectado a um porta serial, such as COM1. |
|
17. Ativar dispositivo de destino para que ele se torna ativo de rede Ethernet ou sobre o serial conexão e Platform Builder podem descobri-lo. |
Não aplicável |
18. Configure a conexão ao dispositivo de destino. Escolha o apropriado tópico baseia se estação de trabalho o desenvolvimento e o dispositivo destino são conectados por uma rede Ethernet ou uma conexão porta serial. |
|
19. Baixe o executar-imagem tempo para o dispositivo destino através de conexão configurado. |
|
20. Teste o driver de miniporta NDIS com o CETK. Se você também desejar para verificar a conexão rede através de driver de miniporta NDIS, você poderá fazê-lo a navegação na Web ou outro tipo de rede. Talvez você precise configurar o Internet para usar um servidor proxy. |
**The non-Microsoft software e hardware relacionado nesses documentos está incluídos para fins ilustrativos apenas.
As ilustrações que usam esse terceiro-parte software e hardware como exemplos não pretendem ser um apoio ou recomendação de qualquer um desses produtos.
Nós fornecem esse informações apenas como uma conveniência para nossos clientes para fins de explicando um aplicativo prático e não fornecem garantias de qualquer tipo, EXPRESSAS, IMPLÍCITAS OU LEGAIS, INCLUINDO, mas não se limitando a garantias implícitas de comercialização e / ou adequação para uma finalidade específica.
See Also
Tasks
Troubleshooting a Device Driver
Concepts
Miniports, Intermediate Drivers, and Protocol Drivers