PGET_LOCATION_STRING fungsi panggilan balik (ntddk.h)

Rutinitas PnpGetLocationString menyediakan bagian khusus perangkat dari properti SPDRP_LOCATION_PATHS perangkat.

Sintaks

PGET_LOCATION_STRING PgetLocationString;

NTSTATUS PgetLocationString(
  [in, out] PVOID Context,
  [out]     PZZWSTR *LocationStrings
)
{...}

Parameter

[in, out] Context

Penunjuk ke informasi konteks khusus antarmuka. Penelepon meneruskan nilai yang diteruskan sebagai anggota Konteks dari struktur PNP_LOCATION_INTERFACE .

[out] LocationStrings

Penunjuk ke urutan string Unicode yang dihentikan null, yang dihentikan oleh nol lain. Setiap string berfungsi sebagai string lokasi untuk perangkat. Driver biasanya mengembalikan satu string.

Nilai kembali

Rutinitas mengembalikan nilai NTSTATUS untuk menunjukkan status operasi.

Keterangan

Struktur PNP_LOCATION_INTERFACE memasok pointer ke rutinitas PnpGetLocationString .

Rutinitas PnpGetLocationString menyediakan bagian khusus perangkat dari string lokasi untuk perangkat. Manajer Plug and Play (PnP) menggabungkan string lokasi untuk perangkat dengan mengkueri driver untuk perangkat, untuk bus perangkat, dan bus induk apa pun, dan menggabungkan string yang disediakan bersama-sama.

Rutinitas harus mengembalikan string yang unik untuk perangkat relatif terhadap busnya. String harus sama untuk perangkat di semua versi sistem operasi. Setelah Anda memilih string untuk tujuan ini, Anda tidak boleh mengubahnya.

Menurut konvensi, string lokasi mengambil formulir ServiceName(BusSpecificLocation). Misalnya, perangkat PCI menggunakan PCI(XXYY), di mana XX adalah nomor perangkat, dan YY adalah nomor fungsi.

Rutinitas PnpGetLocationString memanggil rutinitas seperti ExAllocatePoolWithTag untuk mengalokasikan memori untuk string lokasi. Pemanggil bertanggung jawab untuk memanggil rutinitas ExFreePool untuk membebaskan memori yang ditujukan oleh LocationStrings ketika string lokasi tidak lagi diperlukan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows Server 2003.
Target Platform Desktop
Header ntddk.h (termasuk Ntddk.h, Ntifs.h)
IRQL <= PASSIVE_LEVEL

Lihat juga

ExAllocatePoolWithTag

ExFreePool

PNP_LOCATION_INTERFACE