Partilhar via


Função WdfIoResourceRequirementsListInsertIoResList (wdfresource.h)

[Aplica-se somente ao KMDF]

O método WdfIoResourceRequirementsListInsertIoResList insere uma configuração lógica em uma lista de requisitos de recursos.

Sintaxe

NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList,
  [in] ULONG           Index
);

Parâmetros

[in] RequirementsList

Um identificador para um objeto de lista de requisitos de recursos da estrutura que representa a lista de requisitos de recursos de um dispositivo.

[in] IoResList

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

[in] Index

Um valor baseado em zero usado como um índice no conjunto de configurações lógicas que já estão na lista de requisitos de recursos que RequirementsList especifica. Para adicionar uma configuração ao final da lista, especifique WDF_INSERT_AT_END ou o valor retornado de WdfIoResourceRequirementsListGetCount.

Valor de retorno

WdfIoResourceRequirementsListInsertIoResList 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, conforme especificado.
STATUS_INVALID_DEVICE_REQUEST
O objeto de lista de requisitos de recurso especificado não possui o objeto de lista de intervalo de recursos especificado.
STATUS_INSUFFICIENT_RESOURCES
A estrutura não pôde alocar espaço para armazenar o objeto resource-range-list.
STATUS_ARRAY_BOUNDS_EXCEEDED
O valor especificado para o parâmetro índice era muito grande.
 

Uma verificação de bugs do sistema ocorre se o driver fornece um identificador de objeto inválido.

Observações

O método WdfIoResourceRequirementsListInsertIoResList insere a configuração lógica que o parâmetro IoResList especifica na lista de requisitos de recursos que o parâmetro RequirementsList especifica, em frente à configuração lógica que o Index value identifique.

Para adicionar uma configuração lógica ao final de uma lista de requisitos de recurso, use WDF_INSERT_AT_END ou o valor retornado de WdfIoResourceRequirementsListGetCount como o valor índice. Como alternativa, use o método WdfIoResourceRequirementsListAppendIoResList.

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

Exemplos

O exemplo de código a seguir mostra como uma função de retorno de chamada EvtDeviceResourceRequirementsQuery pode criar duas configurações lógicas vazias e adicioná-las a uma lista de requisitos de recursos.

NTSTATUS
Example_EvtDeviceResourceRequirementsQuery(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    NTSTATUS  status;
    WDFIORESLIST  logConfig1;
    WDFIORESLIST  logConfig2;

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig1
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceRequirementsListAppendIoResList(
                                             RequirementsList,
                                             logConfig1
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig2
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }
    status = WdfIoResourceRequirementsListInsertIoResList(
                                             RequirementsList,
                                             logConfig2,
                                             WDF_INSERT_AT_END
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }
...
}

Requisitos

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

Consulte também

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList