共用方式為


IComponentAuthenticate::SACAuth 方法 (mswmdm.h)

SACAuth 方法會在元件之間建立安全的已驗證通道。

語法

HRESULT SACAuth(
  [in]  DWORD dwProtocolID,
  [in]  DWORD dwPass,
  [in]  BYTE  *pbDataIn,
  [in]  DWORD dwDataInLen,
  [out] BYTE  **ppbDataOut,
  [out] DWORD *pdwDataOutLen
);

參數

[in] dwProtocolID

包含通訊協議標識碼的 DWORD。 針對這個版本的 Windows Media 裝置管理員,請一律將此參數設定為 SAC_PROTOCOL_V1。

[in] dwPass

包含目前通訊傳遞數目的 DWORD。 傳遞包含兩個訊息,每個方向各一個。 SAC_PROTOCOL_V1是雙階段通訊協定,而傳遞編號為 0 和 1。

[in] pbDataIn

輸入數據的指標。

[in] dwDataInLen

DWORD ,其中包含 pbDataIn 指向的數據長度。

[out] ppbDataOut

指向輸出數據的指標。

[out] pdwDataOutLen

DWORD 的指標,其中包含ppbDataOut指向的數據長度。

傳回值

方法會傳回 HRESULT。 Windows Media 中的所有介面方法 裝置管理員 都可以傳回下列任何錯誤碼類別:

  • 標準 COM 錯誤碼
  • 轉換成 HRESULT 值的 Windows 錯誤碼
  • Windows Media 裝置管理員 錯誤碼
如需可能錯誤碼的廣泛清單,請參閱 錯誤碼

備註

這個方法只能由服務提供者呼叫。 它會呼叫一或多次,如通訊協定標識碼所指定。

pbDataInppbDataOut中的數據結構取決於 dwProtocolIDdwPass 的值。

範例

下列 C++ 程式代碼示範服務提供者的 SACAuth 實作。 它會在先前建立的私人 CSecureChannelServer 成員上呼叫 CSecureChannelServer::SACAuth


HRESULT CMyServiceProvider::SACAuth(
    DWORD   dwProtocolID,
    DWORD   dwPass,
    BYTE   *pbDataIn,
    DWORD   dwDataInLen,
    BYTE  **ppbDataOut,
    DWORD  *pdwDataOutLen)
{
    HRESULT hr = S_OK;

    // Verify that the global CSecureChannelServer member is valid.
    if(g_pAppSCServer == NULL)
        return E_FAIL;

    hr = g_pAppSCServer->SACAuth(
        dwProtocolID,
        dwPass,
        pbDataIn, dwDataInLen,
        ppbDataOut, pdwDataOutLen
    );
    return hr;
}

規格需求

需求
目標平台 Windows
標頭 mswmdm.h
程式庫 Mssachlp.lib

另請參閱

驗證服務提供者

CSecureChannelServer::SACAuth

IComponentAuthenticate 介面