função de retorno de chamada HW_PROCESS_SERVICE_REQUEST (storport.h)
A rotina de retorno de chamada HwStorProcessServiceRequest recebe o IRP de controle de dispositivo que contém a solicitação IOCTL_MINIPORT_PROCESS_SERVICE_IRP quando um chamador, como um aplicativo no modo de usuário ou driver no modo kernel, requer uma operação de "retorno de chamada reverso". A E/S é concluída pelo driver de miniporto quando ele precisa informar ao chamador de algo ou precisa que o chamador faça algo.
Sintaxe
HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
void HwProcessServiceRequest(
PVOID DeviceExtension,
PVOID Irp
)
{...}
Parâmetros
DeviceExtension
Um ponteiro para a área de armazenamento por adaptador do driver de miniporto virtual.
Irp
Um ponteiro para a solicitação de E/S.
Retornar valor
Nenhum
Comentários
O nome HwStorProcessServiceRequest é um texto de espaço reservado para o nome de rotina real. O protótipo real dessa rotina é definido em Storport.h da seguinte maneira:
typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
_In_ PVOID DeviceExtension,
_In_ PVOID Irp
);
O driver de porta chama a rotina HwStorProcessServiceRequest do driver de miniporto virtual do Storport em PASSIVE_LEVEL. O driver de miniporto virtual conclui o IRP chamando a rotina StorPortCompleteServiceIrp .
Exemplos
Para definir uma função de retorno de chamada HwStorProcessServiceRequest , primeiro você deve fornecer uma declaração de função que identifique o tipo de função de retorno de chamada que você está definindo. O Windows fornece um conjunto de tipos de função de retorno de chamada para drivers. Declarar uma função usando os tipos de função de retorno de chamada ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.
Por exemplo, para definir uma rotina de retorno de chamada HwStorProcessServiceRequest chamada MyHwProcessServiceRequest, use o tipo HW_PROCESS_SERVICE_REQUEST conforme mostrado neste exemplo de código:
HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;
Em seguida, implemente sua rotina de retorno de chamada da seguinte maneira:
_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
_In_ PVOID DeviceExtension,
_In_ PVOID Irp
);
{
...
}
O tipo de função HW_PROCESS_SERVICE_REQUEST é definido no arquivo de cabeçalho Storport.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função HW_PROCESS_SERVICE_REQUEST no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função para drivers storport. Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | storport.h (inclua Storport.h) |