Compartilhar via


Função WdfCmResourceListInsertDescriptor (wdfresource.h)

[Aplica-se somente ao KMDF]

O método WdfCmResourceListInsertDescriptor insere um descritor de recursos em uma lista de recursos especificada.

Sintaxe

NTSTATUS WdfCmResourceListInsertDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                           Index
);

Parâmetros

[in] List

Um identificador para um objeto de lista de recursos da 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.

[in] Index

Um valor baseado em zero que é usado como um índice na configuração lógica especificada por List . Para adicionar um descritor de recursos ao final da lista de recursos, especifique WDF_INSERT_AT_END ou o valor retornado de WdfCmResourceListGetCount.

Retornar valor

WdfCmResourceListInsertDescriptor retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá 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 para o qual o parâmetro Descritor aponta.
STATUS_ARRAY_BOUNDS_EXCEEDED
O valor especificado pelo parâmetro Index era muito grande.
 

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

Comentários

O método WdfCmResourceListInsertDescriptor insere o descritor de recursos que o Descritor especifica na lista de recursos especificada por List , na frente do descritor de recursos que o valor index identifica.

Para adicionar um descritor de recursos ao final de uma lista de recursos, especifique WDF_INSERT_AT_END ou o valor retornado de WdfCmResourceListGetCount como o valor index . Como alternativa, use o método WdfCmResourceListAppendDescriptor .

A estrutura copia o conteúdo da estrutura CM_PARTIAL_RESOURCE_DESCRIPTOR para o armazenamento interno, de modo que a rotina de driver que chama WdfCmResourceListInsertDescriptor pode alocar a estrutura localmente. Depois que o driver chamar WdfCmResourceListInsertDescriptor, ele poderá 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 = WdfCmResourceListInsertDescriptor(
                                               Resources,
                                               &newDescriptor,
                                               WDF_INSERT_AT_END
                                               );
...

}

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 de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListAppendDescriptor