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 |
---|---|
|
Il valore DeviceProperty specificato non è valido. |
|
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) |