Funzione WdfIoResourceListAppendDescriptor (wdfresource.h)
[Si applica solo a KMDF]
Il metodo WdfIoResourceListAppendDescriptor aggiunge un descrittore di risorsa alla fine dell'elenco dei requisiti delle risorse configurazione logica.
Sintassi
NTSTATUS WdfIoResourceListAppendDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor
);
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.
Valore restituito
WdfIoResourceListAppendDescriptor restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
È stato specificato un parametro non valido. |
|
Il driver non è autorizzato ad aggiungere descrittori alla configurazione logica specificata dal parametro ResourceList. |
|
Il framework non è riuscito ad allocare spazio per archiviare il descrittore. |
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo dei bug di sistema.
Osservazioni
Il framework copia il contenuto della struttura IO_RESOURCE_DESCRIPTOR a cui il descrittore parametro punta nell'archiviazione interna, quindi la routine del driver che chiama WdfIoResourceListAppendDescriptor può allocare la struttura localmente. Dopo che il driver chiama WdfIoResourceListAppendDescriptor, 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.
Esempi
L'esempio di codice seguente crea una configurazione logica vuota e la aggiunge a un elenco di requisiti delle risorse. L'esempio inizializza quindi un descrittore di risorsa e aggiunge il descrittore alla configurazione logica.
IO_RESOURCE_DESCRIPTOR descriptor;
NTSTATUS status;
WDFIORESLIST logConfig;
status = WdfIoResourceListCreate(
RequirementsList,
WDF_NO_OBJECT_ATTRIBUTES,
&logConfig
);
if (!NT_SUCCESS(status)) {
return status;
}
status = WdfIoResourceRequirementsListAppendIoResList(
RequirementsList,
logConfig
);
if (!NT_SUCCESS(status)) {
return status;
}
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 = WdfIoResourceListAppendDescriptor(
logConfig,
&descriptor
);
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) |