Freigeben über


IByteBuffer::Read-Methode

[Die Read-Methode ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es ist nicht für die Verwendung in Windows Server 2003 mit Service Pack 1 (SP1) und höher, Windows Vista, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar. Die IStream-Schnittstelle bietet ähnliche Funktionen.]

Die Read-Methode liest ab dem aktuellen Suchzeiger eine angegebene Anzahl von Bytes aus dem Pufferobjekt in den Arbeitsspeicher.

Syntax

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

Parameter

pByte [out]

Zeigt auf den Puffer, in den die Daten gelesen werden. Wenn ein Fehler auftritt, ist dieser Wert NULL.

cb [in]

Anzahl der Datenbytes, die versucht werden sollen, aus dem Streamobjekt zu lesen.

pcbRead [out]

Adresse einer LONG-Variablen , die die tatsächliche Anzahl von Bytes empfängt, die aus dem Streamobjekt gelesen werden. Sie können diesen Zeiger auf NULL festlegen, um anzugeben, dass Sie an diesem Wert nicht interessiert sind. In diesem Fall stellt diese Methode nicht die tatsächliche Anzahl der gelesenen Bytes bereit.

Rückgabewert

Der Rückgabewert ist ein HRESULT. Der Wert S_OK gibt an, dass der Aufruf erfolgreich war.

Bemerkungen

Diese Methode liest Bytes aus diesem Streamobjekt in den Arbeitsspeicher. Das Streamobjekt muss im STGM_READ Modus geöffnet werden. Diese Methode passt den Suchzeiger um die tatsächliche Anzahl der gelesenen Bytes an.

Die Anzahl der tatsächlich gelesenen Bytes wird auch im pcbRead-Parameter zurückgegeben.

Hinweise für Aufrufer

Die tatsächliche Anzahl der gelesenen Bytes kann kleiner sein als die Anzahl der angeforderten Bytes, wenn ein Fehler auftritt oder wenn das Ende des Datenstroms während des Lesevorgangs erreicht wird.

Einige Implementierungen geben möglicherweise einen Fehler zurück, wenn das Ende des Datenstroms während des Lesevorgangs erreicht wird. Sie müssen darauf vorbereitet sein, die Fehlerrückgabe oder S_OK Rückgabewerte am Ende der Datenstromlesevorgänge zu behandeln.

Beispiele

Das folgende Beispiel zeigt das Lesen von Bytes aus dem Puffer.

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");

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Ende des Supports (Client)
Windows XP
Ende des Supports (Server)
Windows Server 2003
Header
Scardssp.h
Typbibliothek
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer ist definiert als E126F8FE-A7AF-11D0-B88A-00C04FD424B9