Condividi tramite


Funzione WdfFdoInitAllocAndQueryProperty (wdffdo.h)

[Si applica a KMDF e UMDF]

Il metodo WdfFdoInitAllocAndQueryProperty alloca un buffer e recupera una proprietà del dispositivo specificata.

Sintassi

NTSTATUS WdfFdoInitAllocAndQueryProperty(
  [in]           PWDFDEVICE_INIT          DeviceInit,
  [in]           DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]           POOL_TYPE                PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES   PropertyMemoryAttributes,
  [out]          WDFMEMORY                *PropertyMemory
);

Parametri

[in] DeviceInit

Puntatore a una struttura WDFDEVICE_INIT ottenuta dal driver dalla funzione EvtDriverDeviceAdd callback.

[in] DeviceProperty

Valore enumeratore DEVICE_REGISTRY_PROPERTY tipizzato che identifica la proprietà del dispositivo da recuperare.

[in] PoolType

Valore dell'enumeratore POOL_TYPE tipizzato che specifica il tipo di memoria da allocare.

[in, optional] PropertyMemoryAttributes

Puntatore a una struttura di WDF_OBJECT_ATTRIBUTES allocata dal chiamante che descrive gli attributi dell'oggetto oggetto che WdfFdoInitAllocAndQueryProperty allocare. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.

[out] PropertyMemory

Puntatore a una posizione tipizzata WDFMEMORY che riceve un handle a un oggetto memoria framework.

Valore restituito

Se l'operazione ha esito positivo, il metodo restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER o STATUS_INVALID_PARAMETER_2
Il valore DeviceProperty specificato non è valido.
STATUS_INVALID_DEVICE_REQUEST
La struttura WDFDEVICE_INIT non è stata ottenuta dalla funzione evtDriverDeviceAggiungi callback.
 

Il metodo potrebbe restituire anche altri valori NTSTATUS.

Commenti

Il driver deve chiamare WdfFdoInitAllocAndQueryProperty prima di chiamare WdfDeviceCreate. Per altre informazioni sulla chiamata a WdfDeviceCreate, vedere Creazione di un oggetto dispositivo Framework.

Dopo aver chiamato WdfDeviceCreate, un driver può ottenere informazioni sulla proprietà del dispositivo chiamando WdfDeviceAllocAndQueryProperty.

Per altre informazioni sul metodo WdfFdoInitAllocAndQueryProperty , vedere Creazione di oggetti dispositivo in un driver di funzione.

In alternativa, è possibile usare WdfFdoInitAllocAndQueryPropertyEx per accedere alle proprietà del dispositivo esposte tramite il modello di proprietà Unified.

Esempio

Nell'esempio di codice seguente viene chiamato WdfFdoInitAllocAndQueryProperty per ottenere un handle a un oggetto memoria del framework contenente il nome della classe di installazione di un dispositivo. L'esempio chiama quindi WdfMemoryGetBuffer per ottenere un puntatore al buffer che contiene la stringa Unicode del nome della classe di installazione.

NTSTATUS  status = STATUS_SUCCESS;
PVOID  pMemoryBuffer = NULL;
WDFMEMORY  memory = NULL;

status = WdfFdoInitAllocAndQueryProperty(
                                         DeviceInit,
                                         DevicePropertyClassName, 
                                         NonPagedPool,
                                         WDF_NO_OBJECT_ATTRIBUTES,
                                         &memory
                                         );
if(NT_SUCCESS(status)){
 pMemoryBuffer = WdfMemoryGetBuffer(
                                    memory,
                                    NULL
                                    );
}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdffdo.h (include Wdf.h)
Libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regole di conformità DDI DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

WdfDeviceAllocAndQueryProperty

WdfFdoInitQueryProperty