Compartir a través de


Función WdfIoResourceListAppendDescriptor (wdfresource.h)

[Solo se aplica a KMDF]

El método WdfIoResourceListAppendDescriptor agrega un descriptor de recursos al final de una lista de requisitos de recursos configuración lógica.

Sintaxis

NTSTATUS WdfIoResourceListAppendDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

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.

Valor devuelto

WdfIoResourceListAppendDescriptor 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
No se permitió al controlador agregar descriptores a la configuración lógica que especificó el parámetro ResourceList.
STATUS_INSUFFICIENT_RESOURCES
El marco no pudo asignar espacio para almacenar el descriptor.
 

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

Observaciones

El marco copia el contenido de la estructura IO_RESOURCE_DESCRIPTOR que el parámetro descriptor de apunta al almacenamiento interno, por lo que la rutina del controlador que llama a WdfIoResourceListAppendDescriptor puede asignar la estructura localmente. Después de llamar al controlador WdfIoResourceListAppendDescriptor, 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 crea una configuración lógica vacía y se agrega a una lista de requisitos de recursos. A continuación, el ejemplo inicializa un descriptor de recursos y agrega el descriptor a la configuración 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
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

WdfIoResourceListCreate

WdfIoResourceListInsertDescriptor