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