?? winddk.h
字號:
ULONG DataSize; ULONG Reserved1; ULONG Reserved2; } DeviceSpecificData; } u;} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Type */#define CmResourceTypeNull 0#define CmResourceTypePort 1#define CmResourceTypeInterrupt 2#define CmResourceTypeMemory 3#define CmResourceTypeDma 4#define CmResourceTypeDeviceSpecific 5#define CmResourceTypeBusNumber 6#define CmResourceTypeMaximum 7#define CmResourceTypeNonArbitrated 128#define CmResourceTypeConfigData 128#define CmResourceTypeDevicePrivate 129#define CmResourceTypePcCardConfig 130#define CmResourceTypeMfCardConfig 131/* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */typedef enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined, CmResourceShareDeviceExclusive, CmResourceShareDriverExclusive, CmResourceShareShared} CM_SHARE_DISPOSITION;/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypePort */#define CM_RESOURCE_PORT_MEMORY 0x0000#define CM_RESOURCE_PORT_IO 0x0001#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeInterrupt */#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008#define CM_RESOURCE_MEMORY_24 0x0010#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */#define CM_RESOURCE_DMA_8 0x0000#define CM_RESOURCE_DMA_16 0x0001#define CM_RESOURCE_DMA_32 0x0002#define CM_RESOURCE_DMA_8_AND_16 0x0004#define CM_RESOURCE_DMA_BUS_MASTER 0x0008#define CM_RESOURCE_DMA_TYPE_A 0x0010#define CM_RESOURCE_DMA_TYPE_B 0x0020#define CM_RESOURCE_DMA_TYPE_F 0x0040typedef struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];} CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;typedef struct _CM_FULL_RESOURCE_DESCRIPTOR { INTERFACE_TYPE InterfaceType; ULONG BusNumber; CM_PARTIAL_RESOURCE_LIST PartialResourceList;} CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;typedef struct _CM_RESOURCE_LIST { ULONG Count; CM_FULL_RESOURCE_DESCRIPTOR List[1];} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;typedef struct _CM_INT13_DRIVE_PARAMETER { USHORT DriveSelect; ULONG MaxCylinders; USHORT SectorsPerTrack; USHORT MaxHeads; USHORT NumberDrives;} CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;#include <poppack.h>typedef struct _CM_KEYBOARD_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR Type; UCHAR Subtype; USHORT KeyboardFlags;} CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA;#define KEYBOARD_INSERT_ON 0x80#define KEYBOARD_CAPS_LOCK_ON 0x40#define KEYBOARD_NUM_LOCK_ON 0x20#define KEYBOARD_SCROLL_LOCK_ON 0x10#define KEYBOARD_ALT_KEY_DOWN 0x08#define KEYBOARD_CTRL_KEY_DOWN 0x04#define KEYBOARD_LEFT_SHIFT_DOWN 0x02#define KEYBOARD_RIGHT_SHIFT_DOWN 0x01typedef struct _CM_MCA_POS_DATA { USHORT AdapterId; UCHAR PosData1; UCHAR PosData2; UCHAR PosData3; UCHAR PosData4;} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;typedef struct CM_Power_Data_s { ULONG PD_Size; DEVICE_POWER_STATE PD_MostRecentPowerState; ULONG PD_Capabilities; ULONG PD_D1Latency; ULONG PD_D2Latency; ULONG PD_D3Latency; DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum];} CM_POWER_DATA, *PCM_POWER_DATA;#define PDCAP_D0_SUPPORTED 0x00000001#define PDCAP_D1_SUPPORTED 0x00000002#define PDCAP_D2_SUPPORTED 0x00000004#define PDCAP_D3_SUPPORTED 0x00000008#define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010#define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020#define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040#define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080#define PDCAP_WARM_EJECT_SUPPORTED 0x00000100typedef struct _CM_SCSI_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR HostIdentifier;} CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA;typedef struct _CM_SERIAL_DEVICE_DATA { USHORT Version; USHORT Revision; ULONG BaudClock;} CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA;/* IO_RESOURCE_DESCRIPTOR.Option */#define IO_RESOURCE_PREFERRED 0x01#define IO_RESOURCE_DEFAULT 0x02#define IO_RESOURCE_ALTERNATIVE 0x08typedef struct _IO_RESOURCE_DESCRIPTOR { UCHAR Option; UCHAR Type; UCHAR ShareDisposition; UCHAR Spare1; USHORT Flags; USHORT Spare2; union { struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Port; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Memory; struct { ULONG MinimumVector; ULONG MaximumVector; } Interrupt; struct { ULONG MinimumChannel; ULONG MaximumChannel; } Dma; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Generic; struct { ULONG Data[3]; } DevicePrivate; struct { ULONG Length; ULONG MinBusNumber; ULONG MaxBusNumber; ULONG Reserved; } BusNumber; struct { ULONG Priority; ULONG Reserved1; ULONG Reserved2; } ConfigData; } u;} IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;typedef struct _IO_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; IO_RESOURCE_DESCRIPTOR Descriptors[1];} IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;typedef struct _IO_RESOURCE_REQUIREMENTS_LIST { ULONG ListSize; INTERFACE_TYPE InterfaceType; ULONG BusNumber; ULONG SlotNumber; ULONG Reserved[3]; ULONG AlternativeLists; IO_RESOURCE_LIST List[1];} IO_RESOURCE_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST;typedef struct _CONTROLLER_OBJECT { CSHORT Type; CSHORT Size; PVOID ControllerExtension; KDEVICE_QUEUE DeviceWaitQueue; ULONG Spare1; LARGE_INTEGER Spare2;} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;typedef enum _DMA_WIDTH { Width8Bits, Width16Bits, Width32Bits, MaximumDmaWidth} DMA_WIDTH, *PDMA_WIDTH;typedef enum _DMA_SPEED { Compatible, TypeA, TypeB, TypeC, TypeF, MaximumDmaSpeed} DMA_SPEED, *PDMA_SPEED;/* DEVICE_DESCRIPTION.Version */#define DEVICE_DESCRIPTION_VERSION 0x0000#define DEVICE_DESCRIPTION_VERSION1 0x0001#define DEVICE_DESCRIPTION_VERSION2 0x0002typedef struct _DEVICE_DESCRIPTION { ULONG Version; BOOLEAN Master; BOOLEAN ScatterGather; BOOLEAN DemandMode; BOOLEAN AutoInitialize; BOOLEAN Dma32BitAddresses; BOOLEAN IgnoreCount; BOOLEAN Reserved1; BOOLEAN Dma64BitAddresses; ULONG BusNumber; ULONG DmaChannel; INTERFACE_TYPE InterfaceType; DMA_WIDTH DmaWidth; DMA_SPEED DmaSpeed; ULONG MaximumLength; ULONG DmaPort;} DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION;/* VPB.Flags */#define VPB_MOUNTED 0x0001#define VPB_LOCKED 0x0002#define VPB_PERSISTENT 0x0004#define VPB_REMOVE_PENDING 0x0008#define VPB_RAW_MOUNT 0x0010#define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))typedef struct _VPB { CSHORT Type; CSHORT Size; USHORT Flags; USHORT VolumeLabelLength; struct _DEVICE_OBJECT *DeviceObject; struct _DEVICE_OBJECT *RealDevice; ULONG SerialNumber; ULONG ReferenceCount; WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];} VPB, *PVPB;/* DEVICE_OBJECT.Flags */#define DO_VERIFY_VOLUME 0x00000002 #define DO_BUFFERED_IO 0x00000004 #define DO_EXCLUSIVE 0x00000008 #define DO_DIRECT_IO 0x00000010 #define DO_MAP_IO_BUFFER 0x00000020 #define DO_DEVICE_HAS_NAME 0x00000040 #define DO_DEVICE_INITIALIZING 0x00000080 #define DO_SYSTEM_BOOT_PARTITION 0x00000100 #define DO_LONG_TERM_REQUESTS 0x00000200 #define DO_NEVER_LAST_DEVICE 0x00000400 #define DO_SHUTDOWN_REGISTERED 0x00000800 #define DO_BUS_ENUMERATED_DEVICE 0x00001000 #define DO_POWER_PAGABLE 0x00002000 #define DO_POWER_INRUSH 0x00004000 #define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 /* DEVICE_OBJECT.Characteristics */#define FILE_REMOVABLE_MEDIA 0x00000001#define FILE_READ_ONLY_DEVICE 0x00000002#define FILE_FLOPPY_DISKETTE 0x00000004#define FILE_WRITE_ONCE_MEDIA 0x00000008#define FILE_REMOTE_DEVICE 0x00000010#define FILE_DEVICE_IS_MOUNTED 0x00000020#define FILE_VIRTUAL_VOLUME 0x00000040#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080#define FILE_DEVICE_SECURE_OPEN 0x00000100/* DEVICE_OBJECT.AlignmentRequirement */#define FILE_BYTE_ALIGNMENT 0x00000000#define FILE_WORD_ALIGNMENT 0x00000001#define FILE_LONG_ALIGNMENT 0x00000003#define FILE_QUAD_ALIGNMENT 0x00000007#define FILE_OCTA_ALIGNMENT 0x0000000f#define FILE_32_BYTE_ALIGNMENT 0x0000001f#define FILE_64_BYTE_ALIGNMENT 0x0000003f#define FILE_128_BYTE_ALIGNMENT 0x0000007f#define FILE_256_BYTE_ALIGNMENT 0x000000ff#define FILE_512_BYTE_ALIGNMENT 0x000001ff/* DEVICE_OBJECT.DeviceType */#define DEVICE_TYPE ULONG#define FILE_DEVICE_BEEP 0x00000001#define FILE_DEVICE_CD_ROM 0x00000002#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003#define FILE_DEVICE_CONTROLLER 0x00000004#define FILE_DEVICE_DATALINK 0x00000005#define FILE_DEVICE_DFS 0x00000006#define FILE_DEVICE_DISK 0x00000007#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008#define FILE_DEVICE_FILE_SYSTEM 0x00000009#define FILE_DEVICE_INPORT_PORT 0x0000000a#define FILE_DEVICE_KEYBOARD 0x0000000b#define FILE_DEVICE_MAILSLOT 0x0000000c#define FILE_DEVICE_MIDI_IN 0x0000000d#define FILE_DEVICE_MIDI_OUT 0x0000000e#define FILE_DEVICE_MOUSE 0x0000000f#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010#define FILE_DEVICE_NAMED_PIPE 0x00000011#define FILE_DEVICE_NETWORK 0x00000012#define FILE_DEVICE_NETWORK_BROWSER 0x00000013#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014#define FILE_DEVICE_NULL 0x00000015#define FILE_DEVICE_PARALLEL_PORT 0x00000016#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017#define FILE_DEVICE_PRINTER 0x00000018#define FILE_DEVICE_SCANNER 0x00000019#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a#define FILE_DEVICE_SERIAL_PORT 0x0000001b#define FILE_DEVICE_SCREEN 0x0000001c#define FILE_DEVICE_SOUND 0x0000001d#define FILE_DEVICE_STREAMS 0x0000001e#define FILE_DEVICE_TAPE 0x0000001f#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020#define FILE_DEVICE_TRANSPORT 0x00000021#define FILE_DEVICE_UNKNOWN 0x00000022#define FILE_DEVICE_VIDEO 0x00000023#define FILE_DEVICE_VIRTUAL_DISK 0x00000024#define FILE_DEVICE_WAVE_IN 0x00000025#define FILE_DEVICE_WAVE_OUT 0x00000026#define FILE_DEVICE_8042_PORT 0x00000027#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028#define FILE_DEVICE_BATTERY 0x00000029#define FILE_DEVICE_BUS_EXTENDER 0x0000002a#define FILE_DEVICE_MODEM 0x0000002b#define FILE_DEVICE_VDM 0x0000002c#define FILE_DEVICE_MASS_STORAGE 0x0000002d#define FILE_DEVICE_SMB 0x0000002e#define FILE_DEVICE_KS 0x0000002f#define FILE_DEVICE_CHANGER 0x00000030#define FILE_DEVICE_SMARTCARD 0x00000031#define FILE_DEVICE_ACPI 0x00000032#define FILE_DEVICE_DVD 0x00000033#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035#define FILE_DEVICE_DFS_VOLUME 0x00000036#define FILE_DEVICE_SERENUM 0x00000037#define FILE_DEVICE_TERMSRV 0x00000038#define FILE_DEVICE_KSEC 0x00000039#define FILE_DEVICE_FIPS 0x0000003atypedef struct _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; struct _DEVICE_OBJECT *NextDevice; struct _DEVICE_OBJECT *AttachedDevice; struct _IRP *CurrentIrp; PIO_TIMER Timer; ULONG Flags; ULONG Characteristics; PVPB Vpb; PVOID DeviceExtension; DEVICE_TYPE DeviceType; CCHAR StackSize; union { LIST_ENTRY ListEntry; WAIT_CONTEXT_BLOCK Wcb; } Queue; ULONG AlignmentRequirement; KDEVICE_QUEUE DeviceQueue; KDPC Dpc; ULONG ActiveThreadCount; PSECURITY_DESCRIPTOR SecurityDescriptor; KEVENT DeviceLock; USHORT SectorSize; USHORT Spare1; struct _DEVOBJ_EXTENSION *DeviceObjectExtension; PVOID Reserved;} DEVICE_OBJECT;typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -