Compartilhar via


Função WdfCmResourceListAppendDescriptor (wdfresource.h)

[Aplica-se somente ao KMDF]

O método WdfCmResourceListAppendDescriptor adiciona um descritor de recursos ao final de uma lista de recursos especificada.

Sintaxe

NTSTATUS WdfCmResourceListAppendDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
);

Parâmetros

[in] List

Um identificador para um objeto de lista de recursos de estrutura que representa uma lista de recursos de hardware para um dispositivo.

[in] Descriptor

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

Retornar valor

WdfCmResourceListAppendDescriptor retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro inválido foi especificado.
STATUS_ACCESS_DENIED
O driver não tinha permissão para adicionar descritores à configuração lógica especificada pelo parâmetro List . Por exemplo, o driver não pôde modificar a configuração lógica que sua função de retorno de chamada EvtDevicePrepareHardware ou EvtDeviceReleaseHardware recebeu.
STATUS_INSUFFICIENT_RESOURCES
A estrutura não pôde alocar espaço para armazenar o descritor especificado pelo parâmetro Descritor .
 

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

Comentários

A estrutura copia o conteúdo da estrutura CM_PARTIAL_RESOURCE_DESCRIPTOR para o armazenamento interno, para que a rotina de driver que chama WdfCmResourceListAppendDescriptor possa alocar a estrutura localmente. Depois que o driver chama WdfCmResourceListAppendDescriptor , ele pode reutilizar a estrutura CM_PARTIAL_RESOURCE_DESCRIPTOR .

Para obter mais informações sobre listas de recursos, consulte Recursos de hardware para drivers de Framework-Based.

Exemplos

O exemplo de código a seguir adiciona um descritor de recursos ao final da lista de recursos que uma função de retorno de chamada EvtDeviceResourcesQuery recebe.

NTSTATUS
PdoEvtDeviceResourcesQuery(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  Resources
    )
{
    CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
    newDescriptor.Type = CmResourceTypePort;
    newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
    newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
    newDescriptor.u.Port.Length = 1;
    newDescriptor.u.Port.Start = 0;

    status = WdfCmResourceListAppendDescriptor(
                                               Resources,
                                               &newDescriptor
                                               );
...

}

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

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListInsertDescriptor