Compartir a través de


Función WdfIoResourceListInsertDescriptor (wdfresource.h)

[Solo se aplica a KMDF]

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

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 de 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 el parámetro index especifica era demasiado grande.
 

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

Observaciones

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

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 de 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. Después de llamar al controlador 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 Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
encabezado de wdfresource.h (incluya Wdf.h)
biblioteca de 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