2002-10-06 Casper Hornstrup <chorns@it.dk>
* include/ddk: New subdir. * lib/ddk: Ditto. * include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h, d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h, miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h, ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h, netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h, ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h, storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h, upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h, winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h, xfilter.h): New files. * lib/ddk/(Makefile.in, apcups.def, cfgmgr32.def, dxapi.def, hal.def, hid.def, hidparse.def, mcd.def, ndis.def, ntoskrnl.def, scsiport.def, tdi.def, usbcamd.def, usbcamd2.def, videoprt.def, win32k.def): Ditto.
This commit is contained in:
606
winsup/w32api/include/ddk/winnt4.h
Normal file
606
winsup/w32api/include/ddk/winnt4.h
Normal file
@@ -0,0 +1,606 @@
|
||||
/*
|
||||
* winnt4.h
|
||||
*
|
||||
* Definitions only used in Windows NT 4.0 and earlier versions
|
||||
*
|
||||
* This file is part of the MinGW package.
|
||||
*
|
||||
* Contributors:
|
||||
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
*
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __WINNT4_H
|
||||
#define __WINNT4_H
|
||||
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _ZONE_SEGMENT_HEADER {
|
||||
SINGLE_LIST_ENTRY SegmentList;
|
||||
PVOID Reserved;
|
||||
} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
|
||||
|
||||
typedef struct _ZONE_HEADER {
|
||||
SINGLE_LIST_ENTRY FreeList;
|
||||
SINGLE_LIST_ENTRY SegmentList;
|
||||
ULONG BlockSize;
|
||||
ULONG TotalSegmentSize;
|
||||
} ZONE_HEADER, *PZONE_HEADER;
|
||||
|
||||
static inline PVOID
|
||||
ExAllocateFromZone(
|
||||
IN PZONE_HEADER Zone)
|
||||
{
|
||||
if (Zone->FreeList.Next)
|
||||
Zone->FreeList.Next = Zone->FreeList.Next->Next;
|
||||
return (PVOID) Zone->FreeList.Next;
|
||||
}
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
ExExtendZone(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN PVOID Segment,
|
||||
IN ULONG SegmentSize);
|
||||
|
||||
static inline PVOID
|
||||
ExFreeToZone(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN PVOID Block)
|
||||
{
|
||||
((PSINGLE_LIST_ENTRY) Block)->Next = Zone->FreeList.Next;
|
||||
Zone->FreeList.Next = ((PSINGLE_LIST_ENTRY) Block);
|
||||
return ((PSINGLE_LIST_ENTRY) Block)->Next;
|
||||
}
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
ExInitializeZone(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN ULONG BlockSize,
|
||||
IN PVOID InitialSegment,
|
||||
IN ULONG InitialSegmentSize);
|
||||
|
||||
/*
|
||||
* PVOID
|
||||
* ExInterlockedAllocateFromZone(
|
||||
* IN PZONE_HEADER Zone,
|
||||
* IN PKSPIN_LOCK Lock)
|
||||
*/
|
||||
#define ExInterlockedAllocateFromZone(Zone, \
|
||||
Lock) \
|
||||
((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock))
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
ExInterlockedExtendZone(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN PVOID Segment,
|
||||
IN ULONG SegmentSize,
|
||||
IN PKSPIN_LOCK Lock);
|
||||
|
||||
NTOSAPI
|
||||
PVOID
|
||||
DDKAPI
|
||||
ExInterlockedFreeToZone(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN PVOID Block,
|
||||
IN PKSPIN_LOCK Lock);
|
||||
|
||||
/*
|
||||
* VOID
|
||||
* ExInitializeWorkItem(
|
||||
* IN PWORK_QUEUE_ITEM Item,
|
||||
* IN PWORKER_THREAD_ROUTINE Routine,
|
||||
* IN PVOID Context)
|
||||
*/
|
||||
#define ExInitializeWorkItem(Item, \
|
||||
Routine, \
|
||||
Context) \
|
||||
{ \
|
||||
(Item)->WorkerRoutine = Routine; \
|
||||
(Item)->Parameter = Context; \
|
||||
(Item)->List.Flink = NULL; \
|
||||
}
|
||||
|
||||
/*
|
||||
* BOOLEAN
|
||||
* ExIsFullZone(
|
||||
* IN PZONE_HEADER Zone)
|
||||
*/
|
||||
#define ExIsFullZone(Zone) \
|
||||
((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL)
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
ExQueueWorkItem(
|
||||
IN PWORK_QUEUE_ITEM WorkItem,
|
||||
IN WORK_QUEUE_TYPE QueueType);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
ExIsObjectInFirstZoneSegment(
|
||||
IN PZONE_HEADER Zone,
|
||||
IN PVOID Object);
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
ExReleaseResource(
|
||||
IN PERESOURCE Resource);
|
||||
|
||||
#define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite
|
||||
#define ExAcquireResourceShared ExAcquireResourceSharedLite
|
||||
#define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite
|
||||
#define ExDeleteResource ExDeleteResourceLite
|
||||
#define ExInitializeResource ExInitializeResourceLite
|
||||
#define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite
|
||||
#define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite
|
||||
#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
|
||||
#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
|
||||
|
||||
NTOSAPI
|
||||
INTERLOCKED_RESULT
|
||||
DDKAPI
|
||||
ExInterlockedDecrementLong(
|
||||
IN PLONG Addend,
|
||||
IN PKSPIN_LOCK Lock);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
ExInterlockedExchangeUlong(
|
||||
IN PULONG Target,
|
||||
IN ULONG Value,
|
||||
IN PKSPIN_LOCK Lock);
|
||||
|
||||
NTOSAPI
|
||||
INTERLOCKED_RESULT
|
||||
DDKAPI
|
||||
ExInterlockedIncrementLong(
|
||||
IN PLONG Addend,
|
||||
IN PKSPIN_LOCK Lock);
|
||||
|
||||
NTOSAPI
|
||||
PVOID
|
||||
DDKAPI
|
||||
HalAllocateCommonBuffer(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN ULONG Length,
|
||||
OUT PPHYSICAL_ADDRESS LogicalAddress,
|
||||
IN BOOLEAN CacheEnabled);
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
HalAssignSlotResources(
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN PUNICODE_STRING DriverClassName,
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN INTERFACE_TYPE BusType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN OUT PCM_RESOURCE_LIST *AllocatedResources);
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
HalFreeCommonBuffer(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN ULONG Length,
|
||||
IN PHYSICAL_ADDRESS LogicalAddress,
|
||||
IN PVOID VirtualAddress,
|
||||
IN BOOLEAN CacheEnabled);
|
||||
|
||||
NTOSAPI
|
||||
PADAPTER_OBJECT
|
||||
DDKAPI
|
||||
HalGetAdapter(
|
||||
IN PDEVICE_DESCRIPTION DeviceDescription,
|
||||
IN OUT PULONG NumberOfMapRegisters);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalGetBusData(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Length);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalGetBusDataByOffset(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalGetDmaAlignmentRequirement(
|
||||
VOID);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalGetInterruptVector(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG BusInterruptLevel,
|
||||
IN ULONG BusInterruptVector,
|
||||
OUT PKIRQL Irql,
|
||||
OUT PKAFFINITY Affinity);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalReadDmaCounter(
|
||||
IN PADAPTER_OBJECT AdapterObject);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalSetBusData(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Length);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
HalSetBusDataByOffset(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
HalTranslateBusAddress(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber,
|
||||
IN PHYSICAL_ADDRESS BusAddress,
|
||||
IN OUT PULONG AddressSpace,
|
||||
OUT PPHYSICAL_ADDRESS TranslatedAddress);
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
IoAllocateAdapterChannel(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG NumberOfMapRegisters,
|
||||
IN PDRIVER_CONTROL ExecutionRoutine,
|
||||
IN PVOID Context);
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
IoAssignResources(
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN PUNICODE_STRING DriverClassName OPTIONAL,
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT DeviceObject OPTIONAL,
|
||||
IN PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
|
||||
IN OUT PCM_RESOURCE_LIST *AllocatedResources);
|
||||
|
||||
NTOSAPI
|
||||
NTSTATUS
|
||||
DDKAPI
|
||||
IoAttachDeviceByPointer(
|
||||
IN PDEVICE_OBJECT SourceDevice,
|
||||
IN PDEVICE_OBJECT TargetDevice);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
IoFlushAdapterBuffers(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PMDL Mdl,
|
||||
IN PVOID MapRegisterBase,
|
||||
IN PVOID CurrentVa,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN WriteToDevice);
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
IoFreeAdapterChannel(
|
||||
IN PADAPTER_OBJECT AdapterObject);
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
IoFreeMapRegisters(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PVOID MapRegisterBase,
|
||||
IN ULONG NumberOfMapRegisters);
|
||||
|
||||
NTOSAPI
|
||||
PHYSICAL_ADDRESS
|
||||
DDKAPI
|
||||
IoMapTransfer(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PMDL Mdl,
|
||||
IN PVOID MapRegisterBase,
|
||||
IN PVOID CurrentVa,
|
||||
IN OUT PULONG Length,
|
||||
IN BOOLEAN WriteToDevice);
|
||||
|
||||
NTOSAPI
|
||||
PMDL
|
||||
DDKAPI
|
||||
MmCreateMdl(
|
||||
IN PMDL MemoryDescriptorList OPTIONAL,
|
||||
IN PVOID Base,
|
||||
IN SIZE_T Length);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
MmIsNonPagedSystemAddressValid(
|
||||
IN PVOID VirtualAddress);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlEnlargedIntegerMultiply(
|
||||
IN LONG Multiplicand,
|
||||
IN LONG Multiplier);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKAPI
|
||||
RtlEnlargedUnsignedDivide(
|
||||
IN ULARGE_INTEGER Dividend,
|
||||
IN ULONG Divisor,
|
||||
IN OUT PULONG Remainder);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlEnlargedUnsignedMultiply(
|
||||
IN ULONG Multiplicand,
|
||||
IN ULONG Multiplier);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlExtendedIntegerMultiply(
|
||||
IN LARGE_INTEGER Multiplicand,
|
||||
IN LONG Multiplier);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlExtendedLargeIntegerDivide(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN ULONG Divisor,
|
||||
IN OUT PULONG Remainder);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlExtendedMagicDivide(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN LARGE_INTEGER MagicDivisor,
|
||||
IN CCHAR ShiftCount);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerAdd(
|
||||
IN LARGE_INTEGER Addend1,
|
||||
IN LARGE_INTEGER Addend2);
|
||||
|
||||
NTOSAPI
|
||||
VOID
|
||||
DDKAPI
|
||||
RtlLargeIntegerAnd(
|
||||
IN OUT LARGE_INTEGER Result,
|
||||
IN LARGE_INTEGER Source,
|
||||
IN LARGE_INTEGER Mask);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerArithmeticShift(
|
||||
IN LARGE_INTEGER LargeInteger,
|
||||
IN CCHAR ShiftCount);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerDivide(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN LARGE_INTEGER Divisor,
|
||||
IN OUT PLARGE_INTEGER Remainder);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerEqualTo(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerEqualToZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerGreaterOrEqualToZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerGreaterThan(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerGreaterThanOrEqualTo(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerGreaterThanZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerLessOrEqualToZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerLessThan(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerLessThanOrEqualTo(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerLessThanZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerNegate(
|
||||
IN LARGE_INTEGER Subtrahend);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerNotEqualTo(
|
||||
IN LARGE_INTEGER Operand1,
|
||||
IN LARGE_INTEGER Operand2);
|
||||
|
||||
NTOSAPI
|
||||
BOOLEAN
|
||||
DDKAPI
|
||||
RtlLargeIntegerNotEqualToZero(
|
||||
IN LARGE_INTEGER Operand);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerShiftLeft(
|
||||
IN LARGE_INTEGER LargeInteger,
|
||||
IN CCHAR ShiftCount);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerShiftRight(
|
||||
IN LARGE_INTEGER LargeInteger,
|
||||
IN CCHAR ShiftCount);
|
||||
|
||||
NTOSAPI
|
||||
LARGE_INTEGER
|
||||
DDKAPI
|
||||
RtlLargeIntegerSubtract(
|
||||
IN LARGE_INTEGER Minuend,
|
||||
IN LARGE_INTEGER Subtrahend);
|
||||
|
||||
|
||||
/*
|
||||
* ULONG
|
||||
* COMPUTE_PAGES_SPANNED(
|
||||
* IN PVOID Va,
|
||||
* IN ULONG Size)
|
||||
*/
|
||||
#define COMPUTE_PAGES_SPANNED(Va, \
|
||||
Size) \
|
||||
(ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va, Size))
|
||||
|
||||
|
||||
/*
|
||||
** Architecture specific structures
|
||||
*/
|
||||
|
||||
#ifdef _X86_
|
||||
|
||||
NTOSAPI
|
||||
INTERLOCKED_RESULT
|
||||
DDKFASTAPI
|
||||
Exfi386InterlockedIncrementLong(
|
||||
IN PLONG Addend);
|
||||
|
||||
NTOSAPI
|
||||
INTERLOCKED_RESULT
|
||||
DDKFASTAPI
|
||||
Exfi386InterlockedDecrementLong(
|
||||
IN PLONG Addend);
|
||||
|
||||
NTOSAPI
|
||||
ULONG
|
||||
DDKFASTAPI
|
||||
Exfi386InterlockedExchangeUlong(
|
||||
IN PULONG Target,
|
||||
IN ULONG Value);
|
||||
|
||||
#define ExInterlockedIncrementLong(Addend,Lock) Exfi386InterlockedIncrementLong(Addend)
|
||||
#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
|
||||
#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
|
||||
|
||||
#endif /* _X86_ */
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __WINNT4_H */
|
Reference in New Issue
Block a user