Función WdfIoResourceListAppendDescriptor (wdfresource.h)
[Solo se aplica a KMDF]
El método WdfIoResourceListAppendDescriptor agrega un descriptor de recursos al final de la configuración lógica de una lista de requisitos de recursos.
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 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 |
---|---|
|
Se especificó un parámetro no válido. |
|
El controlador no tenía permiso para agregar descriptores a la configuración lógica que especificó el parámetro ResourceList . |
|
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.
Comentarios
El marco copia el contenido de la estructura IO_RESOURCE_DESCRIPTOR que el parámetro Descriptor apunta a almacenamiento interno, por lo que la rutina del controlador que llama a WdfIoResourceListAppendDescriptor puede asignar la estructura localmente. Una vez que el controlador llama a 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 | 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) |