次の方法で共有


PFN_WSK_GET_ADDRESS_INFO コールバック関数 (wsk.h)

WskGetAddressInfo 関数は、ホスト名からトランスポート アドレスへのプロトコルに依存しない変換を実行します。

構文

PFN_WSK_GET_ADDRESS_INFO PfnWskGetAddressInfo;

NTSTATUS PfnWskGetAddressInfo(
  [in]           PWSK_CLIENT Client,
  [in, optional] PUNICODE_STRING NodeName,
  [in, optional] PUNICODE_STRING ServiceName,
  [in, optional] ULONG NameSpace,
  [in, optional] GUID *Provider,
  [in, optional] PADDRINFOEXW Hints,
  [out]          PADDRINFOEXW *Result,
  [in, optional] PEPROCESS OwningProcess,
  [in, optional] PETHREAD OwningThread,
  [in, out]      PIRP Irp
)
{...}

パラメーター

[in] Client

[入力]の WskProviderNpi パラメーターを介して返されたWSK_CLIENT構造体へのポインター WskCaptureProviderNPI 関数。

[in, optional] NodeName

[入力]ホスト (ノード) 名または数値ホスト アドレス文字列を表す Unicode 文字列を含む UNICODE_STRING 構造体への省略可能なポインター。 インターネット プロトコルの場合、数値ホスト アドレス文字列はドット 10 進数の IPv4 アドレスまたは IPv6 16 進数アドレスです。

[in, optional] ServiceName

[入力]サービス名またはポート番号を表す Unicode 文字列を含む UNICODE_STRING 構造体への省略可能なポインター。

[in, optional] NameSpace

[入力]クエリを実行する名前空間プロバイダーを指定する省略可能な名前空間識別子。 指定した名前空間をサポートする名前空間プロバイダーのみが正常に照会できます。

[in, optional] Provider

[入力]クエリを実行する特定の名前空間プロバイダーの GUID への省略可能なポインター。

[in, optional] Hints

[入力]呼び出し元がサポートするソケットの種類に関するヒントを提供する ADDRINFOEXW 構造体への省略可能なポインター。

ADDRINFOEXW 構造体は、Ws2def.h ヘッダーで定義されています。 これは、 と同じです。
addrinfoex 構造体。

大事な Ws2def.h ヘッダー ファイルは Wsk.h に自動的に含まれます。 Ws2def.h を直接使用しないでください。
 

[out] Result

[out]ホストに関する応答情報を表す 1 つ以上の ADDRINFOEXW 構造体のリンクされたリストを受け取る呼び出し元割り当てバッファーへのポインター。

メモ このポインターを解放するには、呼び出し元が WskFreeAddressInfo 関数を呼び出す必要があります。
 
ADDRINFOEXW 構造体は、Ws2def.h ヘッダーで定義されています。 これは addrinfoex 構造体と 同じです。
大事な Ws2def.h ヘッダー ファイルは Wsk.h に自動的に含まれます。 Ws2def.h を直接使用しないでください。
 

[in, optional] OwningProcess

[入力]関数がセキュリティ コンテキストを取得するプロセスへの省略可能なポインター。 このセキュリティ コンテキストは、関数が名前解決要求を処理するユーザー アカウント コンテキストを示します。

このパラメーターが NULL の場合、関数は最小限の特権で定義済みのローカル アカウントのコンテキストで名前解決要求を処理します。

このパラメーターが NULL ではなく、呼び出し元スレッドに対して偽装トークンが有効な場合、この関数は失敗し、STATUS_INVALID_PARAMETERを返します。

[in, optional] OwningThread

[入力]関数がセキュリティ コンテキストを取得するスレッドへの省略可能なポインター。 このパラメーターは、OwningProcessNULL 以外の場合にのみ NULL 以外にすることができます。 それ以外の場合、この関数は失敗し、STATUS_INVALID_PARAMETERを返します。

このパラメーターが NULL ではなく、呼び出し元スレッドに対して偽装トークンが有効な場合、この関数は失敗し、STATUS_INVALID_PARAMETERを返します。

[in, out] Irp

[入力/出力]要求を非同期的に完了するために使用する I/O 要求パケット (IRP) へのポインター。 要求が完了すると、 Irp ->Iostatus.Information は返された状態コードを保持します。

戻り値

WskGetAddressInfo は 、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが指定されました。
STATUS_NO_MATCH
ホスト名を解決できません。
STATUS_SUCCESS
関数は正常に終了しました。 WSK アプリケーションで IRP へのポインターを指定した場合、 Irp パラメーターを指定すると、IRP は成功状態で完了します。
STATUS_PENDING
WSK サブシステムは、すぐに関数を完了できませんでした。 WSK サブシステムは、制御操作が完了した後、IRP を完了します。 コントロール操作の状態は、IRP の IoStatus.Status フィールドに返されます。
その他の状態コード
エラーが発生しました。 IRP は失敗状態で完了します。

注釈

OwningProcess パラメーターが指すプロセス、または OwningThread プロセスが指すスレッドは、この関数のセキュリティ コンテキストを示します。 セキュリティ コンテキストによって示されるユーザー アカウントは、関数の名前解決要求のコンテキストを示します。

要件

要件
サポートされている最小のクライアント Windows 7 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header wsk.h (Wsk.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskFreeAddressInfo