NdisCopyFromNetBufferToNetBuffer 함수(ndis/nblapi.h)
NdisCopyFromNetBufferToNetBuffer 함수를 호출하여 원본 NET_BUFFER 구조체에서 대상 NET_BUFFER 구조로 데이터를 복사합니다.
구문
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
);
매개 변수
[in] Destination
이전에 할당된 대상 NET_BUFFER 구조체에 대한 포인터입니다.
[in] DestinationOffset
복사된 데이터 쓰기를 시작할 대상 NET_BUFFER 구조 내의 바이트 오프셋입니다. DestinationOffset에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.
[in] BytesToCopy
복사할 바이트 수입니다.
[in] Source
이전에 할당된 원본 NET_BUFFER 구조체에 대한 포인터입니다.
[in] SourceOffset
데이터 복사를 시작할 원본 NET_BUFFER 구조 내의 바이트 오프셋입니다. SourceOffset에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.
[out] BytesCopied
이 함수가 실제로 복사한 바이트 수를 반환하는 호출자 제공 변수에 대한 포인터입니다. 원본에 데이터가 부족하거나 대상이 공간이 부족한 경우 이 숫자는 BytesToCopy 값보다 작을 수 있습니다.
반환 값
NdisCopyFromNetBufferToNetBuffer는 다음 상태 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
복사 작업이 성공적으로 완료되었습니다. |
|
리소스가 부족하여 복사 작업이 실패했습니다. |
설명
NdisCopyFromNetBufferToNetBuffer의 호출자는 대상 NET_BUFFER 구조체와 원본 NET_BUFFER 구조도 할당합니다. 대상 NET_BUFFER 구조체의 MDL에는 데이터를 수신할 수 있는 충분한 공간이 있어야 합니다.
원본 NET_BUFFER 구조체에 데이터가 부족하거나 지정된 바이트 수가 복사되기 전에 대상 NET_BUFFER 구조체의 공간이 부족하면 복사 작업이 중지됩니다. 두 경우 모두 NdisCopyFromNetBufferToNetBuffer 는 원본에서 대상 NET_BUFFER 구조로 성공적으로 복사된 바이트 수를 반환합니다.
호출자는 원본 및 대상 NET_BUFFER 구조에서 CurrentMdlOffset 및 CurrentMdl 값이 올바른지 확인해야 합니다. NDIS는 대상 NET_BUFFER 멤버를 변경하지 않습니다. 호출자는 NdisCopyFromNetBufferToNetBuffer가 반환된 후 대상 NET_BUFFER DataLength, DataOffset 및 CurrentMdlOffset 값을 업데이트해야 합니다.
NDIS는 NdisCopyFromNetBufferToNetBuffer의 DestionationOffset 및 SourceOffset 매개 변수의 오프셋을 현재 데이터 오프셋의 오프셋으로 사용합니다. 예를 들어 대상 NET_BUFFER CurrentMdlOffset 값이 x이고 DestinationOffset 값이 y이면 NDIS는 CurrentMdl 값이 설명하는 메모리의 x+ y 오프셋에서 대상 NET_BUFFER 데이터를 복사합니다. 원본 NET_BUFFER CurrentMdlOffset 및 SourceOffset 값에 유사한 규칙이 적용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 유니버설 |
헤더 | ndis/nblapi.h(include ndis.h) |
라이브러리 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | Irql_NetBuffer_Function(ndis) |