⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winnt4.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * winnt4.h * * Definitions only used in Windows NT 4.0 and earlier versions * * This file is part of the w32api 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 * DISCLAIMED. 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 __cplusplusextern "C" {#endiftypedef 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 PVOIDExAllocateFromZone(  /*IN*/ PZONE_HEADER  Zone){  if (Zone->FreeList.Next)    Zone->FreeList.Next = Zone->FreeList.Next->Next;  return (PVOID) Zone->FreeList.Next;}NTOSAPINTSTATUSDDKAPIExExtendZone(  /*IN*/ PZONE_HEADER  Zone,  /*IN*/ PVOID  Segment,  /*IN*/ ULONG  SegmentSize);static __inline PVOIDExFreeToZone(  /*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;}NTOSAPINTSTATUSDDKAPIExInitializeZone(  /*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))NTOSAPINTSTATUSDDKAPIExInterlockedExtendZone(  /*IN*/ PZONE_HEADER  Zone,  /*IN*/ PVOID  Segment,  /*IN*/ ULONG  SegmentSize,  /*IN*/ PKSPIN_LOCK  Lock);NTOSAPIPVOIDDDKAPIExInterlockedFreeToZone(  /*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)NTOSAPIVOIDDDKAPIExQueueWorkItem(  /*IN*/ PWORK_QUEUE_ITEM  WorkItem,  /*IN*/ WORK_QUEUE_TYPE  QueueType);NTOSAPIBOOLEANDDKAPIExIsObjectInFirstZoneSegment(  /*IN*/ PZONE_HEADER  Zone,  /*IN*/ PVOID  Object);NTOSAPIVOIDDDKAPIExReleaseResource(  /*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 ExReleaseResourceForThreadLiteNTOSAPIINTERLOCKED_RESULTDDKAPIExInterlockedDecrementLong(  /*IN*/ PLONG  Addend,  /*IN*/ PKSPIN_LOCK  Lock);NTOSAPIULONGDDKAPIExInterlockedExchangeUlong(  /*IN*/ PULONG  Target,  /*IN*/ ULONG  Value,  /*IN*/ PKSPIN_LOCK  Lock);NTOSAPIINTERLOCKED_RESULTDDKAPIExInterlockedIncrementLong(  /*IN*/ PLONG  Addend,  /*IN*/ PKSPIN_LOCK  Lock);NTOSAPIPVOIDDDKAPIHalAllocateCommonBuffer(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ ULONG  Length,  /*OUT*/ PPHYSICAL_ADDRESS  LogicalAddress,  /*IN*/ BOOLEAN  CacheEnabled);NTOSAPINTSTATUSDDKAPIHalAssignSlotResources(  /*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);NTOSAPIVOIDDDKAPIHalFreeCommonBuffer(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ ULONG  Length,  /*IN*/ PHYSICAL_ADDRESS  LogicalAddress,  /*IN*/ PVOID  VirtualAddress,  /*IN*/ BOOLEAN  CacheEnabled);NTOSAPIPADAPTER_OBJECTDDKAPIHalGetAdapter(  /*IN*/ PDEVICE_DESCRIPTION  DeviceDescription,  /*IN OUT*/ PULONG  NumberOfMapRegisters);NTOSAPIULONGDDKAPIHalGetBusData(  /*IN*/ BUS_DATA_TYPE  BusDataType,  /*IN*/ ULONG  BusNumber,  /*IN*/ ULONG  SlotNumber,  /*IN*/ PVOID  Buffer,  /*IN*/ ULONG  Length);NTOSAPIULONGDDKAPIHalGetBusDataByOffset(  /*IN*/ BUS_DATA_TYPE  BusDataType,  /*IN*/ ULONG  BusNumber,  /*IN*/ ULONG  SlotNumber,  /*IN*/ PVOID  Buffer,  /*IN*/ ULONG  Offset,  /*IN*/ ULONG  Length);NTOSAPIULONGDDKAPIHalGetDmaAlignmentRequirement(   VOID);NTOSAPIULONGDDKAPIHalGetInterruptVector(  /*IN*/ INTERFACE_TYPE  InterfaceType,  /*IN*/ ULONG  BusNumber,  /*IN*/ ULONG  BusInterruptLevel,  /*IN*/ ULONG  BusInterruptVector,  /*OUT*/ PKIRQL  Irql,  /*OUT*/ PKAFFINITY  Affinity);NTOSAPIULONGDDKAPIHalReadDmaCounter(  /*IN*/ PADAPTER_OBJECT  AdapterObject);NTOSAPIULONGDDKAPIHalSetBusData(  /*IN*/ BUS_DATA_TYPE  BusDataType,  /*IN*/ ULONG  BusNumber,  /*IN*/ ULONG  SlotNumber,  /*IN*/ PVOID  Buffer,  /*IN*/ ULONG  Length);NTOSAPIULONGDDKAPIHalSetBusDataByOffset(  /*IN*/ BUS_DATA_TYPE  BusDataType,  /*IN*/ ULONG  BusNumber,  /*IN*/ ULONG  SlotNumber,  /*IN*/ PVOID  Buffer,  /*IN*/ ULONG  Offset,  /*IN*/ ULONG  Length);NTOSAPIBOOLEANDDKAPIHalTranslateBusAddress(  /*IN*/ INTERFACE_TYPE  InterfaceType,  /*IN*/ ULONG  BusNumber,  /*IN*/ PHYSICAL_ADDRESS  BusAddress,  /*IN OUT*/ PULONG  AddressSpace,  /*OUT*/ PPHYSICAL_ADDRESS  TranslatedAddress);NTOSAPINTSTATUSDDKAPIIoAllocateAdapterChannel(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ PDEVICE_OBJECT  DeviceObject,  /*IN*/ ULONG  NumberOfMapRegisters,  /*IN*/ PDRIVER_CONTROL  ExecutionRoutine,  /*IN*/ PVOID  Context);NTOSAPINTSTATUSDDKAPIIoAssignResources(  /*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);NTOSAPINTSTATUSDDKAPIIoAttachDeviceByPointer(  /*IN*/ PDEVICE_OBJECT  SourceDevice,  /*IN*/ PDEVICE_OBJECT  TargetDevice);NTOSAPIBOOLEANDDKAPIIoFlushAdapterBuffers(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ PVOID  CurrentVa,  /*IN*/ ULONG  Length,  /*IN*/ BOOLEAN  WriteToDevice);NTOSAPIVOIDDDKAPIIoFreeAdapterChannel(  /*IN*/ PADAPTER_OBJECT  AdapterObject);NTOSAPIVOIDDDKAPIIoFreeMapRegisters(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ ULONG  NumberOfMapRegisters);NTOSAPIPHYSICAL_ADDRESSDDKAPIIoMapTransfer(  /*IN*/ PADAPTER_OBJECT  AdapterObject,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ PVOID  CurrentVa,  /*IN OUT*/ PULONG  Length,  /*IN*/ BOOLEAN  WriteToDevice);NTOSAPIPMDLDDKAPIMmCreateMdl(  /*IN*/ PMDL  MemoryDescriptorList  /*OPTIONAL*/,  /*IN*/ PVOID  Base,  /*IN*/ SIZE_T  Length);NTOSAPIBOOLEANDDKAPIMmIsNonPagedSystemAddressValid(  /*IN*/ PVOID  VirtualAddress);NTOSAPILARGE_INTEGERDDKAPIRtlEnlargedIntegerMultiply(  /*IN*/ LONG  Multiplicand,  /*IN*/ LONG  Multiplier);NTOSAPIULONGDDKAPIRtlEnlargedUnsignedDivide(  /*IN*/ ULARGE_INTEGER  Dividend,  /*IN*/ ULONG  Divisor,  /*IN OUT*/ PULONG  Remainder);NTOSAPILARGE_INTEGERDDKAPIRtlEnlargedUnsignedMultiply(  /*IN*/ ULONG  Multiplicand,  /*IN*/ ULONG  Multiplier);NTOSAPILARGE_INTEGERDDKAPIRtlExtendedIntegerMultiply(  /*IN*/ LARGE_INTEGER  Multiplicand,  /*IN*/ LONG  Multiplier);NTOSAPILARGE_INTEGERDDKAPIRtlExtendedLargeIntegerDivide(  /*IN*/ LARGE_INTEGER  Dividend,  /*IN*/ ULONG  Divisor,  /*IN OUT*/ PULONG  Remainder);NTOSAPILARGE_INTEGERDDKAPIRtlExtendedMagicDivide(  /*IN*/ LARGE_INTEGER  Dividend,  /*IN*/ LARGE_INTEGER  MagicDivisor,  /*IN*/ CCHAR  ShiftCount);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerAdd(  /*IN*/ LARGE_INTEGER  Addend1,  /*IN*/ LARGE_INTEGER  Addend2);NTOSAPIVOIDDDKAPIRtlLargeIntegerAnd(  /*IN OUT*/ LARGE_INTEGER  Result,  /*IN*/ LARGE_INTEGER  Source,  /*IN*/ LARGE_INTEGER  Mask);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerArithmeticShift(  /*IN*/ LARGE_INTEGER  LargeInteger,  /*IN*/ CCHAR  ShiftCount);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerDivide(  /*IN*/ LARGE_INTEGER  Dividend,  /*IN*/ LARGE_INTEGER  Divisor,  /*IN OUT*/ PLARGE_INTEGER  Remainder);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerEqualTo(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerEqualToZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerGreaterOrEqualToZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerGreaterThan(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerGreaterThanOrEqualTo(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerGreaterThanZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerLessOrEqualToZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerLessThan(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerLessThanOrEqualTo(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerLessThanZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerNegate(  /*IN*/ LARGE_INTEGER  Subtrahend);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerNotEqualTo(  /*IN*/ LARGE_INTEGER  Operand1,  /*IN*/ LARGE_INTEGER  Operand2);NTOSAPIBOOLEANDDKAPIRtlLargeIntegerNotEqualToZero(  /*IN*/ LARGE_INTEGER  Operand);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerShiftLeft(  /*IN*/ LARGE_INTEGER  LargeInteger,  /*IN*/ CCHAR  ShiftCount);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerShiftRight(  /*IN*/ LARGE_INTEGER  LargeInteger,  /*IN*/ CCHAR  ShiftCount);NTOSAPILARGE_INTEGERDDKAPIRtlLargeIntegerSubtract(  /*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 functions*/#ifdef _X86_NTOSAPIINTERLOCKED_RESULTDDKAPIExi386InterlockedIncrementLong(  /*IN*/ PLONG  Addend);NTOSAPIINTERLOCKED_RESULTDDKFASTAPIExfi386InterlockedIncrementLong(  /*IN*/ PLONG  Addend);NTOSAPIINTERLOCKED_RESULTDDKAPIExi386InterlockedDecrementLong(  /*IN*/ PLONG  Addend);NTOSAPIINTERLOCKED_RESULTDDKFASTAPIExfi386InterlockedDecrementLong(  /*IN*/ PLONG  Addend);NTOSAPIULONGDDKAPIExi386InterlockedExchangeUlong(  /*IN*/ PULONG  Target,  /*IN*/ ULONG  Value);NTOSAPIULONGDDKFASTAPIExfi386InterlockedExchangeUlong(  /*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_ */#ifdef __cplusplus}#endif#endif /* __WINNT4_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -