Fungsi WdfIoTargetAllocAndQueryTargetProperty (wdfiotarget.h)

[Berlaku untuk KMDF saja]

Metode WdfIoTargetAllocAndQueryTargetProperty mengalokasikan buffer dan mengambil properti perangkat tertentu untuk target I/O tertentu.

Sintaks

NTSTATUS WdfIoTargetAllocAndQueryTargetProperty(
  [in]           WDFIOTARGET              IoTarget,
  [in]           DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]           POOL_TYPE                PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES   PropertyMemoryAttributes,
  [out]          WDFMEMORY                *PropertyMemory
);

Parameter

[in] IoTarget

Handel ke objek target I/O lokal atau jarak jauh yang diperoleh dari panggilan sebelumnya ke WdfDeviceGetIoTarget atau WdfIoTargetCreate atau dari metode yang disediakan target I/O khusus.

[in] DeviceProperty

Nilai jenis DEVICE_REGISTRY_PROPERTY yang mengidentifikasi properti perangkat yang akan diambil.

[in] PoolType

Nilai jenis POOL_TYPE yang menentukan jenis memori yang akan dialokasikan.

[in, optional] PropertyMemoryAttributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang dialokasikan penelepon yang menjelaskan atribut objek untuk objek memori yang akan dialokasikan fungsi. 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

WdfIoTargetAllocAndQueryTargetProperty mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER atau STATUS_INVALID_PARAMETER_2
Nilai yang ditentukan parameter DeviceProperty tidak valid.
STATUS_INVALID_DEVICE_REQUEST
Driver perangkat belum melaporkan properti perangkat.
 

Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Keterangan

Metode WdfIoTargetAllocAndQueryTargetProperty menentukan jumlah memori yang diperlukan untuk menahan properti perangkat yang diminta. Metode ini mengalokasikan memori yang cukup untuk menyimpan data dan mengembalikan handel ke objek memori kerangka kerja yang menjelaskan memori yang dialokasikan. Untuk mengakses data, driver Anda dapat memanggil WdfMemoryGetBuffer.

Untuk informasi selengkapnya tentang WdfIoTargetAllocAndQueryTargetProperty, lihat Mendapatkan Informasi Tentang Target I/O Umum.

Untuk informasi selengkapnya tentang target I/O, lihat Menggunakan Target I/O.

Contoh

Contoh kode berikut memanggil WdfIoTargetAllocAndQueryTargetProperty untuk mendapatkan properti DevicePropertyFriendlyName . Setelah WdfIoTargetAllocAndQueryTargetProperty kembali, driver dapat memanggil WdfMemoryGetBuffer untuk mendapatkan penunjuk ke buffer yang berisi string nama.

WDFMEMORY  targetName;
NTSTATUS  status;

status = WdfIoTargetAllocAndQueryTargetProperty(
                                                Target,
                                                DevicePropertyFriendlyName,
                                                NonPagedPool,
                                                WDF_NO_OBJECT_ATTRIBUTES,
                                                &targetName
                                                );

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfiotarget.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

DEVICE_REGISTRY_PROPERTY

POOL_TYPE

WDF_OBJECT_ATTRIBUTES

WdfDeviceAllocAndQueryProperty

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetQueryTargetProperty

WdfMemoryGetBuffer