Introdução aos destinos de E/S
Os tópicos nesta seção descrevem como um driver WDF (Estruturas de Driver do Windows) pode encaminhar uma solicitação de E/S ou criar e enviar uma nova solicitação para outro driver, chamado de destino de E/S.
Quando um driver de função, driver de filtro ou driver de miniporto recebe uma solicitação de E/S, o driver pode ser capaz de processar a solicitação sozinho ou pode precisar da assistência de outros drivers. Se o driver precisar de assistência, ele poderá encaminhar a solicitação para outro driver ou pode criar uma ou mais solicitações novas e enviá-las para outro driver.
No Kernel-Mode Driver Framework, um destino de E/S representa um objeto de dispositivo que é o destino de uma solicitação de E/S. Um driver de função, filtro ou miniporte pode usar um destino de E/S para enviar solicitações de E/S para outro driver. Esses drivers geralmente enviam suas solicitações de E/S para o driver mais baixo na pilha de driver. Portanto, cada função baseada em estrutura, filtro e driver de miniporto tem um destino de E/S local para cada dispositivo, que é o driver mais baixo do dispositivo.
Ocasionalmente, um driver deve enviar uma solicitação de E/S para um destino diferente– a parte superior de uma pilha de driver diferente ou, raramente, algum outro driver dentro da pilha do driver de envio. Portanto, a estrutura também fornece destinos de E/S remotos, que consistem em todos os destinos de E/S, exceto o destino de E/S local.
Cada destino de E/S é representado por um objeto de destino de E/S. Cada objeto de destino de E/S é principalmente uma fila que controla quando uma solicitação é entregue ao objeto de dispositivo de destino. Quando um driver envia uma solicitação para um destino de E/S, a estrutura armazena a solicitação na fila até que ela possa entregar a solicitação ao objeto de dispositivo de destino.
A estrutura dá suporte a destinos gerais de E/S e destinos de E/S especializados:
Os destinos gerais de E/S podem ser usados por todos os drivers de função, filtro e miniport, mas não dão suporte a nenhum formato de dados especial específico do dispositivo.
Os destinos de E/S especializados habilitam drivers de função, filtro e miniport para enviar facilmente solicitações de E/S que exigem formatação de dados específica de destino especial. Atualmente, a estrutura fornece suporte para os seguintes destinos de E/S especializados:
Se a estrutura fornecer destinos de E/S especializados que dão suporte ao formato de dados do dispositivo, o driver deverá usar os destinos de E/S especializados. Caso contrário, o driver deve usar destinos gerais de E/S.