Fungsi WdfFdoInitAllocAndQueryProperty (wdffdo.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfFdoInitAllocAndQueryProperty mengalokasikan buffer dan mengambil properti perangkat tertentu.

Sintaks

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

Penunjuk ke struktur WDFDEVICE_INIT yang diperoleh driver dari fungsi panggilan balik EvtDriverDeviceAdd .

[in] DeviceProperty

Nilai enumerator jenis DEVICE_REGISTRY_PROPERTY yang mengidentifikasi properti perangkat yang akan diambil.

[in] PoolType

Nilai enumerator jenis POOL_TYPE yang menentukan jenis memori yang akan dialokasikan.

[in, optional] PropertyMemoryAttributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang dialokasikan pemanggil yang menjelaskan atribut objek untuk objek memori yang akan dialokasikan oleh WdfFdoInitAllocAndQueryProperty . Parameter ini bersifat opsional dan dapat WDF_NO_OBJECT_ATTRIBUTES.

[out] PropertyMemory

Penunjuk ke lokasi yang diketik WDFMEMORY yang menerima handel ke objek memori kerangka kerja.

Nilai kembali

Jika operasi berhasil, metode akan mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER atau STATUS_INVALID_PARAMETER_2
Nilai DeviceProperty yang ditentukan tidak valid.
STATUS_INVALID_DEVICE_REQUEST
Struktur WDFDEVICE_INIT tidak diperoleh dari fungsi panggilan balik EvtDriverDeviceAdd driver.
 

Metode ini mungkin juga mengembalikan nilai NTSTATUS lainnya.

Keterangan

Driver harus memanggil WdfFdoInitAllocAndQueryProperty sebelum memanggil WdfDeviceCreate. Untuk informasi selengkapnya tentang memanggil WdfDeviceCreate, lihat Membuat Objek Perangkat Kerangka Kerja.

Setelah memanggil WdfDeviceCreate, driver dapat memperoleh informasi properti perangkat dengan memanggil WdfDeviceAllocAndQueryProperty.

Untuk informasi selengkapnya tentang metode WdfFdoInitAllocAndQueryProperty , lihat Membuat Objek Perangkat di Driver Fungsi.

Atau, Anda dapat menggunakan WdfFdoInitAllocAndQueryPropertyEx untuk mengakses properti perangkat yang diekspos melalui Model Properti Terpadu.

Contoh

Contoh kode berikut memanggil WdfFdoInitAllocAndQueryProperty untuk mendapatkan handel ke objek memori kerangka kerja yang berisi nama kelas penyiapan perangkat. Kemudian, contoh memanggil WdfMemoryGetBuffer untuk mendapatkan penunjuk ke buffer yang berisi string Unicode nama kelas penyiapan.

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
                                    );
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdffdo.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

WdfDeviceAllocAndQueryProperty

WdfFdoInitQueryProperty