Funzione NdisCopyFromNetBufferToNetBuffer (ndis/nblapi.h)
Chiamare la funzione NdisCopyFromNetBufferToNetBuffer per copiare i dati da una struttura di NET_BUFFER di origine a una struttura NET_BUFFER di destinazione.
Sintassi
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisCopyFromNetBufferToNetBuffer(
[in] NET_BUFFER *Destination,
[in] ULONG DestinationOffset,
[in] ULONG BytesToCopy,
[in] NET_BUFFER const *Source,
[in] ULONG SourceOffset,
[out] ULONG *BytesCopied
);
Parametri
[in] Destination
Puntatore a una struttura NET_BUFFER di destinazione allocata in precedenza.
[in] DestinationOffset
Offset di byte all'interno della struttura NET_BUFFER di destinazione in corrispondenza del quale iniziare a scrivere i dati copiati. Per altre informazioni su DestinationOffset, vedere la sezione Osservazioni seguente.
[in] BytesToCopy
Il numero di byte da copiare.
[in] Source
Puntatore a una struttura di origine NET_BUFFER allocata in precedenza.
[in] SourceOffset
Offset di byte all'interno della struttura NET_BUFFER di origine in corrispondenza del quale iniziare a copiare i dati. Per altre informazioni su SourceOffset, vedere la sezione Osservazioni seguente.
[out] BytesCopied
Puntatore alla variabile fornita dal chiamante in cui questa funzione restituisce il numero di byte effettivamente copiati. Questo numero può essere minore del valore di BytesToCopy se l'origine esaurisce i dati o la destinazione esaurisce lo spazio.
Valore restituito
NdisCopyFromNetBufferToNetBuffer restituisce uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
Operazione di copia completata. |
|
L'operazione di copia non è riuscita a causa di risorse insufficienti. |
Commenti
Il chiamante di NdisCopyFromNetBufferToNetBuffer alloca la struttura NET_BUFFER di destinazione e possibilmente anche la struttura di NET_BUFFER di origine. Gli ELENCHI DI dati della struttura NET_BUFFER di destinazione devono avere spazio sufficiente per ricevere i dati.
Se la struttura di NET_BUFFER di origine esaurisce i dati o la struttura di destinazione NET_BUFFER esaurisce lo spazio prima della copia del numero specificato di byte, l'operazione di copia viene arrestata. In entrambi i casi , NdisCopyFromNetBufferToNetBuffer restituisce il numero di byte copiati correttamente dall'origine alla struttura NET_BUFFER di destinazione.
Il chiamante deve assicurarsi che i valori CurrentMdlOffset e CurrentMdl siano corretti nelle strutture di origine e destinazione NET_BUFFER . NDIS non modifica i membri nel NET_BUFFER di destinazione. Il chiamante deve aggiornare i valori DataLength, DataOffset e CurrentMdlOffset nella destinazione NET_BUFFER dopo la restituzione di NdisCopyFromNetBufferToNetBuffer .
NDIS usa gli offset nei parametri DestionationOffset e SourceOffset di NdisCopyFromNetBufferToNetBuffer come offset rispetto all'offset dei dati corrente. Ad esempio, se il valore CurrentMdlOffset nel NET_BUFFER di destinazione è x e il valore DestinationOffset è y, NDIS copia i dati nel NET_BUFFER di destinazione in corrispondenza di un offset x+ y nella memoria descritta dal valore CurrentMdl . Le regole simili si applicano all'oggetto CurrentMdlOffset nel NET_BUFFER di origine e al valore SourceOffset .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ndis/nblapi.h (include ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | Irql_NetBuffer_Function(ndis) |