|
|
dd89bb |
#ifndef _NT_OS_H_
|
|
|
dd89bb |
#define _NT_OS_H_
|
|
|
dd89bb |
|
|
|
414ad3 |
#include "nt_abi.h"
|
|
|
dd89bb |
#include "nt_object.h"
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef enum _nt_hard_error_response_option {
|
|
|
dd89bb |
NT_OPTION_ABORT_RETRY_IGNORE,
|
|
|
dd89bb |
NT_OPTION_OK_,
|
|
|
dd89bb |
NT_OPTION_OK_CANCEL,
|
|
|
dd89bb |
NT_OPTION_RETRY_CANCEL,
|
|
|
dd89bb |
NT_OPTION_YES_NO,
|
|
|
dd89bb |
NT_OPTION_YES_NO_CANCEL,
|
|
|
dd89bb |
NT_OPTION_SHUTDOWN_SYSTEM
|
|
|
dd89bb |
} nt_hard_error_response_option;
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef enum _nt_hard_error_response {
|
|
|
dd89bb |
NT_RESPONSE_RETURN_TO_CALLER,
|
|
|
dd89bb |
NT_RESPONSE_NOT_HANDLED,
|
|
|
dd89bb |
NT_RESPONSE_ABORT,
|
|
|
dd89bb |
NT_RESPONSE_CANCEL,
|
|
|
dd89bb |
NT_RESPONSE_IGNORE,
|
|
|
dd89bb |
NT_RESPONSE_NO,
|
|
|
dd89bb |
NT_RESPONSE_OK,
|
|
|
dd89bb |
NT_RESPONSE_RETRY,
|
|
|
dd89bb |
NT_RESPONSE_YES
|
|
|
dd89bb |
} nt_hard_error_response;
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef struct _nt_ldt_entry {
|
|
|
dd89bb |
int32_t limit_low;
|
|
|
dd89bb |
int32_t base_low;
|
|
|
dd89bb |
|
|
|
dd89bb |
union {
|
|
|
dd89bb |
struct {
|
|
|
dd89bb |
unsigned char base_mid;
|
|
|
dd89bb |
unsigned char flags1;
|
|
|
dd89bb |
unsigned char flags2;
|
|
|
dd89bb |
unsigned char base_hi;
|
|
|
dd89bb |
} bytes;
|
|
|
dd89bb |
|
|
|
dd89bb |
struct {
|
|
|
dd89bb |
uint32_t base_mid :8;
|
|
|
dd89bb |
uint32_t type :5;
|
|
|
dd89bb |
uint32_t dpl :2;
|
|
|
dd89bb |
uint32_t pres :1;
|
|
|
dd89bb |
uint32_t limit_hi :4;
|
|
|
dd89bb |
uint32_t sys :1;
|
|
|
dd89bb |
uint32_t reserved :1;
|
|
|
dd89bb |
uint32_t default_big :1;
|
|
|
dd89bb |
uint32_t granularity :1;
|
|
|
dd89bb |
uint32_t base_hi :8;
|
|
|
dd89bb |
} bits;
|
|
|
dd89bb |
} high_word;
|
|
|
dd89bb |
} nt_ldt_entry;
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_flush_write_buffer(void);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
/* interface requires further studying */
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_raise_hard_error(
|
|
|
dd89bb |
__in int32_t status,
|
|
|
dd89bb |
__in uint32_t number_of_args,
|
|
|
dd89bb |
__in uint32_t string_arg_mask,
|
|
|
dd89bb |
__in uint32_t * args,
|
|
|
dd89bb |
__in nt_hard_error_response_option response_option,
|
|
|
dd89bb |
__out nt_hard_error_response * response_received);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_set_default_hard_error_port(
|
|
|
dd89bb |
__in void * hport);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_display_string(
|
|
|
dd89bb |
__in nt_unicode_string * display_string);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_create_paging_file(
|
|
|
dd89bb |
__in nt_unicode_string * file_name,
|
|
|
dd89bb |
__in nt_large_integer * initial_size,
|
|
|
dd89bb |
__in nt_large_integer * maximum_size,
|
|
|
dd89bb |
__in uintptr_t reserved);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_set_ldt_entries(
|
|
|
dd89bb |
__in uint32_t selector_1st,
|
|
|
dd89bb |
__in nt_ldt_entry * ldt_entry_1st,
|
|
|
dd89bb |
__in uint32_t selector_2nd,
|
|
|
dd89bb |
__in nt_ldt_entry * ldt_entry_2nd);
|
|
|
dd89bb |
|
|
|
dd89bb |
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_zw_vdm_control(
|
|
|
dd89bb |
__in uint32_t vdm_control_code,
|
|
|
dd89bb |
__in void * vdm_control_data);
|
|
|
dd89bb |
|
|
|
dd89bb |
#endif
|