共用方式為


NPI_CLIENT_ATTACH_PROVIDER_FN回呼函式 (netioddk.h)

用戶端模組的 ClientAttachProvider 回呼函式會將用戶端模組附加至提供者模組。

語法

NPI_CLIENT_ATTACH_PROVIDER_FN NpiClientAttachProviderFn;

NTSTATUS NpiClientAttachProviderFn(
  [in] HANDLE NmrBindingHandle,
  [in] PVOID ClientContext,
  [in] PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
)
{...}

參數

[in] NmrBindingHandle

NMR 用來表示用戶端模組與提供者模組之間的系結的句柄。

[in] ClientContext

用戶端模組註冊內容的指標。 用戶端模組會在呼叫 NmrRegisterClient 函式以向NMR註冊本身時,將此指標傳遞至NMR。

[in] ProviderRegistrationInstance

的指標 NPI_REGISTRATION_INSTANCE 結構。 這個結構包含提供者模組的註冊數據。

傳回值

用戶端模組的 ClientAttachProvider 回呼 函式會傳回下列其中一個 NTSTATUS 代碼:

傳回碼 Description
STATUS_SUCCESS
用戶端模組和提供者模組已成功連結至彼此。
STATUS_NOINTERFACE
用戶端模組未附加至提供者模組,或提供者模組未附加至用戶端模組。
其他狀態代碼
發生錯誤。

備註

在用戶端模組向NMR註冊之後,NMR會呼叫用戶端模組的 ClientAttachProvider 回呼函式,一次針對註冊為用戶端模組註冊為客戶端模組之相同 NPI 的提供者。

每當新的網路模組註冊為用戶端模組已註冊為用戶端模組的相同 NPI 提供者時,NMR 也會呼叫用戶端模組的 ClientAttachProvider 回呼函式。

用戶端模組可以檢查提供者模組的註冊數據。 此數據位於 ProviderRegistrationInstance 參數所指向的結構中。 用戶端模組會使用此資料來判斷它是否會附加至提供者模組:

  • 如果用戶端模組判斷它會附加至提供者模組, 則 ClientAttachProvider 回呼函式會呼叫 NmrClientAttachProvider 函式以繼續附件程式。 在此情況下, ClientAttachProvider 回呼 函式必須傳回呼叫所傳回的狀態代碼 NmrClientAttachProvider 函式。
  • 如果用戶端模組判斷它不會附加至提供者模組, 則 ClientAttachProvider 回呼函式必須傳回STATUS_NOINTERFACE。
如果客戶端模組成功附加至提供者模組,則必須儲存 NmrBindingHandle 參數中提供的句柄。 用戶端模組會將這個句柄當做參數傳遞至 NmrClientDetachProviderComplete 函式 與提供者模組中斷連結時。

NMR 會在 IRQL = PASSIVE_LEVEL呼叫用戶端模組的 ClientAttachProvider 回呼函式。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 Windows
標頭 netioddk.h (包含 Wsk.h)
IRQL PASSIVE_LEVEL

另請參閱

ClientDetachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrRegisterClient