RasSecurityDialogReceive 函式 (rasshost.h)
RasSecurityDialogReceive函式會啟動非同步作業,以接收遠端使用者的對安全性挑戰的回應。 回應是使用者在遠端電腦上的終端機視窗中輸入的輸入。 協力廠商 RAS 安全性 DLL 會呼叫此函式作為遠端使用者的驗證的一部分。
若要呼叫此函式,請先呼叫 LoadLibrary 函式以載入 Rasman.dll。 然後呼叫 GetProcAddress 函式,以取得 DLL 的 RasSecurityDialogReceive 進入點。
語法
DWORD RasSecurityDialogReceive(
[in] HPORT hPort,
[in] PBYTE pBuffer,
[in] PWORD pBufferLength,
[in] DWORD Timeout,
[in] HANDLE hEvent
);
參數
[in] hPort
指定 RAS 伺服器在此驗證交易的 RasSecurityDialogBegin 呼叫中傳遞至安全性 DLL 的埠控制碼。
[in] pBuffer
在 RasSecurityDialogBegin 呼叫中傳遞至安全性 DLL 之接收緩衝區的指標。 當非同步接收作業成功完成時,此緩衝區會指定來自遠端使用者的回應。
[in] pBufferLength
WORD變數的指標。 此變數必須指定 pBuffer 緩衝區的大小,以位元組為單位。 當接收作業完成時,變數會指出 pBuffer 緩衝區中傳回的位元組數目。
[in] Timeout
指定逾時期間,以秒為單位,之後 RAS 伺服器會將 hEvent 事件物件設定為訊號狀態。
如果此值為零,則沒有逾時期間;也就是說,RAS 伺服器不會在接收作業完成之前發出事件物件的訊號。
[in] hEvent
指定 CreateEvent 函式所建立之事件物件的控制碼。 RAS 伺服器會將事件物件設定為接收作業完成或逾時期間已耗用的訊號狀態。
傳回值
如果函式成功,傳回值為 PENDING (定義于 Raserror.h) 。 這表示接收作業正在進行中。
如果發生錯誤,傳回值就是 Raserror.h 或 Winerror.h 中定義的其中一個錯誤碼。 GetLastError 不提供延伸的錯誤資訊。
備註
呼叫 RasSecurityDialogSend 函式以傳送安全性挑戰給遠端使用者之後,安全性 DLL 必須呼叫 RasSecurityDialogReceive 函式,以取得使用者的回應。
RasSecurityDialogReceive函式是非同步。 當函式傳回時,安全性 DLL 必須使用其中一個等候函式,例如 WaitForSingleObject,才能等候 hEvent 事件物件發出訊號。 RAS 伺服器會在接收作業完成或逾時間隔已經過時,發出事件物件的訊號。 如果接收作業成功, pBuffer 緩衝區會包含來自遠端使用者的回應,而 pBufferLength 參數會指出收到的位元組數目。 如果遠端使用者傳送的位元組數目超過緩衝區大小,RAS 伺服器會緩衝處理多餘的位元組,並在下一個 RasSecurityDialogReceive 呼叫中傳回這些位元組。
使用 Timeout 參數來指定逾時間隔。 如果逾時經過,RAS 伺服器會發出事件物件的訊號,而 pBufferLength 參數表示已傳輸零個位元組。 或者,將 Timeout 設定為零,並在用來等候事件物件的 wait 函式中指定逾時間隔。
當安全性 DLL 驗證遠端使用者時,遠端電腦上的連線作業會進入RASCS_Interactive暫停狀態。 RasSecurityDialogSend所傳送的訊息會顯示為遠端電腦上的終端機視窗中的輸出。 RasSecurityDialogReceive收到的回應是遠端使用者在終端機視窗中輸入的輸入。 RASCS_Interactive值定義于 RASCONNSTATE 列舉中。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rasshost.h |
Dll | Rasman.dll |