windows-nt/Source/XPSP1/NT/net/tcpip/apis/iphlpapi/dll/adt.h
2020-09-26 16:20:57 +08:00

82 lines
3.4 KiB
C

//================================================================================
// Microsoft Confidential.
// Copyright (C) Microsoft 1997.
//
// Author: RameshV
//================================================================================
#ifndef ADT_H_INCLUDED
#define ADT_H_INCLUDED
//================================================================================
// Required headers
//================================================================================
#include <winbase.h> // Semaphores and wait functions
//================================================================================
// Some Data type implementations. EXPORTED
//================================================================================
typedef struct st_prodcons { // structure for producer-consumer sychro.
HANDLE ProducerSemaphore; // Semaphore for tracking producers
HANDLE ConsumerSemaphore; // Semaphore for tracking consumers
DWORD MaxProducers; // Maximum # of producers
DWORD MaxConsumers; // Maximum # of consumers
DWORD Flags; // Options -- Unused?
} PRODCONS, *PPRODCONS;
//================================================================================
// Function headers of EXPORTED functions
//================================================================================
DWORD // Win32 Errors
InitializeProducerConsumer( // Initialize the pointer
OUT PPRODCONS Synch, // The memory must be pre-allocated
IN DWORD MaxProducers, // Total # of simultaneous producers
IN DWORD MaxConsumers // Totat # of consumers
);
VOID
DestroyProducerConsumer( // Destroy and free up resources
IN PPRODCONS Synch // The producer consumer object
);
DWORD // Win32 errors
StartProducerEx( // See StartProdConsExInternal
IN PPRODCONS Synch, // Syncho. object
IN DWORD TimeOutMilliSec,// Timeout for wait in milliseconds
IN BOOL Alertable // Is the wait alertable?
);
DWORD // Win32 errors
StartConsumerEx( // See StartProdConsExInternal
IN PPRODCONS Synch, // Syncho. object
IN DWORD TimeOutMilliSec,// Timeout for wait in milliseconds
IN BOOL Alertable // Is the wait alertable?
);
DWORD // Win32 errors
StartProducer( // Wait until a producer can start
IN PPRODCONS Synch // The synch object
);
DWORD // Win32 errors
StartConsumer( // Wait until a consumer can start
IN PPRODCONS Synch // The synch object
);
DWORD // Win32 Errors
EndProducer( // See EndProdConsExInternal
IN PPRODCONS Synch // Synch object
);
DWORD // Win32 errors
EndConsumer( // See EndProdConsExInternal
IN PPRODCONS Synch // Synch object
);
//================================================================================
// End of file
//================================================================================
#endif ADT_H_INCLUDED