Funzione WdfIoResourceRequirementsListRemoveByIoResList (wdfresource.h)
[Si applica solo a KMDF]
Il metodo WdfIoResourceRequirementsListRemoveByIoResList rimuove una configurazione logica da un elenco dei requisiti delle risorse.
Sintassi
void WdfIoResourceRequirementsListRemoveByIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList
);
Parametri
[in] RequirementsList
Handle per un oggetto resource-requirements-list framework che rappresenta l'elenco dei requisiti delle risorse di un dispositivo.
[in] IoResList
Handle a un oggetto resource-range-list framework che rappresenta la configurazione logica da rimuovere dall'elenco dei requisiti delle risorse specificato da RequirementsList .
Valore restituito
nessuno
Osservazioni
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Il metodo WdfIoResourceRequirementsListRemoveByIoResList rimuove la configurazione logica associata all'handle specificato dal parametro IoResList .
Quando WdfIoResourceRequirementsListRemoveByIoResList rimuove la configurazione logica con il valore di indice n, il valore di indice della configurazione logica successiva cambia da n+1 a n.
Per altre informazioni sugli elenchi dei requisiti delle risorse, vedere Risorse hardware per i driver di Framework-Based.
Esempio
Nell'esempio di codice seguente vengono eseguite ricerche nelle configurazioni logiche nell'elenco dei requisiti delle risorse di un dispositivo per trovare una configurazione contenente un indirizzo di porta specifico. Se l'esempio trova tale configurazione, rimuove la configurazione.
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;
}
}
}
...
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfresource.h (includere Wdf.h) |
Libreria | Wdf01000.sys (vedere Framework Library Versioning). |
IRQL | <=DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
Vedi anche
WdfIoResourceListGetDescriptor
WdfIoResourceRequirementsListGetCount