Compartilhar via


Função WdfIoResourceListRemoveByDescriptor (wdfresource.h)

[Aplica-se somente ao KMDF]

O método WdfIoResourceListRemoveByDescriptor remove um descritor de recursos da configuração lógica de uma lista de requisitos de recursos.

Sintaxe

void WdfIoResourceListRemoveByDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

Parâmetros

[in] ResourceList

Um identificador para um objeto de lista de intervalo de recursos de estrutura que representa uma configuração lógica de recursos de hardware para um dispositivo.

[in] Descriptor

Um ponteiro para uma estrutura IO_RESOURCE_DESCRIPTOR que descreve um recurso de hardware.

Retornar valor

Nenhum

Comentários

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

O método WdfIoResourceListRemoveByDescriptor remove o descritor de recurso que corresponde ao parâmetro Descriptor . Para localizar uma correspondência, o método compara o descritor de recurso especificado com os descritores de recurso na configuração lógica, byte para byte.

Quando WdfIoResourceListRemoveByDescriptor remove o descritor de recurso que tem o valor de índice n, o valor de índice do próximo descritor de recursos muda de n+1 para n.

Para obter mais informações sobre listas de requisitos de recursos e configurações lógicas, consulte Recursos de hardware para drivers de Framework-Based.

Exemplos

O exemplo de código a seguir pesquisa uma configuração lógica para um descritor de recurso que contém um endereço de porta especificado e remove esse descritor de recurso.

IO_RESOURCE_DESCRIPTOR descriptor;
ULONG resCount, j;

//
// Get the number of resource descriptors that
// are in this logical configuration.
//
resCount = WdfIoResourceListGetCount(reslist);

for (j = 0; j < resCount; j++) {
    PIO_RESOURCE_DESCRIPTOR descriptor;

    //
    // Get the next resource descriptor.
    //
    descriptor = WdfIoResourceListGetDescriptor(
                                                reslist,
                                                j
                                                );

    //
    // Stop if this descriptor is the port descriptor that
    // we're looking for, and remove the descriptor.
    //
    if (descriptor->Type == CmResourceTypePort) {
        if ((descriptor->u.port.MinimumAddress) == PORT_RANGE_A) {
               WdfIoResourceListRemoveByDescriptor(
                                                   Reslist,
                                                   descriptor
                                                   );
               break;
        }
    }
}

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfresource.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <=DISPATCH_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListRemove