SCardControl 函式 (winscard.h)

SCardControl 函式可讓您直接控制讀取器。 在成功呼叫 SCardConnect 之後,以及在成功呼叫 SCardDisconnect 之前,您可以隨時呼叫它。 對讀取器 狀態 的影響取決於控件程序代碼。

語法

LONG SCardControl(
  [in]  SCARDHANDLE hCard,
  [in]  DWORD       dwControlCode,
  [in]  LPCVOID     lpInBuffer,
  [in]  DWORD       cbInBufferSize,
  [out] LPVOID      lpOutBuffer,
  [in]  DWORD       cbOutBufferSize,
  [out] LPDWORD     lpBytesReturned
);

參數

[in] hCard

SCardConnect 傳回的參考值。

[in] dwControlCode

作業的控制程序代碼。 這個值會識別要執行的特定作業。

[in] lpInBuffer

緩衝區的指標,其中包含執行作業所需的數據。 如果 dwControlCode 參數指定不需要輸入數據的作業,這個參數可以是 NULL

[in] cbInBufferSize

lpInBuffer 所指向之緩衝區的大小,以位元組為單位。

[out] lpOutBuffer

接收作業輸出數據的緩衝區指標。 如果 dwControlCode 參數指定不產生輸出資料的作業,這個參數可以是 NULL

[in] cbOutBufferSize

lpOutBuffer 所指向緩衝區的大小,以位元組為單位。

[out] lpBytesReturned

DWORD 的指標,該 DWORD 會接收儲存在 lpOutBuffer 所指向之緩衝區中的數據大小,以位元組為單位。

傳回值

此函式會根據它是否成功或失敗,傳回不同的值。

傳回碼 Description
「成功」
SCARD_S_SUCCESS。
失敗
錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值

備註

SCardControl 函式是直接卡片存取函式。 如需其他直接存取函式的詳細資訊,請參閱 直接卡片存取函式

範例

下列範例會發出控件程序代碼。 此範例假設 hCardHandle 是從先前呼叫 SCardConnect 收到的有效句柄,而 dwControlCode 是先前初始化為有效控件程式代碼之 DWORD 類型的變數。 此特定控制項程式代碼不需要輸入數據,而且不需要任何輸出數據。


lReturn = SCardControl( hCardHandle,
                        dwControlCode,
                        NULL,
                        0,
                        NULL,
                        0,
                        0 );
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardControl\n");

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winscard.h
程式庫 Winscard.lib
Dll Winscard.dll

另請參閱

SCardConnect

SCardDisconnect