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 |