共用方式為


IByteBuffer::Read 方法

[ Read 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 IStream介面提供類似的功能。

Read方法會從緩衝區物件將指定的位元組數目從緩衝區物件讀取到記憶體,從目前的搜尋指標開始。

語法

HRESULT Read(
  [out] BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbRead
);

參數

pByte [out]

指向讀取資料流程資料的緩衝區。 如果發生錯誤,此值為 Null

cb [in]

要嘗試從資料流程物件讀取的資料位元組數目。

#Read [out]

LONG變數的位址,該變數會接收從資料流程物件讀取的實際位元組數目。 您可以將這個指標設定為 Null ,以指出您對此值不感興趣。 在此情況下,這個方法不會提供讀取的實際位元組數目。

傳回值

傳回值為 HRESULT。 值S_OK表示呼叫成功。

備註

這個方法會將這個資料流程物件的位元組讀取到記憶體中。 資料流程物件必須在STGM_READ模式中開啟。 這個方法會依讀取的實際位元組數目來調整搜尋指標。

實際讀取的位元組數目也會在 azureRead 參數中傳回。

給呼叫者的注意事項

讀取的實際位元組數目可能小於發生錯誤時所要求的位元組數目,或讀取作業期間達到資料流程結尾時所要求的位元組數目。

如果讀取期間到達資料流程結尾,某些實作可能會傳回錯誤。 您必須準備好處理資料流程讀取結束時的錯誤傳回或S_OK傳回值。

範例

下列範例顯示從緩衝區讀取位元組。

BYTE     byAtr[32];
long     lBytesRead, i;
HRESULT  hr;

// pAtr is a pointer to a previously instantiated IByteBuffer.
// It was used in an earlier call by ISCard::get_Atr.
// Use IByteBuffer::Read to access the retrieved ATR bytes.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
    printf("%c", *(byAtr + i));
printf("\n");

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限傳統型應用程式]
用戶端支援結束
Windows XP
伺服器終止支援
Windows Server 2003
標頭
Scardssp.h
類型程式庫
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer定義為 E126F8FE-A7AF-11D0-B88A-00C04FD424B9