*/
#include <ndissys.h>
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisReinitializePacket(
(Packet)->Private.ValidCounts = FALSE;
}
+
+/*
+ * @unimplemented
+ */
VOID
EXPORT
NdisAcquireReadWriteLock(
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisAcquireSpinLock(
* SpinLock = Pointer to the initialized NDIS spin lock to be acquired
*/
{
- UNIMPLEMENTED
+ KeAcquireSpinLock(&SpinLock->SpinLock, &SpinLock->OldIrql);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisAllocateSpinLock(
* SpinLock = Pointer to an NDIS spin lock structure
*/
{
- UNIMPLEMENTED
+ KeInitializeSpinLock(&SpinLock->SpinLock);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisDprAcquireSpinLock(
* SpinLock = Pointer to the initialized NDIS spin lock to be acquired
*/
{
- UNIMPLEMENTED
+ KeAcquireSpinLockAtDpcLevel(&SpinLock->SpinLock);
+ SpinLock->OldIrql = DISPATCH_LEVEL;
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisDprReleaseSpinLock(
* SpinLock = Pointer to the acquired NDIS spin lock to be released
*/
{
- UNIMPLEMENTED
+ KeReleaseSpinLockFromDpcLevel(&SpinLock->SpinLock);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisFreeSpinLock(
* SpinLock = Pointer to an initialized NDIS spin lock
*/
{
- UNIMPLEMENTED
+ /* Nothing to do here! */
}
+/*
+ * @unimplemented
+ */
VOID
EXPORT
NdisGetCurrentProcessorCpuUsage(
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisInitializeEvent(
* Event = Pointer to an NDIS event structure to be initialized
*/
{
- UNIMPLEMENTED
+ KeInitializeEvent(&Event->Event, NotificationEvent, FALSE);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisReleaseSpinLock(
* SpinLock = Pointer to the acquired NDIS spin lock to be released
*/
{
- UNIMPLEMENTED
+ KeReleaseSpinLock(&SpinLock->SpinLock, SpinLock->OldIrql);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisResetEvent(
* Event = Pointer to the initialized event object to be reset
*/
{
- UNIMPLEMENTED
+ KeResetEvent(&Event->Event);
}
+/*
+ * @implemented
+ */
VOID
EXPORT
NdisSetEvent(
* Event = Pointer to the initialized event object to be set
*/
{
- UNIMPLEMENTED
+ KeSetEvent(&Event->Event, IO_NO_INCREMENT, FALSE);
}
+/*
+ * @implemented
+ */
BOOLEAN
EXPORT
NdisWaitEvent(
* TRUE if the event is in the signaled state
*/
{
- UNIMPLEMENTED
+ LARGE_INTEGER Timeout;
+ NTSTATUS Status;
+
+ Timeout.QuadPart = MsToWait * -10000LL;
+
+ Status = KeWaitForSingleObject(&Event->Event,
+ Executive,
+ KernelMode,
+ TRUE,
+ &Timeout);
- return FALSE;
+ return (Status == STATUS_SUCCESS);
}
/* EOF */