Compartilhar via


Stream Interface Driver Implementation

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Vários problemas podem afetar suas decisões design como implementar um transmitir interface driver dynamic-link library (DLL). Para implementar o driver interface transmitir, criar um DLL contendo o exigido entrada aponta para os drivers e, em seguida, decidir se você desejar para aplicar ou único ou múltiplo acessar para o driver.

Serviços em Services.exe se comportam da mesma forma para drivers que gerencia o Device Manager.

Pontos de entrada de fluxo de interface de driver

Aqui e em outro lugar, XXX Refere-se a um prefixo caractere três você escolher para seu driver de dispositivo. Ao implementar um substituir driver interface transmitir XXX Com um prefixo apropriado para sua implementação específica.

Você pode implementar um driver com somente Init e Deinit entrada pontos e nenhum prefixo dispositivo. Você não pode acessar este driver usando CreateFile. PCIBUS e RegEnum são dois exemplos desse tipo de driver. Esses drivers estão na _WINCEROOT%\Public\Common\OAK\Drivers\RegEnum %_WINCEROOT%\Public\Common\OAK\Drivers\PCIbus e %.

Se DEVFLAGS_NAKEDENTRIES for especificado do driver Sinalizadores subchave Registro, os nomes ponto de entrada podem ser não decorado; de exemplo, Abrir, Fechar, e assim por diante. O driver bateria exemplo, que está em % _WINCEROOT%\Public\Common\OAK\Drivers\Battdrvr, é um exemplo de um driver que usa não decorado entrada pontos. As configurações do driver de bateria Registro ainda devem incluir um prefixo.

Suas implementações desses pontos entrada devem ser declaradas para exportar a partir seu DLL colocando __declspec(dllexport) in front of declaração sua função. Se você estiver desenvolvendo em C++, seus pontos entrada também devem ser declarados externo "C" bem.

Para obter mais informações sobre a interface transmitir, consulte Stream Interface Driver Functions.

Acesso único e acesso múltiplo

Como os dispositivos periféricos estão expostos a aplicativos como arquivos quando você cria uma interface transmitir, você fornecer a implementação de tal um arquivo. Portanto, é aconselhável se é prático, com base nos recursos do dispositivo que expõe seu driver, para habilitar múltiplo os aplicativos que simultâneas acessar o arquivo que representa o dispositivo. Isto é, considere se seu driver pode ter múltiplo aberto alças arquivo no seu dispositivo. Um driver interface transmitir pode implementar o acessar único ou múltiplo acessar usando o hOpenContext parâmetro passado para todas as funções arquivo E/S.

Para habilitar múltiplo acessar, cada chamar a função de XXX_Open (Device Manager) deve retornar um valor diferente de hOpenContext. O driver de dispositivo deve controlar qual retornar valores de XXX_Open estão em uso. Posteriores chamadas para XXX_Close (Device Manager), XXX_Read (Device Manager)XXX_Write (Device Manager), XXX_Seek (Device Manager)e XXX_IOControl (Device Manager) transmitir esses valores voltar para o driver de dispositivo, ativando o driver para identificar quais estruturas internas dados para manipular.

Para aplicar único acessar, somente o primeiro chamar a XXX_Open deve retornar um válido hOpenContext valor. Desde que esse valor permanece válido, que é até XXX_Fechar é chamado para o valor, chamadas subseqüentes para XXX_Open deve retornar NULL para o aplicativo chamado para indicar falha.

Para implementar o Telephony API (TAPI) você deve ter dispositivos porta serial que suporte múltiplo acessar. Os OEMs que estão usando qualquer uma das implementações camada superior a porta serial de Microsoft ganho essa funcionalidade automaticamente. Os OEMs que escrevem suas próprias camadas superiores porta serial devem implementar múltiplo acessar para si mesmos em ordem para suporte TAPI.

See Also

Concepts

I/O Control Codes