Condividi tramite


Funzione WdfIoResourceListInsertDescriptor (wdfresource.h)

[Si applica solo a KMDF]

Il metodo WdfIoResourceListInsertDescriptor inserisce un descrittore di risorsa nella configurazione logica dell'elenco dei requisiti delle risorse.

Sintassi

NTSTATUS WdfIoResourceListInsertDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

Parametri

[in] ResourceList

Handle per un oggetto framework resource-range-list che rappresenta una configurazione logica delle risorse hardware per un dispositivo.

[in] Descriptor

Puntatore a una struttura IO_RESOURCE_DESCRIPTOR che descrive una risorsa hardware.

[in] Index

Valore in base zero usato come indice nel set di descrittori di risorse già presenti nella configurazione logica specificata da ResourceList . Per aggiungere un descrittore di risorse alla fine della configurazione logica, specificare WDF_INSERT_AT_END o il valore restituito da WdfIoResourceListGetCount.

Valore restituito

WdfIoResourceListInsertDescriptor 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
È stato specificato un parametro non valido.
STATUS_ACCESS_DENIED
Il driver non è stato autorizzato ad aggiungere descrittori alla configurazione logica.
STATUS_INSUFFICIENT_RESOURCES
Il framework non è riuscito ad allocare spazio per archiviare il descrittore.
STATUS_ARRAY_BOUNDS_EXCEEDED
Valore specificato dal parametro Index troppo grande.
 

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

Commenti

Il metodo WdfIoResourceListInsertDescriptor inserisce il descrittore di risorsa a cui punta il parametro Descriptor nella configurazione logica specificata dal parametro ResourceList , davanti al descrittore di risorsa identificato dal valore Index .

Per aggiungere un descrittore di risorse alla fine di una configurazione logica, specificare WDF_INSERT_AT_END o il valore restituito da WdfIoResourceListGetCount per il valore index . In alternativa, usare il metodo WdfIoResourceListAppendDescriptor .

Il framework copia il contenuto della struttura IO_RESOURCE_DESCRIPTOR in una risorsa di archiviazione interna, quindi la routine del driver che chiama WdfIoResourceListInsertDescriptor può allocare la struttura in locale. Dopo che il driver chiama WdfIoResourceListInsertDescriptor, il driver può riutilizzare la struttura IO_RESOURCE_DESCRIPTOR .

Per altre informazioni sugli elenchi di requisiti delle risorse e sulle configurazioni logiche, vedere Risorse hardware per i driver Framework-Based.

Esempio

Nell'esempio di codice seguente viene inizializzato un descrittore di risorsa e viene aggiunto il descrittore alla fine di una configurazione logica.

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;
}

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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListAppendDescriptor