IN PVOID Buffer,
IN ULONG BufferLength,
IN PVOID Source,
- IN OUT PULONG SourceLength
+ IN ULONG SourceLength
)
{
- if (BufferLength >= *SourceLength) {
- RtlCopyMemory(Buffer, Source, *SourceLength);
+ if (BufferLength >= SourceLength) {
+ RtlCopyMemory(Buffer, Source, SourceLength);
return NDIS_STATUS_SUCCESS;
- } else {
- *SourceLength = BufferLength;
- RtlCopyMemory(Buffer, Source, *SourceLength);
- return NDIS_STATUS_BUFFER_TOO_SHORT;
}
+
+ RtlCopyMemory(Buffer, Source, BufferLength);
+ return NDIS_STATUS_BUFFER_TOO_SHORT;
}
static FORCEINLINE NDIS_STATUS
IN OUT PULONG SourceLength
)
{
+ *SourceLength = sizeof(ULONG);
+
if (BufferLength >= sizeof(ULONG)) {
- *(PULONG)Buffer = Source;
- *SourceLength = sizeof(ULONG);
+ *(PULONG)Buffer = (ULONG)Source;
return NDIS_STATUS_SUCCESS;
- } else {
- *SourceLength = 0;
- return NDIS_STATUS_BUFFER_TOO_SHORT;
}
+
+ return NDIS_STATUS_BUFFER_TOO_SHORT;
}
static FORCEINLINE NDIS_STATUS
IN OUT PULONG SourceLength
)
{
+ *SourceLength = sizeof(ULONGLONG);
+
if (BufferLength >= sizeof(ULONGLONG)) {
*(PULONGLONG)Buffer = Source;
- *SourceLength = sizeof(ULONGLONG);
return NDIS_STATUS_SUCCESS;
- } else if (BufferLength == sizeof(ULONG)) {
+ }
+
+ if (BufferLength >= sizeof(ULONG)) {
*(PULONG)Buffer = (ULONG)Source;
*SourceLength = sizeof(ULONG);
- return NDIS_STATUS_BUFFER_TOO_SHORT;
- } else {
- *SourceLength = 0;
- return NDIS_STATUS_BUFFER_TOO_SHORT;
+ return NDIS_STATUS_SUCCESS;
}
+
+ return NDIS_STATUS_BUFFER_TOO_SHORT;
}
NDIS_STATUS
ndisStatus = __CopyBuffer(Buffer,
BufferLength,
&Adapter->Capabilities,
- &BytesWritten);
+ BytesWritten);
break;
case OID_PNP_QUERY_POWER:
ndisStatus = __CopyBuffer(Buffer,
BufferLength,
&XennetSupportedOids[0],
- &BytesWritten);
+ BytesWritten);
break;
case OID_GEN_HARDWARE_STATUS:
ndisStatus = __CopyBuffer(Buffer,
BufferLength,
COMPANY_NAME_STR,
- &BytesWritten);
+ BytesWritten);
break;
case OID_GEN_VENDOR_DRIVER_VERSION:
ndisStatus = __CopyBuffer(Buffer,
BufferLength,
&EthernetAddress,
- &BytesWritten);
+ BytesWritten);
break;
case OID_802_3_CURRENT_ADDRESS:
ndisStatus = __CopyBuffer(Buffer,
BufferLength,
&EthernetAddress,
- &BytesWritten);
+ BytesWritten);
break;
case OID_GEN_MAXIMUM_FRAME_SIZE: