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 |
---|---|
|
Se especificó un parámetro no válido. |
|
El controlador no tenía permiso para agregar descriptores a la configuración lógica. |
|
El marco no pudo asignar espacio para almacenar el descriptor. |
|
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) |