宣告接聽程式配接器支援的通訊協定。
語法
HRESULT WebhostRegisterProtocol(
IN LPCWSTR ProtocolId,
IN VOID* pListenerCallbacks,
IN VOID* pContext,
OUT DWORD* pProtocolHandle
);
參數
ProtocolId
[IN]字串,包含這個接聽程式配接器支援的通訊協定。
pListenerCallbacks
[IN] VOIDWEBHOST_LISTENER_CALLBACKS 結構的指標。
pContext
[IN]接聽程式配接器將傳遞的任意 VOID 指標。
pProtocolHandle
[OUT]的指標 DWORD ,其中包含表示此通訊協定的進程唯一索引鍵。
傳回值
HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
| 值 | 定義 |
|---|---|
| S_OK | 表示作業成功。 |
| HRESULT_FROM_WIN32 ( ERROR_ALREADY_EXISTS ) | 表示此通訊協定在此程式中已註冊接聽程式配接器。 |
| E_INVALIDARG | 表示其中一個參數無效。 |
| E_OUTOFMEMORY | 表示堆積記憶體已耗盡。 |
備註
當您啟動接聽程式配接器時,必須先呼叫 WebhostRegisterProtocol 函式。 WebhostRegisterProtocol 是非同步,因此成功傳回不保證呼叫成功。 Windows Process Activation Service (WAS) 使用 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 函式通知接聽程式成功註冊。 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 會在 參數中 pListenerCallbacks 傳遞至這個呼叫。
您應該為接聽程式配接器設定逾時,以等候 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 回呼函式。 如果逾時過期,您應該停止接聽程式配接器服務,並將它標示為失敗。 從這個呼叫成功傳回表示用戶端程式庫正在等候 Windows 進程啟用服務,並盡可能連線。
您不應該將此回呼函式中的接聽程式服務狀態設定為 SERVICE_RUNNING 。 只有在初始化完成且通訊協定接聽程式通常會在 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_INITIALIZATION_COMPLETED通知) 之後接聽 (時,才應該將服務狀態設定為SERVICE_RUNNING。
每當叫用回呼函式時,參數 pContext 就會傳遞至接聽程式配接器。 實作相同回呼結構的多個通訊協定時,可以使用它。
若要讓用戶端程式庫連線到 Windows 進程啟用服務,必須符合下列條件:
<listenerAdapters>Was.config檔案中的組態區段必須宣告通訊協定和接聽程式配接器執行所在的身分識別。Windows 進程啟用服務必須執行。
接聽程式配接器服務應該註冊為相依于 Windows Process Activation Service。
規格需求
| 類型 | 描述 |
|---|---|
| Client | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10上的 IIS 10.0 |
| 伺服器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016上的 IIS 10.0 |
| 產品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
| 標頭 | Listeneradapter.h |
另請參閱
PFN_WEBHOST_LISTENER_CONFIG_MANAGER_INITIALIZATION_COMPLETED函式
接聽程式配接器匯出函式