📄 diag_lib.h
字号:
#ifndef _DIAG_LIB_H_
#define _DIAG_LIB_H_
/******************************************************************************
* File: diag_lib.h - Shared WD user-mode diagnostics API header. *
* *
* Copyright (c) 2003 - 2006 Jungo Ltd. http://www.jungo.com *
*******************************************************************************/
#if !defined(__KERNEL__)
#ifdef __cplusplus
extern "C" {
#endif
#include "windrvr.h"
/*************************************************************
General definitions
*************************************************************/
/* Cancel selection */
#define DIAG_CANCEL 'x'
/* Exit menu */
#define DIAG_EXIT_MENU 99
/****************************************************************
* Function: DIAG_PrintHexBuffer() *
* Print a buffer in hexadecimal format *
* Parameters: *
* pBuf [in] - Pointer to buffer *
* dwBytes [in] - Number of bytes to print *
* fAscii [in] - If TRUE, print the buffer also as an ASCII *
* string *
* Return Value: *
* None *
*****************************************************************/
void DIAG_PrintHexBuffer(PVOID pBuf, DWORD dwBytes, BOOL fAscii);
/****************************************************************
* Function: DIAG_GetHexChar *
* Get a hexadecimal character from user *
* Parameters: *
* None *
* Return Value: *
* Character received *
*****************************************************************/
int DIAG_GetHexChar(void);
/****************************************************************
* Function: DIAG_GetHexBuffer() *
* Get a hexadecimal buffer from user *
* Parameters: *
* pBuffer [in/out] Pointer to buffer to be filled with data *
* dwBytes [in] Length of buffer *
* Return Value: *
* Size of buffer received *
*****************************************************************/
DWORD DIAG_GetHexBuffer(PVOID pBuffer, DWORD dwBytes);
typedef enum {
DIAG_INPUT_CANCEL = -1,
DIAG_INPUT_EXIT = -1,
DIAG_INPUT_FAIL = 0,
DIAG_INPUT_SUCCESS = 1,
} DIAG_INPUT_RESULT;
/* Get menu option from user */
DIAG_INPUT_RESULT DIAG_GetMenuOption(DWORD *pdwOption, DWORD dwMax);
/* Get numeric value from user
To avoid range check, set min == max (e.g. set both min and max to 0) */
DIAG_INPUT_RESULT DIAG_InputNum(PVOID pInput, const CHAR *sInputText,
BOOL fHex, DWORD dwSize, UINT64 min, UINT64 max);
#define DIAG_InputDWORD(pdwInput, sInputText, fHex, min, max) \
DIAG_InputNum(pdwInput, sInputText, fHex, sizeof(DWORD), min, max)
#define DIAG_InputWORD(pwInput, sInputText, fHex, min, max) \
DIAG_InputNum(pwInput, sInputText, fHex, sizeof(WORD), min, max)
#define DIAG_InputUINT32(pu32Input, sInputText, fHex, min, max) \
DIAG_InputNum(pu32Input, sInputText, fHex, sizeof(UINT32), min, max)
#define DIAG_InputUINT64(pu64Input, sInputText, fHex, min, max) \
DIAG_InputNum(pu64Input, sInputText, fHex, sizeof(UINT64), min, max)
#ifdef __cplusplus
}
#endif
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -