Funzione WdfIoResourceRequirementsListRemoveByIoResList (wdfresource.h)
[Si applica solo a KMDF]
Il metodo di WdfIoResourceRequirementsListRemoveByIoResList rimuove un configurazione logica da un elenco di requisiti delle risorse.
Sintassi
void WdfIoResourceRequirementsListRemoveByIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList
);
Parametri
[in] RequirementsList
Handle per un oggetto framework resource-requirements-list che rappresenta l'elenco dei requisiti delle risorse di un dispositivo.
[in] IoResList
Handle per un oggetto framework resource-range-list che rappresenta la configurazione logica da rimuovere dall'elenco dei requisiti delle risorse che RequirementsList specificato.
Valore restituito
Nessuno
Osservazioni
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
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 Framework-Based.
Esempi
L'esempio di codice seguente cerca le 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;
}
}
}
...
}
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
intestazione | wdfresource.h (include Wdf.h) |
libreria | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | <=DISPATCH_LEVEL |
regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
Vedere anche
WdfIoResourceListGetDescriptor
WdfIoResourceRequirementsListGetCount