Função WdfIoResourceListInsertDescriptor (wdfresource.h)
[Aplica-se somente ao KMDF]
O método WdfIoResourceListInsertDescriptor insere um descritor de recursos na configuração lógica de uma lista de requisitos de recursos.
Sintaxe
NTSTATUS WdfIoResourceListInsertDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] ULONG Index
);
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.
[in] Index
Um valor baseado em zero que é usado como um índice no conjunto de descritores de recursos que já estão na configuração lógica especificada pelo ResourceList . Para adicionar um descritor de recursos ao final da configuração lógica, especifique WDF_INSERT_AT_END ou o valor retornado de WdfIoResourceListGetCount.
Retornar valor
WdfIoResourceListInsertDescriptor 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 |
---|---|
|
Um parâmetro inválido foi especificado. |
|
O driver não tinha permissão para adicionar descritores à configuração lógica. |
|
A estrutura não pôde alocar espaço para armazenar o descritor. |
|
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 WdfIoResourceListInsertDescriptor insere o descritor de recurso para o qual o parâmetro Descriptor aponta para a configuração lógica especificada pelo parâmetro ResourceList , na frente do descritor de recurso que o valor index identifica.
Para adicionar um descritor de recurso ao final de uma configuração lógica, especifique WDF_INSERT_AT_END ou o valor retornado de WdfIoResourceListGetCount para o valor index . Como alternativa, use o método WdfIoResourceListAppendDescriptor .
A estrutura copia o conteúdo da estrutura IO_RESOURCE_DESCRIPTOR no armazenamento interno, de modo que a rotina do driver que chama WdfIoResourceListInsertDescriptor pode alocar a estrutura localmente. Depois que o driver chamar WdfIoResourceListInsertDescriptor, o driver poderá 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 inicializa um descritor de recursos e adiciona o descritor ao final de uma configuração lógica.
IO_RESOURCE_DESCRIPTOR descriptor;
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 = WdfIoResourceListInsertDescriptor(
logConfig,
&descriptor,
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 de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |