WdfFdoInitAllocAndQueryProperty-Funktion (wdffdo.h)
[Gilt für KMDF und UMDF]
Die WdfFdoInitAllocAndQueryProperty-Methode weist einen Puffer zu und ruft eine angegebene Geräteeigenschaft ab.
Syntax
NTSTATUS WdfFdoInitAllocAndQueryProperty(
[in] PWDFDEVICE_INIT DeviceInit,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
[out] WDFMEMORY *PropertyMemory
);
Parameter
[in] DeviceInit
Ein Zeiger auf eine WDFDEVICE_INIT Struktur, die der Treiber aus seiner EvtDriverDeviceAdd-Rückruffunktion abgerufen hat.
[in] DeviceProperty
Ein DEVICE_REGISTRY_PROPERTY typisierter Enumeratorwert, der die abzurufende Geräteeigenschaft identifiziert.
[in] PoolType
Ein POOL_TYPE typisierter Enumeratorwert, der den Typ des zuzuweisenden Arbeitsspeichers angibt.
[in, optional] PropertyMemoryAttributes
Ein Zeiger auf eine vom Aufrufer zugeordnete WDF_OBJECT_ATTRIBUTES Struktur, die Objektattribute für das Speicherobjekt beschreibt, das WdfFdoInitAllocAndQueryProperty zuordnet. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.
[out] PropertyMemory
Ein Zeiger auf einen WDFMEMORY-typisierten Speicherort, der ein Handle für ein Frameworkspeicherobjekt empfängt.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Methode STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Der angegebene DeviceProperty-Wert ist ungültig. |
|
Die WDFDEVICE_INIT-Struktur wurde nicht über die EvtDriverDeviceAdd-Rückruffunktion des Treibers abgerufen. |
Die -Methode gibt möglicherweise auch andere NTSTATUS-Werte zurück.
Hinweise
Der Treiber muss WdfFdoInitAllocAndQueryProperty aufrufen, bevor WdfDeviceCreate aufgerufen wird. Weitere Informationen zum Aufrufen von WdfDeviceCreate finden Sie unter Erstellen eines Framework-Geräteobjekts.
Nach dem Aufrufen von WdfDeviceCreate kann ein Treiber Geräteeigenschafteninformationen abrufen, indem er WdfDeviceAllocAndQueryProperty aufruft.
Weitere Informationen zur WdfFdoInitAllocAndQueryProperty-Methode finden Sie unter Erstellen von Geräteobjekten in einem Funktionstreiber.
Alternativ können Sie WdfFdoInitAllocAndQueryPropertyEx verwenden, um auf Geräteeigenschaften zuzugreifen, die über das einheitliche Eigenschaftenmodell verfügbar gemacht werden.
Beispiele
Im folgenden Codebeispiel wird WdfFdoInitAllocAndQueryProperty aufgerufen, um ein Handle für ein Frameworkspeicherobjekt abzurufen, das den Namen der Setupklasse eines Geräts enthält. Anschließend ruft das Beispiel WdfMemoryGetBuffer auf, um einen Zeiger auf den Puffer zu erhalten, der die Unicode-Zeichenfolge des Setupklassennamens enthält.
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
);
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdffdo.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |