次の方法で共有


PGET_LOCATION_STRINGコールバック関数 (ntddk.h)

PnpGetLocationString ルーチンは、デバイスのSPDRP_LOCATION_PATHS プロパティのデバイス固有の部分を提供します。

構文

PGET_LOCATION_STRING PgetLocationString;

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

パラメーター

[in, out] Context

インターフェイス固有のコンテキスト情報へのポインター。 呼び出し元は、PNP_LOCATION_INTERFACE 構造体の Context メンバーとして渡される値を渡します。

[out] LocationStrings

null で終わる Unicode 文字列のシーケンスへのポインター。別の 0 で終了します。 各文字列は、デバイスの場所の文字列として機能します。 ドライバーは通常、1 つの文字列を返します。

戻り値

ルーチンは、操作の状態を示す NTSTATUS 値を返します。

備考

PNP_LOCATION_INTERFACE 構造体は、PnpGetLocationString ルーチンへのポインターを提供します。

PnpGetLocationString ルーチンは、デバイスの場所文字列のデバイス固有の部分を提供します。 プラグ アンド プレイ (PnP) マネージャーは、デバイスのドライバー、デバイスのバス、および親バスのクエリを実行し、指定された文字列を連結することで、デバイスの場所文字列をアセンブルします。

このルーチンは、バスに対する相対的なデバイスに固有の文字列を返す必要があります。 文字列は、オペレーティング システムのすべてのバージョンでデバイスで同じである必要があります。 この目的で文字列を選択した後は、変更しないでください。

慣例により、場所の文字列は ServiceName(BusSpecificLocation) 形式になります。 たとえば、PCI デバイスは PCI(XXYY) を使用します。ここで、xx はデバイス番号、YY は関数番号です。

PnpGetLocationString ルーチンは、exAllocatePoolWithTag などのルーチンを呼び出して、場所の文字列にメモリを割り当てます。 呼び出し元は、ExFreePool ルーチンを呼び出して、場所の文字列が不要になったときに LocationStrings が指すメモリを解放する役割を担います。

必要条件

要件 価値
サポートされる最小クライアント Windows Server 2003 以降で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー ntddk.h (Ntddk.h、Ntifs.h を含む)
IRQL <= PASSIVE_LEVEL

関連項目

ExAllocatePoolWithTag

ExFreePool

PNP_LOCATION_INTERFACE