Freigeben über


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
STATUS_INVALID_PARAMETER oder STATUS_INVALID_PARAMETER_2
Der angegebene DeviceProperty-Wert ist ungültig.
STATUS_INVALID_DEVICE_REQUEST
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)

Weitere Informationen

WdfDeviceAllocAndQueryProperty

WdfFdoInitQueryProperty