Condividi tramite


Funzione WdfIoResourceRequirementsListInsertIoResList (wdfresource.h)

[Si applica solo a KMDF]

Il metodo WdfIoResourceRequirementsListInsertIoResList inserisce una configurazione logica in un elenco dei requisiti delle risorse.

Sintassi

NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList,
  [in] ULONG           Index
);

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 una configurazione logica delle risorse hardware per un dispositivo.

[in] Index

Valore in base zero usato come indice nel set di configurazioni logiche già presenti nell'elenco dei requisiti delle risorse specificato da RequirementsList . Per aggiungere una configurazione alla fine dell'elenco, specificare WDF_INSERT_AT_END o il valore restituito da WdfIoResourceRequirementsListGetCount.

Valore restituito

WdfIoResourceRequirementsListInsertIoResList restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Parametro non valido come specificato.
STATUS_INVALID_DEVICE_REQUEST
L'oggetto resource-requirements-list specificato non è proprietario dell'oggetto resource-range-list specificato.
STATUS_INSUFFICIENT_RESOURCES
Il framework non è riuscito ad allocare spazio per archiviare l'oggetto resource-range-list.
STATUS_ARRAY_BOUNDS_EXCEEDED
Il valore specificato per il parametro Index era troppo grande.
 

Un controllo dei bug di sistema si verifica se il driver fornisce un handle di oggetto non valido.

Commenti

Il metodo WdfIoResourceRequirementsListInsertIoResList inserisce la configurazione logica identificata dal parametro IoResList nell'elenco dei requisiti delle risorse specificato dal parametro RequirementsList , davanti alla configurazione logica identificata dal valore Index .

Per aggiungere una configurazione logica alla fine di un elenco di requisiti delle risorse, usare WDF_INSERT_AT_END o il valore restituito da WdfIoResourceRequirementsListGetCount come valore di Index . In alternativa, usare il metodo WdfIoResourceRequirementsListAppendIoResList .

Per altre informazioni sugli elenchi dei requisiti delle risorse, vedere Risorse hardware per i driver Framework-Based.

Esempio

L'esempio di codice seguente mostra come una funzione di callback EvtDeviceResourceRequirementsQuery può creare due configurazioni logiche vuote e aggiungerle a un elenco di requisiti delle risorse.

NTSTATUS
Example_EvtDeviceResourceRequirementsQuery(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    NTSTATUS  status;
    WDFIORESLIST  logConfig1;
    WDFIORESLIST  logConfig2;

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig1
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceRequirementsListAppendIoResList(
                                             RequirementsList,
                                             logConfig1
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig2
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }
    status = WdfIoResourceRequirementsListInsertIoResList(
                                             RequirementsList,
                                             logConfig2,
                                             WDF_INSERT_AT_END
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }
...
}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 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)

Vedi anche

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList