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

📄 winnt_types.h

📁 linux下安装无线网卡启动的程式
💻 H
📖 第 1 页 / 共 3 页
字号:
#define IoMarkIrpPending(irp)						\	(IoGetCurrentIrpStackLocation((irp))->control |= SL_PENDING_RETURNED)#define IoUnmarkIrpPending(irp)						\	(IoGetCurrentIrpStackLocation((irp))->control &= ~SL_PENDING_RETURNED)#define IRP_SL(irp, n) (((struct io_stack_location *)((irp) + 1)) + (n))#define IRP_DRIVER_CONTEXT(irp) (irp)->tail.overlay.driver_context#define IoIrpThread(irp) ((irp)->tail.overlay.thread)#define IRP_URB(irp)							\	(union nt_urb *)(IoGetCurrentIrpStackLocation(irp)->params.others.arg1)#define IRP_WRAP_DEVICE(irp) (irp)->tail.wrap_device#define IRP_WRAP_URB(irp) (irp)->tail.wrap_urbstruct wmi_guid_reg_info {	struct guid *guid;	ULONG instance_count;	ULONG flags;};struct wmilib_context {	ULONG guid_count;	struct wmi_guid_reg_info *guid_list;	void *query_wmi_reg_info;	void *query_wmi_data_block;	void *set_wmi_data_block;	void *set_wmi_data_item;	void *execute_wmi_method;	void *wmi_function_control;};enum key_value_information_class {	KeyValueBasicInformation, KeyValueFullInformation,	KeyValuePartialInformation, KeyValueFullInformationAlign64,	KeyValuePartialInformationAlign64};struct file_name_info {	ULONG length;	wchar_t *name;};struct file_std_info {	LARGE_INTEGER alloc_size;	LARGE_INTEGER eof;	ULONG num_links;	BOOLEAN delete_pending;	BOOLEAN dir;};enum nt_obj_type {	NT_OBJ_EVENT = 10, NT_OBJ_MUTEX, NT_OBJ_THREAD, NT_OBJ_TIMER,	NT_OBJ_SEMAPHORE,};enum common_object_type {	OBJECT_TYPE_NONE, OBJECT_TYPE_DEVICE, OBJECT_TYPE_DRIVER,	OBJECT_TYPE_NT_THREAD, OBJECT_TYPE_FILE, OBJECT_TYPE_CALLBACK,};struct common_object_header {	struct nt_list list;	enum common_object_type type;	UINT size;	UINT ref_count;	BOOLEAN close_in_process;	BOOLEAN permanent;	struct unicode_string name;};#define OBJECT_TO_HEADER(object)					\	(struct common_object_header *)((void *)(object) -		\					sizeof(struct common_object_header))#define OBJECT_SIZE(size)				\	((size) + sizeof(struct common_object_header))#define HEADER_TO_OBJECT(hdr)					\	((void *)(hdr) + sizeof(struct common_object_header))#define HANDLE_TO_OBJECT(handle) HEADER_TO_OBJECT(handle)#define HANDLE_TO_HEADER(handle) (handle)enum work_queue_type {	CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue,	MaximumWorkQueue};typedef void (*NTOS_WORK_FUNC)(void *arg1, void *arg2) wstdcall;struct io_workitem {	enum work_queue_type type;	struct device_object *dev_obj;	NTOS_WORK_FUNC worker_routine;	void *context;};struct io_workitem_entry {	struct nt_list list;	struct io_workitem *io_workitem;};enum mm_page_priority {	LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32};enum kinterrupt_mode {	LevelSensitive, Latched};enum ntos_wait_reason {	Executive, FreePage, PageIn, PoolAllocation, DelayExecution,	Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn,	WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest,	WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory,	WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6,	WrKernel, MaximumWaitReason};typedef enum ntos_wait_reason KWAIT_REASON;typedef void *LOOKASIDE_ALLOC_FUNC(enum pool_type pool_type,				   SIZE_T size, ULONG tag) wstdcall;typedef void LOOKASIDE_FREE_FUNC(void *) wstdcall;struct npaged_lookaside_list {	nt_slist_header head;	USHORT depth;	USHORT maxdepth;	ULONG totalallocs;	union {		ULONG allocmisses;		ULONG allochits;	} u1;	ULONG totalfrees;	union {		ULONG freemisses;		ULONG freehits;	} u2;	enum pool_type pool_type;	ULONG tag;	ULONG size;	LOOKASIDE_ALLOC_FUNC *alloc_func;	LOOKASIDE_FREE_FUNC *free_func;	struct nt_list list;	ULONG lasttotallocs;	union {		ULONG lastallocmisses;		ULONG lastallochits;	} u3;	ULONG pad[2];#ifndef CONFIG_X86_64	NT_SPIN_LOCK obsolete;#endif}#ifdef CONFIG_X86_64CACHE_ALIGN#endif;enum device_registry_property {	DevicePropertyDeviceDescription, DevicePropertyHardwareID,	DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration,	DevicePropertyBootConfigurationTranslated,	DevicePropertyClassName, DevicePropertyClassGuid,	DevicePropertyDriverKeyName, DevicePropertyManufacturer,	DevicePropertyFriendlyName, DevicePropertyLocationInformation,	DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid,	DevicePropertyLegacyBusType, DevicePropertyBusNumber,	DevicePropertyEnumeratorName, DevicePropertyAddress,	DevicePropertyUINumber, DevicePropertyInstallState,	DevicePropertyRemovalPolicy};enum trace_information_class {	TraceIdClass, TraceHandleClass, TraceEnableFlagsClass,	TraceEnableLevelClass, GlobalLoggerHandleClass, EventLoggerHandleClass,	AllLoggerHandlesClass, TraceHandleByNameClass};struct kinterrupt;typedef BOOLEAN (*PKSERVICE_ROUTINE)(struct kinterrupt *interrupt,				     void *context) wstdcall;typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE)(void *context) wstdcall;struct kinterrupt {	ULONG vector;	KAFFINITY cpu_mask;	NT_SPIN_LOCK lock;	NT_SPIN_LOCK *actual_lock;	BOOLEAN shared;	BOOLEAN save_fp;	CHAR processor_number;	PKSERVICE_ROUTINE isr;	void *isr_ctx;	struct nt_list list;	KIRQL irql;	KIRQL synch_irql;	enum kinterrupt_mode mode;};struct time_fields {	CSHORT year;	CSHORT month;	CSHORT day;	CSHORT hour;	CSHORT minute;	CSHORT second;	CSHORT milliseconds;	CSHORT weekday;};struct object_attributes {	ULONG length;	void *root_dir;	struct unicode_string *name;	ULONG attributes;	void *security_descr;	void *security_qos;};typedef void (*PCALLBACK_FUNCTION)(void *context, void *arg1,				   void *arg2) wstdcall;struct callback_object;struct callback_func {	PCALLBACK_FUNCTION func;	void *context;	struct nt_list list;	struct callback_object *object;};struct callback_object {	NT_SPIN_LOCK lock;	struct nt_list list;	struct nt_list callback_funcs;	BOOLEAN allow_multiple_callbacks;	struct object_attributes *attributes;};enum section_inherit {	ViewShare = 1, ViewUnmap = 2};struct ksystem_time {	ULONG low_part;	LONG high1_time;	LONG high2_time;};enum nt_product_type {	nt_product_win_nt = 1, nt_product_lan_man_nt, nt_product_server};enum alt_arch_type {	arch_type_standard, arch_type_nex98x86, end_alternatives};struct kuser_shared_data {	ULONG tick_count;	ULONG tick_count_multiplier;	volatile struct ksystem_time interrupt_time;	volatile struct ksystem_time system_time;	volatile struct ksystem_time time_zone_bias;	USHORT image_number_low;	USHORT image_number_high;	wchar_t nt_system_root[260];	ULONG max_stack_trace_depth;	ULONG crypto_exponent;	ULONG time_zone_id;	ULONG large_page_min;	ULONG reserved2[7];	enum nt_product_type nt_product_type;	BOOLEAN product_type_is_valid;	ULONG nt_major_version;	ULONG nt_minor_version;	BOOLEAN processor_features[PROCESSOR_FEATURE_MAX];	ULONG reserved1;	ULONG reserved3;	volatile LONG time_slip;	enum alt_arch_type alt_arch_type;	LARGE_INTEGER system_expiration_date;	ULONG suite_mask;	BOOLEAN kdbg_enabled;	volatile ULONG active_console;	volatile ULONG dismount_count;	ULONG com_plus_package;	ULONG last_system_rite_event_tick_count;	ULONG num_phys_pages;	BOOLEAN safe_boot_mode;	ULONG trace_log;	ULONGLONG fill0;	ULONGLONG sys_call[4];	union {		volatile struct ksystem_time tick_count;		volatile ULONG64 tick_count_quad;	} tick;};#define REG_NONE			(0)#define REG_SZ				(1)#define REG_EXPAND_SZ			(2)#define REG_BINARY			(3)#define REG_DWORD			(4)#define RTL_REGISTRY_ABSOLUTE		0#define RTL_REGISTRY_SERVICES		1#define RTL_REGISTRY_CONTROL		2#define RTL_REGISTRY_WINDOWS_NT		3#define RTL_REGISTRY_DEVICEMAP		4#define RTL_REGISTRY_USER		5#define RTL_REGISTRY_MAXIMUM		6#define RTL_REGISTRY_HANDLE		0x40000000#define RTL_REGISTRY_OPTIONAL		0x80000000#define RTL_QUERY_REGISTRY_SUBKEY	0x00000001#define RTL_QUERY_REGISTRY_TOPKEY	0x00000002#define RTL_QUERY_REGISTRY_REQUIRED	0x00000004#define RTL_QUERY_REGISTRY_NOVALUE	0x00000008#define RTL_QUERY_REGISTRY_NOEXPAND	0x00000010#define RTL_QUERY_REGISTRY_DIRECT	0x00000020#define RTL_QUERY_REGISTRY_DELETE	0x00000040typedef NTSTATUS (*PRTL_QUERY_REGISTRY_ROUTINE)(wchar_t *name, ULONG type,						void *data, ULONG length,						void *context,						void *entry) wstdcall;struct rtl_query_registry_table {	PRTL_QUERY_REGISTRY_ROUTINE query_func;	ULONG flags;	wchar_t *name;	void *context;	ULONG def_type;	void *def_data;	ULONG def_length;};struct io_remove_lock {	BOOLEAN removed;	BOOLEAN reserved[3];	LONG io_count;	struct nt_event remove_event;};struct io_error_log_packet {	UCHAR major_fn_code;	UCHAR retry_count;	USHORT dump_data_size;	USHORT nr_of_strings;	USHORT string_offset;	USHORT event_category;	NTSTATUS error_code;	ULONG unique_error_value;	NTSTATUS final_status;	ULONG sequence_number;	ULONG io_control_code;	LARGE_INTEGER device_offset;	ULONG dump_data[1];};/* some of the functions below are slightly different from DDK's * implementation; e.g., Insert functions return appropriate * pointer *//* instead of using Linux's lists, we implement list manipulation * functions because nt_list is used by drivers and we don't want to * worry about Linux's list being different from nt_list (right now * they are same, but in future they could be different) */static inline void InitializeListHead(struct nt_list *head){	head->next = head->prev = head;}static inline BOOLEAN IsListEmpty(struct nt_list *head){	if (head == head->next)		return TRUE;	else		return FALSE;}static inline void RemoveEntryList(struct nt_list *entry){	entry->prev->next = entry->next;	entry->next->prev = entry->prev;}static inline struct nt_list *RemoveHeadList(struct nt_list *head){	struct nt_list *entry;	entry = head->next;	if (entry == head)		return NULL;	else {		RemoveEntryList(entry);		return entry;	}}static inline struct nt_list *RemoveTailList(struct nt_list *head){	struct nt_list *entry;	entry = head->prev;	if (entry == head)		return NULL;	else {		RemoveEntryList(entry);		return entry;	}}static inline void InsertListEntry(struct nt_list *entry, struct nt_list *prev,				   struct nt_list *next){	next->prev = entry;	entry->next = next;	entry->prev = prev;	prev->next = entry;}static inline struct nt_list *InsertHeadList(struct nt_list *head,					     struct nt_list *entry){	struct nt_list *ret;	if (IsListEmpty(head))		ret = NULL;	else		ret = head->next;	InsertListEntry(entry, head, head->next);	return ret;}static inline struct nt_list *InsertTailList(struct nt_list *head,					     struct nt_list *entry){	struct nt_list *ret;	if (IsListEmpty(head))		ret = NULL;	else		ret = head->prev;	InsertListEntry(entry, head->prev, head);	return ret;}#define nt_list_for_each(pos, head)					\	for (pos = (head)->next; pos != (head); pos = pos->next)#define nt_list_for_each_entry(pos, head, member)			\	for (pos = container_of((head)->next, typeof(*pos), member);	\	     &pos->member != (head);					\	     pos = container_of(pos->member.next, typeof(*pos), member))#define nt_list_for_each_safe(pos, n, head)		       \	for (pos = (head)->next, n = pos->next; pos != (head); \	     pos = n, n = pos->next)/* 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/* Various supported device types (used with IoCreateDevice()) */#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		0x0000003A/* Device 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#define FILE_READ_DATA			0x0001#define FILE_WRITE_DATA			0x0002#define FILE_SUPERSEDED			0x00000000#define FILE_OPENED			0x00000001#define FILE_CREATED			0x00000002#define FILE_OVERWRITTEN		0x00000003#define FILE_EXISTS			0x00000004#define FILE_DOES_NOT_EXIST		0x00000005#endif /* WINNT_TYPES_H */

⌨️ 快捷键说明

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