mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- Implement NdisCopyBuffer and NdisGetCurrentProcessorCpuUsage
- Patch by Dmitry Chapyshev svn path=/trunk/; revision=40777
This commit is contained in:
parent
1d7714cac8
commit
d3452a30c0
4 changed files with 65 additions and 46 deletions
|
@ -511,10 +511,15 @@ typedef struct _NDIS40_MINIPORT_CHARACTERISTICS {
|
|||
VOID
|
||||
NTAPI
|
||||
ExGetCurrentProcessorCounts(
|
||||
PULONG ThreadKernelTime,
|
||||
PULONG ThreadKernelTime,
|
||||
PULONG TotalCpuTime,
|
||||
PULONG ProcessorNumber);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
ExGetCurrentProcessorCpuUsage(
|
||||
PULONG CpuUsage);
|
||||
|
||||
#endif /* __NDISSYS_H */
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -551,48 +551,3 @@ NdisMDeregisterIoPortRange(
|
|||
{
|
||||
UNIMPLEMENTED
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID
|
||||
EXPORT
|
||||
NdisCopyBuffer(
|
||||
OUT PNDIS_STATUS Status,
|
||||
OUT PNDIS_BUFFER *Buffer,
|
||||
IN NDIS_HANDLE PoolHandle,
|
||||
IN PVOID MemoryDescriptor,
|
||||
IN UINT Offset,
|
||||
IN UINT Length)
|
||||
/*
|
||||
* FUNCTION: Returns a new buffer descriptor for a (partial) buffer
|
||||
* ARGUMENTS:
|
||||
* Status = Address of a buffer to place status of operation
|
||||
* Buffer = Address of a buffer to place new buffer descriptor
|
||||
* PoolHandle = Handle returned by NdisAllocateBufferPool
|
||||
* MemoryDescriptor = Pointer to a memory descriptor (possibly NDIS_BUFFER)
|
||||
* Offset = Offset in buffer to start copying
|
||||
* Length = Number of bytes to copy
|
||||
*/
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
*Status = NDIS_STATUS_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID
|
||||
EXPORT
|
||||
NdisGetCurrentProcessorCpuUsage(
|
||||
PULONG pCpuUsage)
|
||||
/*
|
||||
* FUNCTION: Returns how busy the current processor is as a percentage
|
||||
* ARGUMENTS:
|
||||
* pCpuUsage = Pointer to a buffer to place CPU usage
|
||||
*/
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
}
|
||||
|
|
|
@ -1111,4 +1111,47 @@ NdisUnchainBufferAtFront(
|
|||
*Buffer = NdisBuffer;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
EXPORT
|
||||
NdisCopyBuffer(
|
||||
OUT PNDIS_STATUS Status,
|
||||
OUT PNDIS_BUFFER *Buffer,
|
||||
IN NDIS_HANDLE PoolHandle,
|
||||
IN PVOID MemoryDescriptor,
|
||||
IN UINT Offset,
|
||||
IN UINT Length)
|
||||
/*
|
||||
* FUNCTION: Returns a new buffer descriptor for a (partial) buffer
|
||||
* ARGUMENTS:
|
||||
* Status = Address of a buffer to place status of operation
|
||||
* Buffer = Address of a buffer to place new buffer descriptor
|
||||
* PoolHandle = Handle returned by NdisAllocateBufferPool
|
||||
* MemoryDescriptor = Pointer to a memory descriptor (possibly NDIS_BUFFER)
|
||||
* Offset = Offset in buffer to start copying
|
||||
* Length = Number of bytes to copy
|
||||
*/
|
||||
{
|
||||
PVOID CurrentVa = (PUCHAR)(MmGetMdlVirtualAddress((PNDIS_BUFFER)MemoryDescriptor)) + Offset;
|
||||
|
||||
NDIS_DbgPrint(MAX_TRACE, ("Called\n"));
|
||||
|
||||
*Buffer = IoAllocateMdl(CurrentVa, Length, FALSE, FALSE, NULL);
|
||||
if (!*Buffer)
|
||||
{
|
||||
*Status = NDIS_STATUS_FAILURE;
|
||||
return;
|
||||
}
|
||||
|
||||
IoBuildPartialMdl((PNDIS_BUFFER)MemoryDescriptor,
|
||||
*Buffer,
|
||||
CurrentVa,
|
||||
Length);
|
||||
|
||||
(*Buffer)->Next = NULL;
|
||||
*Status = NDIS_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -402,4 +402,20 @@ NdisScheduleWorkItem(
|
|||
return NDIS_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
EXPORT
|
||||
NdisGetCurrentProcessorCpuUsage(
|
||||
PULONG pCpuUsage)
|
||||
/*
|
||||
* FUNCTION: Returns how busy the current processor is as a percentage
|
||||
* ARGUMENTS:
|
||||
* pCpuUsage = Pointer to a buffer to place CPU usage
|
||||
*/
|
||||
{
|
||||
ExGetCurrentProcessorCpuUsage(pCpuUsage);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue