Função WdfIoResourceListAppendDescriptor (wdfresource.h)
[Aplica-se somente ao KMDF]
O método WdfIoResourceListAppendDescriptor adiciona um descritor de recursos ao final da configuração lógica de uma lista de requisitos de recursos.
Sintaxe
NTSTATUS WdfIoResourceListAppendDescriptor(
[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
WdfIoResourceListAppendDescriptor 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 |
---|---|
|
Um parâmetro inválido foi especificado. |
|
O driver não tinha permissão para adicionar descritores à configuração lógica especificada pelo parâmetro ResourceList . |
|
A estrutura não pôde alocar espaço para armazenar o 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 IO_RESOURCE_DESCRIPTOR para a qual o parâmetro Descritor aponta para o armazenamento interno, para que a rotina de driver que chama WdfIoResourceListAppendDescriptor possa alocar a estrutura localmente. Depois que o driver chama WdfIoResourceListAppendDescriptor, o driver pode reutilizar a estrutura IO_RESOURCE_DESCRIPTOR .
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 cria uma configuração lógica vazia e a adiciona a uma lista de requisitos de recursos. Em seguida, o exemplo inicializa um descritor de recurso e adiciona o descritor à configuração lógica.
IO_RESOURCE_DESCRIPTOR descriptor;
NTSTATUS status;
WDFIORESLIST logConfig;
status = WdfIoResourceListCreate(
RequirementsList,
WDF_NO_OBJECT_ATTRIBUTES,
&logConfig
);
if (!NT_SUCCESS(status)) {
return status;
}
status = WdfIoResourceRequirementsListAppendIoResList(
RequirementsList,
logConfig
);
if (!NT_SUCCESS(status)) {
return status;
}
RtlZeroMemory(
&descriptor,
sizeof(descriptor)
);
descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;
status = WdfIoResourceListAppendDescriptor(
logConfig,
&descriptor
);
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) |