Compartilhar 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 de estrutura que representa uma configuração lógica de recursos de hardware para um dispositivo.

[in] Index

Um valor baseado em zero que é 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.

Retornar valor

WdfIoResourceRequirementsListInsertIoResList 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, conforme especificado.
STATUS_INVALID_DEVICE_REQUEST
O objeto resource-requirements-list especificado não possui o objeto resource-range-list 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 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 WdfIoResourceRequirementsListInsertIoResList insere a configuração lógica que o parâmetro IoResList especifica na lista de requisitos de recursos especificada pelo parâmetro RequirementsList , na frente da configuração lógica que o valor index identifica.

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

Para obter mais informações sobre listas de requisitos de recursos, consulte Recursos de hardware para drivers de 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
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

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList