Funzione HttpReadFragmentFromCache (http.h)
La funzione HttpReadFragmentFromCache recupera un frammento di risposta con un nome specificato dalla cache dell'API del server HTTP.
Sintassi
HTTPAPI_LINKAGE ULONG HttpReadFragmentFromCache(
[in] HANDLE RequestQueueHandle,
[in] PCWSTR UrlPrefix,
[in] PHTTP_BYTE_RANGE ByteRange,
[out] PVOID Buffer,
[in] ULONG BufferLength,
[out] PULONG BytesRead,
[in] LPOVERLAPPED Overlapped
);
Parametri
[in] RequestQueueHandle
Gestire la coda di richieste a cui è associato il frammento di risposta specificato. Viene creata una coda di richieste e il relativo handle restituito da una chiamata alla funzione HttpCreateRequestQueue .
Windows Server 2003 con SP1 e Windows XP con SP2: L'handle per la coda di richieste viene creato dalla funzione HttpCreateHttpHandle .
[in] UrlPrefix
Puntatore a una stringa UrlPrefix contenente il nome del frammento da recuperare. Deve corrispondere a una stringa UrlPrefix usata in una precedente chiamata riuscita a HttpAddFragmentToCache.
[in] ByteRange
Puntatore facoltativo a una struttura HTTP_BYTE_RANGE che indica un offset iniziale nel frammento e nel conteggio dei byte specificato da restituire. NULL se non viene utilizzato, nel qual caso viene restituito l'intero frammento.
[out] Buffer
Puntatore a un buffer in cui la funzione copia il frammento richiesto.
[in] BufferLength
Dimensioni, in byte, del buffer pBuffer .
[out] BytesRead
Puntatore facoltativo a una variabile che riceve il numero di byte da scrivere nel buffer di output. Se BufferLength è minore di questo numero, la chiamata ha esito negativo con una restituzione di ERROR_INSUFFICIENT_BUFFER e il valore a cui punta pBytesRead può essere utilizzato per determinare la lunghezza minima del buffer necessaria per il completamento della chiamata.
Quando si effettua una chiamata asincrona tramite pOverlapped, impostare pBytesRead su NULL. In caso contrario, quando pOverlapped è impostato su NULL, pBytesRead deve contenere un indirizzo di memoria valido e non essere impostato su NULL.
[in] Overlapped
Per le chiamate asincrone, impostare pOverlapped in modo che punti a una struttura OVERLAPPED o per le chiamate sincrone, impostarla su NULL.
Una chiamata sincrona si blocca fino al completamento dell'operazione di cache, mentre una chiamata asincrona restituisce immediatamente ERROR_IO_PENDING e l'applicazione chiamante usa quindi le porte di completamento GetOverlappedResult o I/O per determinare quando l'operazione viene completata. Per altre informazioni sull'uso di strutture OVERLAPPED per la sincronizzazione, vedere Sincronizzazione e input e output sovrapposti.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene NO_ERROR.
Se la funzione viene usata in modo asincrono, un valore restituito di ERROR_IO_PENDING indica che la richiesta di cache viene accodata e viene completata in un secondo momento tramite normali meccanismi di completamento di I/O sovrapposti.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.
Valore | Significato |
---|---|
|
Uno o più parametri forniti sono in formato inutilizzabile. |
|
Il buffer a cui punta pBuffer è troppo piccolo per ricevere tutti i dati richiesti; le dimensioni del buffer necessarie sono indicate da pBytesRead a meno che non fosse NULL o che la chiamata fosse asincrona. Nel caso di una chiamata asincrona, il valore a cui punta il parametro lpNumberOfBytesTransferred della funzione GetOverLappedResult viene impostato sulla dimensione del buffer richiesta. |
|
Codice di errore di sistema definito in WinError.h. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista, Windows XP con SP2 [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | http.h |
Libreria | Httpapi.lib |
DLL | Httpapi.dll |