Share via


Usando identificadores de atividade

Nas versões de estrutura 1.11 e posteriores, os drivers UMDF podem definir e recuperar IDs (identificadores de atividade). As IDs de atividade permitem associar várias solicitações de E/S, para que você possa rastreá-las usando o rastreamento etw (Rastreamento de Eventos para Windows). Este tópico descreve alguns cenários possíveis em que o driver pode usar IDs de atividade.

Associando novas solicitações a uma solicitação existente

Na função de retorno de chamada de expedição de E/S do driver, você pode criar várias solicitações de E/S de estrutura como resultado de uma solicitação de entrada. O driver obtém a ID da atividade da solicitação original e a define nas novas solicitações chamando WdfRequestRetrieveActivityId e WdfRequestSetActivityId.

Para obter um exemplo de código, consulte WdfRequestRetrieveActivityId.

Associando novas solicitações a um thread existente

Um driver pode criar uma nova solicitação de E/S em um thread diferente do thread de expedição de E/S ou em um item de trabalho. Você pode definir a ID de atividade para essa solicitação de qualquer solicitação correspondente ou usando a ID de atividade associada ao thread de expedição de E/S. O driver pode recuperar a ID de atividade associada ao thread atual chamando EventActivityIdControl e, em seguida, chamando WdfRequestSetActivityId para definir o identificador para cada nova solicitação de E/S.

Se o driver chamar a API do Win32 para enviar uma solicitação de E/S, ele poderá recuperar a ID da atividade da solicitação original e propagá-la para o thread. Em seguida, o gerenciador de E/S aplica a ID de atividade associada ao thread a todos os IRPs (pacotes de solicitação de E/S) gerados em resposta à solicitação.