Función WdfIoResourceListInsertDescriptor (wdfresource.h)

[Solo se aplica a KMDF]

El método WdfIoResourceListInsertDescriptor inserta un descriptor de recursos en la configuración lógica de una lista de requisitos de recursos.

Sintaxis

NTSTATUS WdfIoResourceListInsertDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

Parámetros

[in] ResourceList

Identificador de un objeto framework resource-range-list que representa una configuración lógica de recursos de hardware para un dispositivo.

[in] Descriptor

Puntero a una estructura IO_RESOURCE_DESCRIPTOR que describe un recurso de hardware.

[in] Index

Valor de base cero que se usa como índice en el conjunto de descriptores de recursos que ya están en la configuración lógica que ResourceList especifica. Para agregar un descriptor de recursos al final de la configuración lógica, especifique WDF_INSERT_AT_END o el valor devuelto de WdfIoResourceListGetCount.

Valor devuelto

WdfIoResourceListInsertDescriptor devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se especificó un parámetro no válido.
STATUS_ACCESS_DENIED
El controlador no tenía permiso para agregar descriptores a la configuración lógica.
STATUS_INSUFFICIENT_RESOURCES
El marco no pudo asignar espacio para almacenar el descriptor.
STATUS_ARRAY_BOUNDS_EXCEEDED
El valor que especifica el parámetro Index era demasiado grande.
 

Se produce una comprobación de errores del sistema si el controlador proporciona un identificador de objeto no válido.

Comentarios

El método WdfIoResourceListInsertDescriptor inserta el descriptor de recursos al que apunta el parámetro Descriptor a la configuración lógica que especifica el parámetro ResourceList , delante del descriptor de recursos que identifica el valor index .

Para agregar un descriptor de recursos al final de una configuración lógica, especifique WDF_INSERT_AT_END o el valor devuelto de WdfIoResourceListGetCount para el valor index . Como alternativa, use el método WdfIoResourceListAppendDescriptor .

El marco copia el contenido de la estructura de IO_RESOURCE_DESCRIPTOR en el almacenamiento interno, por lo que la rutina del controlador que llama a WdfIoResourceListInsertDescriptor puede asignar la estructura localmente. Una vez que el controlador llama a WdfIoResourceListInsertDescriptor, el controlador puede reutilizar la estructura de IO_RESOURCE_DESCRIPTOR .

Para obtener más información sobre las listas de requisitos de recursos y las configuraciones lógicas, consulte Recursos de hardware para controladores de Framework-Based.

Ejemplos

En el ejemplo de código siguiente se inicializa un descriptor de recursos y se agrega el descriptor al final de una configuración 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 Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfresource.h (incluya Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListAppendDescriptor