Función WdfIoResourceRequirementsListRemoveByIoResList (wdfresource.h)
[Solo se aplica a KMDF]
El método WdfIoResourceRequirementsListRemoveByIoResList quita una configuración lógica de una lista de requisitos de recursos.
Sintaxis
void WdfIoResourceRequirementsListRemoveByIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList
);
Parámetros
[in] RequirementsList
Identificador de un objeto resource-requirements-list del marco que representa la lista de requisitos de recursos de un dispositivo.
[in] IoResList
Identificador de un objeto framework resource-range-list que representa la configuración lógica que se va a quitar de la lista de requisitos de recursos que requirementsList especifica.
Valor devuelto
None
Observaciones
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
El método WdfIoResourceRequirementsListRemoveByIoResList quita la configuración lógica asociada al identificador que especifica el parámetro IoResList .
Cuando WdfIoResourceRequirementsListRemoveByIoResList quita la configuración lógica que tiene el valor de índice n, el valor de índice de la siguiente configuración lógica cambia de n+1 a n.
Para obtener más información sobre las listas de requisitos de recursos, consulte Recursos de hardware para controladores de Framework-Based.
Ejemplos
En el ejemplo de código siguiente se buscan las configuraciones lógicas de la lista de requisitos de recursos de un dispositivo para buscar una configuración que contenga una dirección de puerto específica. Si el ejemplo encuentra esa configuración, quita la configuración.
NTSTATUS
Example_EvtDeviceFilterRemoveResourceRequirements(
IN WDFDEVICE Device,
IN WDFIORESREQLIST RequirementsList
)
{
ULONG i, j, reqCount, resCount;
BOOLEAN descriptorFound = FALSE;
//
// Obtain the number of logical configurations.
//
reqCount = WdfIoResourceRequirementsListGetCount(RequirementsList);
//
// Search each logical configuration.
//
for (i = 0; i < reqCount; i++) {
WDFIORESLIST reslist;
if (descriptorFound) {
break;
}
reslist = WdfIoResourceRequirementsListGetIoResList(RequirementsList, i);
//
// Get the number of resource descriptors that
// are in this logical configuration.
//
resCount = WdfIoResourceListGetCount(reslist);
for (j = 0; j < resCount; j++) {
PIO_RESOURCE_DESCRIPTOR descriptor;
//
// Get the next resource descriptor.
//
descriptor = WdfIoResourceListGetDescriptor(
reslist,
j
);
//
// Stop if this descriptor is the port descriptor
// that we're looking for.
//
if (descriptor->Type == CmResourceTypePort) {
if ((descriptor->u.Port.MinimumAddress) == PORT_RANGE_A) {
WdfIoResourceRequirementsListRemoveByIoResList(
RequirementsList,
reslist
);
descriptorFound = TRUE;
break;
}
}
}
...
}
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
WdfIoResourceListGetDescriptor
WdfIoResourceRequirementsListGetCount