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 di WDFDEVICE_INIT ottenuta dal driver dal relativo EvtDriverDeviceAdd funzione di callback.

[in] DeviceProperty

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

[in] PoolType

Valore enumeratore POOL_TYPEtipizzato 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 per l'oggetto memoria che WdfFdoInitAllocAndQueryProperty allocherà. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.

[out] PropertyMemory

Puntatore a una posizione tipizzata WDFMEMORY che riceve un handle per 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 di callback evtDriverDeviceAdd del driver.
 

Il metodo potrebbe anche restituire altri valori NTSTATUS .

Osservazioni:

Il driver deve chiamare WdfFdoInitAllocAndQueryProperty prima di chiamare WdfDeviceCreate. Per altre informazioni sulla chiamata di WdfDeviceCreate, vedere Creating a Framework Device Object.

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

Per altre informazioni sul metodo WdfFdoInitAllocAndQueryProperty, vedere Creating Device Objects in a Function Driver.

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

Esempi

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 contenente 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 minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdffdo.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
regole di conformità DDI DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedere anche

WdfDeviceAllocAndQueryProperty

WdfFdoInitQueryProperty