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 |
---|---|
|
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 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. |
|
A estrutura não pôde alocar espaço para armazenar o descritor para o qual o parâmetro Descritor aponta. |
|
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) |