Sync with trunk r58113.

svn path=/branches/ros-csrss/; revision=58114
This commit is contained in:
Hermès Bélusca-Maïto 2013-01-04 13:36:15 +00:00
parent 7851c1a1c2
commit 51aa122e2d
139 changed files with 2344 additions and 3192 deletions

View file

@ -8,7 +8,7 @@ Description = A media player.
Size = 7.0MB
Category = 1
URLSite = http://mpc-hc.sourceforge.net/
URLDownload = http://heanet.dl.sourceforge.netproject/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.6.5.6366_x86/MPC-HC.1.6.5.6366.x86.exe
URLDownload = http://heanet.dl.sourceforge.net/project/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.6.5.6366_x86/MPC-HC.1.6.5.6366.x86.exe
CDPath = none
[Section.0407]

View file

@ -236,16 +236,16 @@ static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions
{
/* Sanity check this key; it cannot be empty, nor can it be a
* loop back */
if ((szBuffer[0] != L'\0') && wcsicmp(szBuffer, pszKeyPath))
if ((szBuffer[0] != L'\0') && _wcsicmp(szBuffer, pszKeyPath))
{
if (RegOpenKeyW(hRootKey, szBuffer, &hOtherKey) == ERROR_SUCCESS)
{
wcsncpy(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength);
lstrcpynW(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength);
i = wcslen(pszSuggestions);
pszSuggestions += i;
iSuggestionsLength -= i;
wcsncpy(pszSuggestions, szBuffer, (int) iSuggestionsLength);
lstrcpynW(pszSuggestions, szBuffer, (int) iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i;
iSuggestionsLength -= i;
@ -266,12 +266,12 @@ static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions
if (QueryStringValue(hSubKey, L"CLSID", NULL, szBuffer,
COUNT_OF(szBuffer)) == ERROR_SUCCESS)
{
wcsncpy(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength);
lstrcpynW(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength);
i = wcslen(pszSuggestions);
pszSuggestions += i;
iSuggestionsLength -= i;
wcsncpy(pszSuggestions, szBuffer, (int)iSuggestionsLength);
lstrcpynW(pszSuggestions, szBuffer, (int)iSuggestionsLength);
i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength);
pszSuggestions += i;
iSuggestionsLength -= i;
@ -286,7 +286,7 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
{
WNDPROC oldwndproc;
static WCHAR s_szNode[256];
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWL_USERDATA);
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (uMsg)
{
@ -300,7 +300,7 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
default:
break;
}
return CallWindowProc(oldwndproc, hwnd, uMsg, wParam, lParam);
return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
}
static VOID
@ -333,8 +333,8 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED);
/* compare the strings to see if we should enable/disable the "Load Hive" menus accordingly */
if (!(wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") &&
wcsicmp(rootName, L"HKEY_USERS")))
if (!(_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") &&
_wcsicmp(rootName, L"HKEY_USERS")))
{
/*
* enable the unload menu item if at the root, otherwise
@ -406,9 +406,9 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
0);
}
/* Subclass the AddressBar */
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_WNDPROC);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWL_WNDPROC, (DWORD_PTR)AddressBarProc);
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_WNDPROC);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(g_pChildWnd->hAddressBarWnd, GWLP_WNDPROC, (DWORD_PTR)AddressBarProc);
break;
}
case WM_COMMAND:
@ -660,8 +660,8 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
{
TVHITTESTINFO hti;
HMENU hContextMenu;
TVITEM item;
MENUITEMINFO mii;
TVITEMW item;
MENUITEMINFOW mii;
WCHAR resource[256];
WCHAR buffer[256];
LPWSTR s;

View file

@ -230,7 +230,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
{
WNDPROC oldwndproc;
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWL_USERDATA);
oldwndproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (uMsg)
{
@ -263,7 +263,7 @@ LRESULT CALLBACK DwordEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPAR
}
}
return CallWindowProc(oldwndproc, hwnd, uMsg, wParam, lParam);
return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam);
}
@ -285,9 +285,9 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
/* subclass the edit control */
hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA);
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwndValue, GWL_WNDPROC);
SetWindowLongPtr(hwndValue, GWL_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(hwndValue, GWL_WNDPROC, (DWORD_PTR)DwordEditSubclassProc);
oldproc = (WNDPROC)(LONG_PTR)GetWindowLongPtr(hwndValue, GWLP_WNDPROC);
SetWindowLongPtr(hwndValue, GWLP_USERDATA, (DWORD_PTR)oldproc);
SetWindowLongPtr(hwndValue, GWLP_WNDPROC, (DWORD_PTR)DwordEditSubclassProc);
if (editValueName && wcscmp(editValueName, L""))
{
@ -665,7 +665,7 @@ ParseResources(HWND hwnd)
HWND hwndLV;
WCHAR buffer[80];
LVITEM item;
LVITEMW item;
INT iItem;
pFullDescriptor = &resourceValueData->List[fullResourceIndex];
@ -866,7 +866,7 @@ OnResourceNotify(HWND hwndDlg, NMHDR *phdr)
if (lpnmlv->iItem != -1)
{
PCM_PARTIAL_RESOURCE_DESCRIPTOR pDescriptor;
LVITEM item;
LVITEMW item;
item.mask = LVIF_PARAM;
item.iItem = lpnmlv->iItem;
@ -968,7 +968,7 @@ static VOID AddFullResourcesToList(HWND hwnd)
{
PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor;
WCHAR buffer[80];
LVITEM item;
LVITEMW item;
ULONG i;
INT iItem;
@ -1344,7 +1344,7 @@ static LONG CopyKey(HKEY hDestKey, LPCWSTR lpDestSubKey, HKEY hSrcKey, LPCWSTR l
}
/* create the destination subkey */
lResult = RegCreateKeyExW(hDestKey, lpDestSubKey, 0, NULL, 0, KEY_WRITE, NULL,
lResult = RegCreateKeyExW(hDestKey, lpDestSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL,
&hDestSubKey, &dwDisposition);
if (lResult)
goto done;
@ -1399,6 +1399,12 @@ static LONG MoveKey(HKEY hDestKey, LPCWSTR lpDestSubKey, HKEY hSrcKey, LPCWSTR l
if (!lpSrcSubKey)
return ERROR_INVALID_FUNCTION;
if (_wcsicmp(lpDestSubKey, lpSrcSubKey) == 0)
{
/* Destination name equals source name */
return ERROR_SUCCESS;
}
lResult = CopyKey(hDestKey, lpDestSubKey, hSrcKey, lpSrcSubKey);
if (lResult == ERROR_SUCCESS)
SHDeleteKey(hSrcKey, lpSrcSubKey);

View file

@ -40,7 +40,7 @@ int ErrorMessageBox(HWND hWnd, LPCWSTR lpTitle, DWORD dwErrorCode, ...)
va_end(args);
iRet = MessageBoxW(hWnd, (Status && lpMsgBuf ? lpMsgBuf : L"Error displaying error message.\n"), lpTitle, MB_OK | MB_ICONERROR);
iRet = MessageBoxW(hWnd, (Status && lpMsgBuf ? lpMsgBuf : L"Error displaying error message."), lpTitle, MB_OK | MB_ICONERROR);
if (lpMsgBuf) LocalFree(lpMsgBuf);
@ -52,22 +52,25 @@ int InfoMessageBox(HWND hWnd, UINT uType, LPCWSTR lpTitle, LPCWSTR lpMessage, ..
{
int iRet = 0;
LPWSTR lpMsgBuf = NULL;
DWORD Status = 0;
va_list args = NULL;
va_start(args, lpMessage);
Status = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpMessage,
0,
0,
(LPWSTR)&lpMsgBuf,
0,
&args);
if (lpMessage)
{
SIZE_T strLen = _vscwprintf(lpMessage, args);
/* Create a buffer on the heap and zero it out (LPTR) */
lpMsgBuf = (LPWSTR)LocalAlloc(LPTR, (strLen + 1) * sizeof(WCHAR));
if (lpMsgBuf)
{
_vsnwprintf(lpMsgBuf, strLen, lpMessage, args);
}
}
va_end(args);
iRet = MessageBoxW(hWnd, (Status && lpMsgBuf ? lpMsgBuf : L"Error displaying error message.\n"), lpTitle, uType);
iRet = MessageBoxW(hWnd, (lpMessage && lpMsgBuf ? lpMsgBuf : L"Error displaying info message."), lpTitle, uType);
if (lpMsgBuf) LocalFree(lpMsgBuf);

View file

@ -77,7 +77,7 @@ static BOOL CompareName(LPCWSTR pszName1, LPCWSTR pszName2)
if (s_dwFlags & RSF_MATCHCASE)
return wcscmp(pszName1, pszName2) == 0;
else
return wcsicmp(pszName1, pszName2) == 0;
return _wcsicmp(pszName1, pszName2) == 0;
}
else
{
@ -130,7 +130,7 @@ int compare(const void *x, const void *y)
{
const LPCWSTR *a = (const LPCWSTR *)x;
const LPCWSTR *b = (const LPCWSTR *)y;
return wcsicmp(*a, *b);
return _wcsicmp(*a, *b);
}
BOOL RegFindRecurse(
@ -198,7 +198,7 @@ BOOL RegFindRecurse(
if (DoEvents())
goto err;
if (!fPast && wcsicmp(ppszNames[i], pszValueName) == 0)
if (!fPast && _wcsicmp(ppszNames[i], pszValueName) == 0)
{
fPast = TRUE;
continue;
@ -390,7 +390,7 @@ BOOL RegFindWalk(
}
else
{
wcsncpy(szKeyName, pch + 1, MAX_PATH);
lstrcpynW(szKeyName, pch + 1, MAX_PATH);
*pch = 0;
lResult = RegOpenKeyExW(hBaseKey, szSubKey, 0, KEY_ALL_ACCESS,
&hSubKey);
@ -434,7 +434,7 @@ BOOL RegFindWalk(
if (DoEvents())
goto err;
if (!fPast && wcsicmp(ppszNames[i], szKeyName) == 0)
if (!fPast && _wcsicmp(ppszNames[i], szKeyName) == 0)
{
fPast = TRUE;
continue;
@ -586,7 +586,7 @@ static void SetFindFlags(DWORD dwFlags)
DWORD dwDisposition;
DWORD dwData;
if (RegCreateKeyExW(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
if (RegCreateKeyExW(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
{
dwData = (dwFlags >> 0) & 0x0000FFFF;
RegSetValueExW(hKey, s_szFindFlags, 0, REG_DWORD, (const BYTE *) &dwData, sizeof(dwData));

View file

@ -453,7 +453,7 @@ static BOOL ImportRegistryFile(HWND hWnd)
{
/* Look at the extension of the file to determine its type */
if (ofn.nFileExtension >= 1 &&
wcsicmp(ofn.lpstrFile + ofn.nFileExtension, L"reg") == 0) /* REGEDIT4 or Windows Registry Editor Version 5.00 */
_wcsicmp(ofn.lpstrFile + ofn.nFileExtension, L"reg") == 0) /* REGEDIT4 or Windows Registry Editor Version 5.00 */
{
/* Open the file */
FILE* fp = _wfopen(ofn.lpstrFile, L"r");
@ -1249,7 +1249,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX))
{
HMENU hMenu;
MENUITEMINFO mii;
MENUITEMINFOW mii;
WCHAR szFavorite[512];
hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION);

View file

@ -56,7 +56,7 @@ static const int column_alignment[MAX_LIST_COLUMNS] = { LVCFMT_LEFT, LVCFMT_LEFT
LPCWSTR GetValueName(HWND hwndLV, int iStartAt)
{
int item;
LVITEM LVItem;
LVITEMW LVItem;
PLINE_INFO lineinfo;
/*
@ -108,7 +108,7 @@ VOID SetValueName(HWND hwndLV, LPCWSTR pszValueName)
BOOL IsDefaultValue(HWND hwndLV, int i)
{
PLINE_INFO lineinfo;
LVITEM Item;
LVITEMW Item;
Item.mask = LVIF_PARAM;
Item.iItem = i;
@ -126,7 +126,7 @@ BOOL IsDefaultValue(HWND hwndLV, int i)
static void AddEntryToList(HWND hwndLV, LPWSTR Name, DWORD dwValType, void* ValBuf, DWORD dwCount, int Position, BOOL ValExists)
{
PLINE_INFO linfo;
LVITEM item;
LVITEMW item;
int index;
linfo = (PLINE_INFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LINE_INFO) + dwCount);
@ -654,7 +654,7 @@ fail:
void DestroyListView(HWND hwndLV)
{
INT count, i;
LVITEM item;
LVITEMW item;
count = ListView_GetItemCount(hwndLV);
for (i = 0; i < count; i++)

View file

@ -458,8 +458,7 @@ static LONG openKeyW(WCHAR* stdInput)
if (!parseKeyName(stdInput, &keyClass, &keyPath))
return ERROR_INVALID_PARAMETER;
res = RegCreateKeyExW(
keyClass, /* Class */
res = RegCreateKeyExW(keyClass, /* Class */
keyPath, /* Sub Key */
0, /* MUST BE 0 */
NULL, /* object type */

View file

@ -115,8 +115,6 @@ extern void SaveSettings(void)
HKEY hKey = NULL;
if (RegCreateKeyW(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
{
if (RegOpenKeyW(HKEY_CURRENT_USER, g_szGeneralRegKey, &hKey) == ERROR_SUCCESS)
{
RegistryBinaryConfig tConfig;
DWORD iBufferSize = sizeof(tConfig);
@ -159,6 +157,4 @@ extern void SaveSettings(void)
RegCloseKey(hKey);
}
}
}
/* EOF */

View file

@ -34,7 +34,7 @@ static LPWSTR pathBuffer;
static BOOL get_item_path(HWND hwndTV, HTREEITEM hItem, HKEY* phKey, LPWSTR* pKeyPath, int* pPathLen, int* pMaxLen)
{
TVITEM item;
TVITEMW item;
size_t maxLen, len;
LPWSTR newStr;
@ -109,8 +109,8 @@ BOOL DeleteNode(HWND hwndTV, HTREEITEM hItem)
/* Add an entry to the tree. Only give hKey for root nodes (HKEY_ constants) */
static HTREEITEM AddEntryToTree(HWND hwndTV, HTREEITEM hParent, LPWSTR label, HKEY hKey, DWORD dwChildren)
{
TVITEM tvi;
TVINSERTSTRUCT tvins;
TVITEMW tvi;
TVINSERTSTRUCTW tvins;
if (hKey)
{
@ -140,7 +140,7 @@ BOOL RefreshTreeItem(HWND hwndTV, HTREEITEM hItem)
LPCWSTR KeyPath;
DWORD dwCount, dwIndex, dwMaxSubKeyLen;
LPWSTR Name = NULL;
TVITEM tvItem;
TVITEMW tvItem;
LPWSTR pszNodes = NULL;
BOOL bSuccess = FALSE;
LPWSTR s;
@ -332,7 +332,7 @@ HTREEITEM InsertNode(HWND hwndTV, HTREEITEM hItem, LPWSTR name)
{
WCHAR buf[MAX_NEW_KEY_LEN];
HTREEITEM hNewItem = 0;
TVITEMEX item;
TVITEMEXW item;
/* Default to the current selection */
if (!hItem)
@ -390,8 +390,8 @@ HWND StartKeyRename(HWND hwndTV)
static BOOL InitTreeViewItems(HWND hwndTV, LPWSTR pHostName)
{
TVITEM tvi;
TVINSERTSTRUCT tvins;
TVITEMW tvi;
TVINSERTSTRUCTW tvins;
HTREEITEM hRoot;
tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN | TVIF_PARAM;
@ -593,7 +593,7 @@ BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem)
do
{
wsprintf(szNewKey, szNewKeyFormat, iIndex++);
nResult = RegCreateKeyExW(hKey, szNewKey, 0, NULL, 0, KEY_WRITE, NULL, &hNewKey, &dwDisposition);
nResult = RegCreateKeyExW(hKey, szNewKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hNewKey, &dwDisposition);
if (hNewKey && dwDisposition == REG_OPENED_EXISTING_KEY)
{
RegCloseKey(hNewKey);
@ -664,7 +664,7 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
WCHAR szPathPart[128];
WCHAR szBuffer[128];
LPCWSTR s;
TVITEM tvi;
TVITEMW tvi;
/* Load "My Computer" string... */
LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer));
@ -683,22 +683,22 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
while(keyPath[0])
{
s = wcschr(keyPath, L'\\');
wcsncpy(szPathPart, keyPath, s ? s - keyPath + 1 : wcslen(keyPath) + 1);
lstrcpynW(szPathPart, keyPath, s ? s - keyPath + 1 : wcslen(keyPath) + 1);
/* Special case for root to expand root key abbreviations */
if (hItem == hRoot)
{
if (!wcsicmp(szPathPart, L"HKCR"))
if (!_wcsicmp(szPathPart, L"HKCR"))
wcscpy(szPathPart, L"HKEY_CLASSES_ROOT");
else if (!wcsicmp(szPathPart, L"HKCU"))
else if (!_wcsicmp(szPathPart, L"HKCU"))
wcscpy(szPathPart, L"HKEY_CURRENT_USER");
else if (!wcsicmp(szPathPart, L"HKLM"))
else if (!_wcsicmp(szPathPart, L"HKLM"))
wcscpy(szPathPart, L"HKEY_LOCAL_MACHINE");
else if (!wcsicmp(szPathPart, L"HKU"))
else if (!_wcsicmp(szPathPart, L"HKU"))
wcscpy(szPathPart, L"HKEY_USERS");
else if (!wcsicmp(szPathPart, L"HKCC"))
else if (!_wcsicmp(szPathPart, L"HKCC"))
wcscpy(szPathPart, L"HKEY_CURRENT_CONFIG");
else if (!wcsicmp(szPathPart, L"HKDD"))
else if (!_wcsicmp(szPathPart, L"HKDD"))
wcscpy(szPathPart, L"HKEY_DYN_DATA");
}
@ -713,7 +713,7 @@ BOOL SelectNode(HWND hwndTV, LPCWSTR keyPath)
(void)TreeView_GetItem(hwndTV, &tvi);
if (!wcsicmp(szBuffer, szPathPart))
if (!_wcsicmp(szBuffer, szPathPart))
break;
}

View file

@ -513,7 +513,7 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Gestionnaire des tâches"
IDC_TASKMGR "Gestionnaire des tâches"
IDS_IDLE_PROCESS "Processus système en atente"
IDS_IDLE_PROCESS "Processus système en attente"
END
STRINGTABLE DISCARDABLE

View file

@ -171,14 +171,6 @@ i386PrintExceptionText(ULONG TrapIndex, PKTRAP_FRAME TrapFrame, PKSPECIAL_REGIST
InstructionPointer[6], InstructionPointer[7]);
}
char *BugCodeStrings[] =
{
"TEST_BUGCHECK",
"MISSING_HARDWARE_REQUIREMENTS",
};
ULONG_PTR BugCheckInfo[5];
void
NTAPI
FrLdrBugCheckEx(

View file

@ -427,3 +427,13 @@ RtlAssert(IN PVOID FailedAssertion,
DbgBreakPoint();
}
char *BugCodeStrings[] =
{
"TEST_BUGCHECK",
"MISSING_HARDWARE_REQUIREMENTS",
"FREELDR_IMAGE_CORRUPTION",
};
ULONG_PTR BugCheckInfo[5];

View file

@ -23,6 +23,7 @@
#define BIOSCALLBUFSEGMENT (BIOSCALLBUFFER/16) /* Buffer to store temporary data for any Int386() call */
#define BIOSCALLBUFOFFSET HEX(0000) /* Buffer to store temporary data for any Int386() call */
#define BIOSCALLBUFSIZE PAGE_SIZE /* max is sizeof(VESA_SVGA_INFO) = 512 */
#define MAX_FREELDR_PE_SIZE (DISKREADBUFFER - FREELDR_PE_BASE)
/* These addresses specify the realmode "BSS section" layout */
#define BSS_RealModeEntry (BSS_START + 0)

View file

@ -120,4 +120,19 @@ void MEMORY_WRITE_BREAKPOINT4(unsigned long addr);
#endif // DBG
void
NTAPI
FrLdrBugCheck(ULONG BugCode);
/* Bugcheck codes */
enum _FRLDR_BUGCHECK_CODES
{
TEST_BUGCHECK,
MISSING_HARDWARE_REQUIREMENTS,
FREELDR_IMAGE_CORRUPTION,
};
extern char *BugCodeStrings[];
extern ULONG_PTR BugCheckInfo[5];
#endif // defined __DEBUG_H

View file

@ -19,6 +19,13 @@
#pragma once
extern char __ImageBase;
#ifdef __GNUC__
#define FREELDR_SECTION_COUNT 3
#else
#define FREELDR_SECTION_COUNT 1
#endif
typedef struct _FREELDR_MEMORY_DESCRIPTOR
{
TYPE_OF_MEMORY MemoryType;

View file

@ -163,6 +163,46 @@ ArcGetMemoryDescriptor(const FREELDR_MEMORY_DESCRIPTOR* Current)
}
BOOLEAN
MmCheckFreeldrImageFile()
{
PIMAGE_NT_HEADERS NtHeaders;
PIMAGE_FILE_HEADER FileHeader;
PIMAGE_OPTIONAL_HEADER OptionalHeader;
/* Get the NT headers */
NtHeaders = RtlImageNtHeader(&__ImageBase);
if (!NtHeaders)
{
ERR("Coult not get NtHeaders!\n");
return FALSE;
}
/* Check the file header */
FileHeader = &NtHeaders->FileHeader;
if ((FileHeader->Machine != IMAGE_FILE_MACHINE_NATIVE) ||
(FileHeader->NumberOfSections != FREELDR_SECTION_COUNT) ||
(FileHeader->PointerToSymbolTable != 0) ||
(FileHeader->NumberOfSymbols != 0) ||
(FileHeader->SizeOfOptionalHeader != 0xE0))
{
return FALSE;
}
/* Check the optional header */
OptionalHeader = &NtHeaders->OptionalHeader;
if ((OptionalHeader->Magic != IMAGE_NT_OPTIONAL_HDR_MAGIC) ||
(OptionalHeader->Subsystem != 1) || // native
(OptionalHeader->ImageBase != FREELDR_PE_BASE) ||
(OptionalHeader->SizeOfImage > MAX_FREELDR_PE_SIZE) ||
(OptionalHeader->SectionAlignment != OptionalHeader->FileAlignment))
{
return FALSE;
}
return TRUE;
}
BOOLEAN MmInitializeMemoryManager(VOID)
{
#if DBG
@ -171,6 +211,12 @@ BOOLEAN MmInitializeMemoryManager(VOID)
TRACE("Initializing Memory Manager.\n");
/* Check the freeldr binary */
if (!MmCheckFreeldrImageFile())
{
FrLdrBugCheck(FREELDR_IMAGE_CORRUPTION);
}
BiosMemoryMap = MachVtbl.GetMemoryMap(&BiosMemoryMapEntryCount);
#if DBG

View file

@ -261,14 +261,10 @@ UserNew(HWND hwndDlg)
NewUserDlgProc,
(LPARAM)&user) == IDOK)
{
#if 0
status = NetUserAdd(NULL,
3,
(LPBYTE)&user,
NULL);
#else
status = NERR_Success;
#endif
if (status != NERR_Success)
{
TCHAR szText[256];
@ -434,9 +430,11 @@ UpdateUsersList(HWND hwndListView)
lvi.iImage = (pBuffer[i].usri20_flags & UF_ACCOUNTDISABLE) ? 1 : 0;
iItem = ListView_InsertItem(hwndListView, &lvi);
if (pBuffer[i].usri20_full_name != NULL)
ListView_SetItemText(hwndListView, iItem, 1,
pBuffer[i].usri20_full_name);
if (pBuffer[i].usri20_comment != NULL)
ListView_SetItemText(hwndListView, iItem, 2,
pBuffer[i].usri20_comment);
}

View file

@ -237,7 +237,8 @@ BasepComputeProcessPath(IN PBASE_SEARCH_PATH_TYPE PathOrder,
{
/* This means someone added RTL_PERTHREAD_CURDIR */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE);
// while (TRUE);
}
/* We do not. Do we have the LDR_ENTRY for the executable? */

View file

@ -2637,7 +2637,7 @@ CreateProcessInternalW(HANDLE hToken,
while (NULL != (ScanString = wcschr(ScanString, L'^')))
{
ScanString++;
if (*ScanString == L'\"' || *ScanString == L'^' || *ScanString == L'\"')
if (*ScanString == L'\"' || *ScanString == L'^' || *ScanString == L'\\')
{
Escape = TRUE;
break;

View file

@ -241,7 +241,8 @@ CreateRemoteThread(IN HANDLE hProcess,
DbgPrint("SXS: %s - Failing thread create because "
"NtQueryInformationThread() failed with status %08lx\n",
__FUNCTION__, Status);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return NULL;
}
/* Allocate the Activation Context Stack */
@ -252,7 +253,8 @@ CreateRemoteThread(IN HANDLE hProcess,
DbgPrint("SXS: %s - Failing thread create because "
"RtlAllocateActivationContextStack() failed with status %08lx\n",
__FUNCTION__, Status);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return NULL;
}
/* Save it */
@ -274,7 +276,8 @@ CreateRemoteThread(IN HANDLE hProcess,
DbgPrint("SXS: %s - Failing thread create because "
"RtlQueryInformationActivationContext() failed with status %08lx\n",
__FUNCTION__, Status);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return NULL;
}
/* Does it need to be activated? */
@ -291,7 +294,8 @@ CreateRemoteThread(IN HANDLE hProcess,
DbgPrint("SXS: %s - Failing thread create because "
"RtlActivateActivationContextEx() failed with status %08lx\n",
__FUNCTION__, Status);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return NULL;
}
}
}
@ -367,7 +371,8 @@ ExitThread(IN DWORD uExitCode)
/* We should never reach this place */
DPRINT1("It should not happen\n");
while (TRUE);
ASSERT(FALSE);
while (TRUE); // 'noreturn' function.
}
/*

View file

@ -18,6 +18,18 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* TODO:
* Implement NetUserChangePassword
* Implement NetUserDel
* Implement NetUserGetGroups
* Implement NetUserSetGroups
* Implement NetUserSetInfo
* NetUserGetLocalGroups does not support LG_INCLUDE_INDIRECT yet.
* Add missing information levels.
* ...
*/
#include "netapi32.h"
WINE_DEFAULT_DEBUG_CHANNEL(netapi32);
@ -31,7 +43,7 @@ typedef struct _ENUM_CONTEXT
SAM_ENUMERATE_HANDLE EnumerationContext;
PSAM_RID_ENUMERATION Buffer;
ULONG Returned;
ULONG Count;
ULONG Index;
BOOLEAN BuiltinDone;
@ -107,6 +119,46 @@ static struct sam_user* NETAPI_FindUser(LPCWSTR UserName)
}
static PSID
CreateSidFromSidAndRid(PSID SrcSid,
ULONG RelativeId)
{
UCHAR RidCount;
PSID DstSid;
ULONG i;
ULONG DstSidSize;
PULONG p, q;
RidCount = *RtlSubAuthorityCountSid(SrcSid);
if (RidCount >= 8)
return NULL;
DstSidSize = RtlLengthRequiredSid(RidCount + 1);
DstSid = RtlAllocateHeap(RtlGetProcessHeap(),
0,
DstSidSize);
if (DstSid == NULL)
return NULL;
RtlInitializeSid(DstSid,
RtlIdentifierAuthoritySid(SrcSid),
RidCount + 1);
for (i = 0; i < (ULONG)RidCount; i++)
{
p = RtlSubAuthoritySid(SrcSid, i);
q = RtlSubAuthoritySid(DstSid, i);
*q = *p;
}
q = RtlSubAuthoritySid(DstSid, (ULONG)RidCount);
*q = RelativeId;
return DstSid;
}
static
NET_API_STATUS
BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo,
@ -246,7 +298,7 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo,
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR));
}
UserInfo1->usri1_flags = UserInfo->UserAccountControl;
// UserInfo1->usri1_flags = UserInfo->UserAccountControl;
if (UserInfo->ScriptPath.Length > 0)
{
@ -342,7 +394,7 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo,
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR));
}
UserInfo20->usri20_flags = UserInfo->UserAccountControl;
// UserInfo20->usri20_flags = UserInfo->UserAccountControl;
UserInfo20->usri20_user_id = RelativeId;
break;
@ -399,6 +451,131 @@ FreeUserInfo(PUSER_ACCOUNT_INFORMATION UserInfo)
}
static
NET_API_STATUS
SetUserInfo(SAM_HANDLE UserHandle,
LPBYTE UserInfo,
DWORD Level)
{
USER_ALL_INFORMATION UserAllInfo;
PUSER_INFO_1 UserInfo1;
PUSER_INFO_3 UserInfo3;
NET_API_STATUS ApiStatus = NERR_Success;
NTSTATUS Status = STATUS_SUCCESS;
ZeroMemory(&UserAllInfo, sizeof(USER_ALL_INFORMATION));
switch (Level)
{
case 1:
UserInfo1 = (PUSER_INFO_1)UserInfo;
// RtlInitUnicodeString(&UserAllInfo.UserName,
// UserInfo1->usri1_name);
RtlInitUnicodeString(&UserAllInfo.AdminComment,
UserInfo1->usri1_comment);
RtlInitUnicodeString(&UserAllInfo.HomeDirectory,
UserInfo1->usri1_home_dir);
RtlInitUnicodeString(&UserAllInfo.ScriptPath,
UserInfo1->usri1_script_path);
RtlInitUnicodeString(&UserAllInfo.NtPassword,
UserInfo1->usri1_password);
UserAllInfo.NtPasswordPresent = TRUE;
// UserInfo1->usri1_flags
// UserInfo1->usri1_priv
UserAllInfo.WhichFields =
USER_ALL_ADMINCOMMENT |
USER_ALL_HOMEDIRECTORY |
USER_ALL_SCRIPTPATH |
USER_ALL_NTPASSWORDPRESENT
// USER_ALL_USERACCOUNTCONTROL
;
break;
case 3:
UserInfo3 = (PUSER_INFO_3)UserInfo;
// LPWSTR usri3_name;
RtlInitUnicodeString(&UserAllInfo.NtPassword,
UserInfo3->usri3_password);
UserAllInfo.NtPasswordPresent = TRUE;
// DWORD usri3_password_age; // ignored
// DWORD usri3_priv;
RtlInitUnicodeString(&UserAllInfo.HomeDirectory,
UserInfo3->usri3_home_dir);
RtlInitUnicodeString(&UserAllInfo.AdminComment,
UserInfo3->usri3_comment);
// DWORD usri3_flags;
RtlInitUnicodeString(&UserAllInfo.ScriptPath,
UserInfo3->usri3_script_path);
// DWORD usri3_auth_flags;
RtlInitUnicodeString(&UserAllInfo.FullName,
UserInfo3->usri3_full_name);
// LPWSTR usri3_usr_comment;
// LPWSTR usri3_parms;
// LPWSTR usri3_workstations;
// DWORD usri3_last_logon;
// DWORD usri3_last_logoff;
// DWORD usri3_acct_expires;
// DWORD usri3_max_storage;
// DWORD usri3_units_per_week;
// PBYTE usri3_logon_hours;
// DWORD usri3_bad_pw_count;
// DWORD usri3_num_logons;
// LPWSTR usri3_logon_server;
// DWORD usri3_country_code;
// DWORD usri3_code_page;
// DWORD usri3_user_id; // ignored
// DWORD usri3_primary_group_id;
// LPWSTR usri3_profile;
// LPWSTR usri3_home_dir_drive;
// DWORD usri3_password_expired;
UserAllInfo.WhichFields =
USER_ALL_NTPASSWORDPRESENT |
USER_ALL_HOMEDIRECTORY |
USER_ALL_ADMINCOMMENT |
USER_ALL_SCRIPTPATH |
USER_ALL_FULLNAME
// USER_ALL_USERACCOUNTCONTROL
;
break;
default:
ERR("Unsupported level %lu!\n", Level);
return ERROR_INVALID_PARAMETER;
}
Status = SamSetInformationUser(UserHandle,
UserAllInformation,
&UserAllInfo);
if (!NT_SUCCESS(Status))
{
ERR("SamSetInformationUser failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
done:
return ApiStatus;
}
/************************************************************
* NetUserAdd (NETAPI32.@)
*/
@ -409,72 +586,89 @@ NetUserAdd(LPCWSTR servername,
LPBYTE bufptr,
LPDWORD parm_err)
{
NET_API_STATUS status;
struct sam_user * su = NULL;
UNICODE_STRING ServerName;
UNICODE_STRING UserName;
SAM_HANDLE ServerHandle = NULL;
SAM_HANDLE DomainHandle = NULL;
SAM_HANDLE UserHandle = NULL;
ULONG GrantedAccess;
ULONG RelativeId;
NET_API_STATUS ApiStatus = NERR_Success;
NTSTATUS Status = STATUS_SUCCESS;
FIXME("(%s, %d, %p, %p) stub!\n", debugstr_w(servername), level, bufptr, parm_err);
TRACE("(%s, %d, %p, %p)\n", debugstr_w(servername), level, bufptr, parm_err);
if((status = NETAPI_ValidateServername(servername)) != NERR_Success)
return status;
/* Check the info level */
if (level < 1 || level > 4)
return ERROR_INVALID_LEVEL;
switch(level)
if (servername != NULL)
RtlInitUnicodeString(&ServerName, servername);
/* Connect to the SAM Server */
Status = SamConnect((servername != NULL) ? &ServerName : NULL,
&ServerHandle,
SAM_SERVER_CONNECT | SAM_SERVER_LOOKUP_DOMAIN,
NULL);
if (!NT_SUCCESS(Status))
{
/* Level 3 and 4 are identical for the purposes of NetUserAdd */
case 4:
case 3:
FIXME("Level 3 and 4 not implemented.\n");
/* Fall through */
case 2:
FIXME("Level 2 not implemented.\n");
/* Fall through */
case 1:
{
PUSER_INFO_1 ui = (PUSER_INFO_1) bufptr;
su = HeapAlloc(GetProcessHeap(), 0, sizeof(struct sam_user));
if(!su)
{
status = NERR_InternalError;
break;
ERR("SamConnect failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
if(lstrlenW(ui->usri1_name) > LM20_UNLEN)
/* Open the Account Domain */
Status = OpenAccountDomain(ServerHandle,
(servername != NULL) ? &ServerName : NULL,
DOMAIN_CREATE_USER | DOMAIN_LOOKUP,
&DomainHandle);
if (!NT_SUCCESS(Status))
{
status = NERR_BadUsername;
break;
ERR("OpenAccountDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/*FIXME: do other checks for a valid username */
lstrcpyW(su->user_name, ui->usri1_name);
/* Initialize the user name string */
RtlInitUnicodeString(&UserName,
((PUSER_INFO_1)bufptr)->usri1_name);
if(lstrlenW(ui->usri1_password) > PWLEN)
/* Create the user account */
Status = SamCreateUser2InDomain(DomainHandle,
&UserName,
USER_NORMAL_ACCOUNT,
USER_ALL_ACCESS | DELETE | WRITE_DAC,
&UserHandle,
&GrantedAccess,
&RelativeId);
if (!NT_SUCCESS(Status))
{
/* Always return PasswordTooShort on invalid passwords. */
status = NERR_PasswordTooShort;
break;
}
lstrcpyW(su->user_password, ui->usri1_password);
su->sec_since_passwd_change = ui->usri1_password_age;
su->user_priv = ui->usri1_priv;
su->user_flags = ui->usri1_flags;
/*FIXME: set the other LPWSTRs to NULL for now */
su->home_dir = NULL;
su->user_comment = NULL;
su->user_logon_script_path = NULL;
list_add_head(&user_list, &su->entry);
return NERR_Success;
}
default:
TRACE("Invalid level %d specified.\n", level);
status = ERROR_INVALID_LEVEL;
break;
ERR("SamCreateUser2InDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
HeapFree(GetProcessHeap(), 0, su);
/* Set user information */
ApiStatus = SetUserInfo(UserHandle,
bufptr,
level);
if (ApiStatus != NERR_Success)
{
ERR("SetUserInfo failed (Status %lu)\n", ApiStatus);
goto done;
}
return status;
done:
if (UserHandle != NULL)
SamCloseHandle(UserHandle);
if (DomainHandle != NULL)
SamCloseHandle(DomainHandle);
if (ServerHandle != NULL)
SamCloseHandle(ServerHandle);
return ApiStatus;
}
@ -599,7 +793,7 @@ NetUserEnum(LPCWSTR servername,
EnumContext->EnumerationContext = 0;
EnumContext->Buffer = NULL;
EnumContext->Returned = 0;
EnumContext->Count = 0;
EnumContext->Index = 0;
EnumContext->BuiltinDone = FALSE;
@ -639,9 +833,9 @@ NetUserEnum(LPCWSTR servername,
// while (TRUE)
// {
TRACE("EnumContext->Index: %lu\n", EnumContext->Index);
TRACE("EnumContext->Returned: %lu\n", EnumContext->Returned);
TRACE("EnumContext->Count: %lu\n", EnumContext->Count);
if (EnumContext->Index >= EnumContext->Returned)
if (EnumContext->Index >= EnumContext->Count)
{
// if (EnumContext->BuiltinDone == TRUE)
// {
@ -655,7 +849,7 @@ NetUserEnum(LPCWSTR servername,
0,
(PVOID *)&EnumContext->Buffer,
prefmaxlen,
&EnumContext->Returned);
&EnumContext->Count);
TRACE("SamEnumerateUsersInDomain returned (Status %08lx)\n", Status);
if (!NT_SUCCESS(Status))
@ -677,7 +871,7 @@ NetUserEnum(LPCWSTR servername,
}
TRACE("EnumContext: %lu\n", EnumContext);
TRACE("EnumContext->Returned: %lu\n", EnumContext->Returned);
TRACE("EnumContext->Count: %lu\n", EnumContext->Count);
TRACE("EnumContext->Buffer: %p\n", EnumContext->Buffer);
/* Get a pointer to the current user */
@ -731,11 +925,11 @@ NetUserEnum(LPCWSTR servername,
// }
done:
if (ApiStatus == NERR_Success && EnumContext->Index < EnumContext->Returned)
if (ApiStatus == NERR_Success && EnumContext->Index < EnumContext->Count)
ApiStatus = ERROR_MORE_DATA;
if (EnumContext != NULL)
*totalentries = EnumContext->Returned;
*totalentries = EnumContext->Count;
if (resume_handle == NULL || ApiStatus != ERROR_MORE_DATA)
{
@ -752,7 +946,7 @@ done:
if (EnumContext->Buffer != NULL)
{
for (i = 0; i < EnumContext->Returned; i++)
for (i = 0; i < EnumContext->Count; i++)
{
SamFreeMemory(EnumContext->Buffer[i].Name.Buffer);
}
@ -955,53 +1149,298 @@ NetUserGetLocalGroups(LPCWSTR servername,
LPDWORD entriesread,
LPDWORD totalentries)
{
NET_API_STATUS status;
const WCHAR admins[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r','s',0};
LPWSTR currentuser;
LOCALGROUP_USERS_INFO_0* info;
DWORD size;
UNICODE_STRING ServerName;
UNICODE_STRING UserName;
SAM_HANDLE ServerHandle = NULL;
SAM_HANDLE BuiltinDomainHandle = NULL;
SAM_HANDLE AccountDomainHandle = NULL;
PSID AccountDomainSid = NULL;
PSID UserSid = NULL;
PULONG RelativeIds = NULL;
PSID_NAME_USE Use = NULL;
ULONG BuiltinMemberCount = 0;
ULONG AccountMemberCount = 0;
PULONG BuiltinAliases = NULL;
PULONG AccountAliases = NULL;
PUNICODE_STRING BuiltinNames = NULL;
PUNICODE_STRING AccountNames = NULL;
PLOCALGROUP_USERS_INFO_0 Buffer = NULL;
ULONG Size;
ULONG Count = 0;
ULONG Index;
ULONG i;
LPWSTR StrPtr;
NET_API_STATUS ApiStatus = NERR_Success;
NTSTATUS Status = STATUS_SUCCESS;
FIXME("(%s, %s, %d, %08x, %p %d, %p, %p) stub!\n",
TRACE("(%s, %s, %d, %08x, %p %d, %p, %p) stub!\n",
debugstr_w(servername), debugstr_w(username), level, flags, bufptr,
prefmaxlen, entriesread, totalentries);
status = NETAPI_ValidateServername(servername);
if (status != NERR_Success)
return status;
if (level != 0)
return ERROR_INVALID_LEVEL;
size = UNLEN + 1;
NetApiBufferAllocate(size * sizeof(WCHAR), (LPVOID*)&currentuser);
GetUserNameW(currentuser, &size);
if (flags & ~LG_INCLUDE_INDIRECT)
return ERROR_INVALID_PARAMETER;
if (lstrcmpiW(username, currentuser) && NETAPI_FindUser(username))
if (flags & LG_INCLUDE_INDIRECT)
{
NetApiBufferFree(currentuser);
return NERR_UserNotFound;
WARN("The flag LG_INCLUDE_INDIRECT is not supported yet!\n");
}
NetApiBufferFree(currentuser);
*totalentries = 1;
size = sizeof(*info) + sizeof(admins);
if (servername != NULL)
RtlInitUnicodeString(&ServerName, servername);
if(prefmaxlen < size)
status = ERROR_MORE_DATA;
else
status = NetApiBufferAllocate(size, (LPVOID*)&info);
RtlInitUnicodeString(&UserName, username);
if(status != NERR_Success)
/* Connect to the SAM Server */
Status = SamConnect((servername != NULL) ? &ServerName : NULL,
&ServerHandle,
SAM_SERVER_CONNECT | SAM_SERVER_LOOKUP_DOMAIN,
NULL);
if (!NT_SUCCESS(Status))
{
ERR("SamConnect failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/* Open the Builtin Domain */
Status = OpenBuiltinDomain(ServerHandle,
DOMAIN_LOOKUP | DOMAIN_GET_ALIAS_MEMBERSHIP,
&BuiltinDomainHandle);
if (!NT_SUCCESS(Status))
{
ERR("OpenBuiltinDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/* Get the Account Domain SID */
Status = GetAccountDomainSid((servername != NULL) ? &ServerName : NULL,
&AccountDomainSid);
if (!NT_SUCCESS(Status))
{
ERR("GetAccountDomainSid failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/* Open the Account Domain */
Status = SamOpenDomain(ServerHandle,
DOMAIN_LOOKUP | DOMAIN_GET_ALIAS_MEMBERSHIP,
AccountDomainSid,
&AccountDomainHandle);
if (!NT_SUCCESS(Status))
{
ERR("OpenAccountDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/* Get the RID for the given user name */
Status = SamLookupNamesInDomain(AccountDomainHandle,
1,
&UserName,
&RelativeIds,
&Use);
if (!NT_SUCCESS(Status))
{
ERR("SamLookupNamesInDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
/* Fail, if it is not a user account */
if (Use[0] != SidTypeUser)
{
ERR("Account is not a User!\n");
ApiStatus = NERR_UserNotFound;
goto done;
}
/* Build the User SID from the Account Domain SID and the users RID */
UserSid = CreateSidFromSidAndRid(AccountDomainSid,
RelativeIds[0]);
if (UserSid == NULL)
{
ERR("CreateSidFromSidAndRid failed!\n");
ApiStatus = ERROR_NOT_ENOUGH_MEMORY;
goto done;
}
/* Get alias memberships in the Builtin Domain */
Status = SamGetAliasMembership(BuiltinDomainHandle,
1,
&UserSid,
&BuiltinMemberCount,
&BuiltinAliases);
if (!NT_SUCCESS(Status))
{
ERR("SamGetAliasMembership failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
if (BuiltinMemberCount > 0)
{
/* Get the Names of the builtin alias members */
Status = SamLookupIdsInDomain(BuiltinDomainHandle,
BuiltinMemberCount,
BuiltinAliases,
&BuiltinNames,
NULL);
if (!NT_SUCCESS(Status))
{
ERR("SamLookupIdsInDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
}
/* Get alias memberships in the Account Domain */
Status = SamGetAliasMembership(AccountDomainHandle,
1,
&UserSid,
&AccountMemberCount,
&AccountAliases);
if (!NT_SUCCESS(Status))
{
ERR("SamGetAliasMembership failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
if (AccountMemberCount > 0)
{
/* Get the Names of the builtin alias members */
Status = SamLookupIdsInDomain(AccountDomainHandle,
AccountMemberCount,
AccountAliases,
&AccountNames,
NULL);
if (!NT_SUCCESS(Status))
{
ERR("SamLookupIdsInDomain failed (Status %08lx)\n", Status);
ApiStatus = NetpNtStatusToApiStatus(Status);
goto done;
}
}
/* Calculate the required buffer size */
Size = 0;
for (i = 0; i < BuiltinMemberCount; i++)
{
if (BuiltinNames[i].Length > 0)
{
Size += (sizeof(LOCALGROUP_USERS_INFO_0) + BuiltinNames[i].Length + sizeof(UNICODE_NULL));
Count++;
}
}
for (i = 0; i < AccountMemberCount; i++)
{
if (BuiltinNames[i].Length > 0)
{
Size += (sizeof(LOCALGROUP_USERS_INFO_0) + AccountNames[i].Length + sizeof(UNICODE_NULL));
Count++;
}
}
if (Size == 0)
{
ApiStatus = NERR_Success;
goto done;
}
/* Allocate buffer */
ApiStatus = NetApiBufferAllocate(Size, (LPVOID*)&Buffer);
if (ApiStatus != NERR_Success)
goto done;
ZeroMemory(Buffer, Size);
StrPtr = (LPWSTR)((INT_PTR)Buffer + Count * sizeof(LOCALGROUP_USERS_INFO_0));
/* Copy data to the allocated buffer */
Index = 0;
for (i = 0; i < BuiltinMemberCount; i++)
{
if (BuiltinNames[i].Length > 0)
{
CopyMemory(StrPtr,
BuiltinNames[i].Buffer,
BuiltinNames[i].Length);
Buffer[Index].lgrui0_name = StrPtr;
StrPtr = (LPWSTR)((INT_PTR)StrPtr + BuiltinNames[i].Length + sizeof(UNICODE_NULL));
Index++;
}
}
for (i = 0; i < AccountMemberCount; i++)
{
if (AccountNames[i].Length > 0)
{
CopyMemory(StrPtr,
AccountNames[i].Buffer,
AccountNames[i].Length);
Buffer[Index].lgrui0_name = StrPtr;
StrPtr = (LPWSTR)((INT_PTR)StrPtr + AccountNames[i].Length + sizeof(UNICODE_NULL));
Index++;
}
}
done:
if (AccountNames != NULL)
SamFreeMemory(AccountNames);
if (BuiltinNames != NULL)
SamFreeMemory(BuiltinNames);
if (AccountAliases != NULL)
SamFreeMemory(AccountAliases);
if (BuiltinAliases != NULL)
SamFreeMemory(BuiltinAliases);
if (RelativeIds != NULL)
SamFreeMemory(RelativeIds);
if (Use != NULL)
SamFreeMemory(Use);
if (UserSid != NULL)
RtlFreeHeap(RtlGetProcessHeap(), 0, UserSid);
if (AccountDomainSid != NULL)
RtlFreeHeap(RtlGetProcessHeap(), 0, AccountDomainSid);
if (AccountDomainHandle != NULL)
SamCloseHandle(AccountDomainHandle);
if (BuiltinDomainHandle != NULL)
SamCloseHandle(BuiltinDomainHandle);
if (ServerHandle != NULL)
SamCloseHandle(ServerHandle);
if (ApiStatus != NERR_Success && ApiStatus != ERROR_MORE_DATA)
{
*bufptr = NULL;
*entriesread = 0;
return status;
*totalentries = 0;
}
else
{
*entriesread = Count;
*totalentries = Count;
}
info->lgrui0_name = (LPWSTR)((LPBYTE)info + sizeof(*info));
lstrcpyW(info->lgrui0_name, admins);
*bufptr = (LPBYTE)Buffer;
*bufptr = (LPBYTE)info;
*entriesread = 1;
return NERR_Success;
return ApiStatus;
}

View file

@ -212,7 +212,7 @@ SamCloseHandle(IN SAM_HANDLE SamHandle)
NTSTATUS
NTAPI
SamConnect(IN OUT PUNICODE_STRING ServerName,
SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL,
OUT PSAM_HANDLE ServerHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes)
@ -682,7 +682,7 @@ SamGetAliasMembership(IN SAM_HANDLE DomainHandle,
SAMPR_ULONG_ARRAY Membership;
NTSTATUS Status;
TRACE("SamAliasMembership(%p %ul %p %p %p)\n",
TRACE("SamAliasMembership(%p %lu %p %p %p)\n",
DomainHandle, PassedCount, Sids, MembershipCount, Aliases);
if (Sids == NULL ||
@ -905,7 +905,7 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
IN ULONG Count,
IN PULONG RelativeIds,
OUT PUNICODE_STRING *Names,
OUT PSID_NAME_USE *Use)
OUT PSID_NAME_USE *Use OPTIONAL)
{
SAMPR_RETURNED_USTRING_ARRAY NamesBuffer = {0, NULL};
SAMPR_ULONG_ARRAY UseBuffer = {0, NULL};
@ -916,6 +916,8 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
DomainHandle, Count, RelativeIds, Names, Use);
*Names = NULL;
if (Use != NULL)
*Use = NULL;
RpcTryExcept
@ -951,13 +953,6 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
}
}
*Use = midl_user_allocate(Count * sizeof(SID_NAME_USE));
if (*Use == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
goto done;
}
for (i = 0; i < Count; i++)
{
(*Names)[i].Length = NamesBuffer.Element[i].Length;
@ -968,10 +963,20 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
NamesBuffer.Element[i].Length);
}
if (Use != NULL)
{
*Use = midl_user_allocate(Count * sizeof(SID_NAME_USE));
if (*Use == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
goto done;
}
RtlCopyMemory(*Use,
UseBuffer.Element,
Count * sizeof(SID_NAME_USE));
}
}
done:
if (!NT_SUCCESS(Status))
@ -987,7 +992,7 @@ done:
midl_user_free(*Names);
}
if (*Use != NULL)
if (Use != NULL && *Use != NULL)
midl_user_free(*Use);
}
@ -1659,8 +1664,21 @@ NTSTATUS
NTAPI
SamShutdownSamServer(IN SAM_HANDLE ServerHandle)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
NTSTATUS Status;
TRACE("(%p)\n", ServerHandle);
RpcTryExcept
{
Status = SamrShutdownSamServer((SAMPR_HANDLE)ServerHandle);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
Status = I_RpcMapWin32Status(RpcExceptionCode());
}
RpcEndExcept;
return Status;
}
/* EOF */

View file

@ -17,6 +17,46 @@ WINE_DEFAULT_DEBUG_CHANNEL(samsrv);
static SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
static GENERIC_MAPPING ServerMapping =
{
SAM_SERVER_READ,
SAM_SERVER_WRITE,
SAM_SERVER_EXECUTE,
SAM_SERVER_ALL_ACCESS
};
static GENERIC_MAPPING DomainMapping =
{
DOMAIN_READ,
DOMAIN_WRITE,
DOMAIN_EXECUTE,
DOMAIN_ALL_ACCESS
};
static GENERIC_MAPPING AliasMapping =
{
ALIAS_READ,
ALIAS_WRITE,
ALIAS_EXECUTE,
ALIAS_ALL_ACCESS
};
static GENERIC_MAPPING GroupMapping =
{
GROUP_READ,
GROUP_WRITE,
GROUP_EXECUTE,
GROUP_ALL_ACCESS
};
static GENERIC_MAPPING UserMapping =
{
USER_READ,
USER_WRITE,
USER_EXECUTE,
USER_ALL_ACCESS
};
/* FUNCTIONS *****************************************************************/
@ -68,10 +108,12 @@ void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
HeapFree(GetProcessHeap(), 0, ptr);
}
void __RPC_USER SAMPR_HANDLE_rundown(SAMPR_HANDLE hHandle)
{
}
/* Function 0 */
NTSTATUS
NTAPI
@ -85,6 +127,11 @@ SamrConnect(IN PSAMPR_SERVER_NAME ServerName,
TRACE("SamrConnect(%p %p %lx)\n",
ServerName, ServerHandle, DesiredAccess);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&ServerMapping);
/* Open the Server Object */
Status = SampOpenDbObject(NULL,
NULL,
L"SAM",
@ -100,6 +147,7 @@ SamrConnect(IN PSAMPR_SERVER_NAME ServerName,
return Status;
}
/* Function 1 */
NTSTATUS
NTAPI
@ -125,6 +173,7 @@ SamrCloseHandle(IN OUT SAMPR_HANDLE *SamHandle)
return Status;
}
/* Function 2 */
NTSTATUS
NTAPI
@ -136,6 +185,7 @@ SamrSetSecurityObject(IN SAMPR_HANDLE ObjectHandle,
return STATUS_NOT_IMPLEMENTED;
}
/* Function 3 */
NTSTATUS
NTAPI
@ -147,6 +197,7 @@ SamrQuerySecurityObject(IN SAMPR_HANDLE ObjectHandle,
return STATUS_NOT_IMPLEMENTED;
}
/* Function 4 */
NTSTATUS
NTAPI
@ -486,6 +537,10 @@ SamrOpenDomain(IN SAMPR_HANDLE ServerHandle,
TRACE("SamrOpenDomain(%p %lx %p %p)\n",
ServerHandle, DesiredAccess, DomainId, DomainHandle);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&DomainMapping);
/* Validate the server handle */
Status = SampValidateDbObject(ServerHandle,
SamDbServerObject,
@ -1653,6 +1708,10 @@ SamrCreateGroupInDomain(IN SAMPR_HANDLE DomainHandle,
TRACE("SamrCreateGroupInDomain(%p %p %lx %p %p)\n",
DomainHandle, Name, DesiredAccess, GroupHandle, RelativeId);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&GroupMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -2019,6 +2078,10 @@ SamrCreateUserInDomain(IN SAMPR_HANDLE DomainHandle,
RelativeId == NULL)
return STATUS_INVALID_PARAMETER;
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&UserMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -2473,6 +2536,10 @@ SamrCreateAliasInDomain(IN SAMPR_HANDLE DomainHandle,
TRACE("SamrCreateAliasInDomain(%p %p %lx %p %p)\n",
DomainHandle, AccountName, DesiredAccess, AliasHandle, RelativeId);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&AliasMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -2810,6 +2877,7 @@ SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle,
ULONG DataLength;
ULONG i, j;
NTSTATUS Status;
WCHAR NameBuffer[9];
TRACE("SamrGetAliasMembership(%p %p %p)\n",
DomainHandle, SidArray, Membership);
@ -2817,7 +2885,7 @@ SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle,
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
DOMAIN_LOOKUP,
DOMAIN_GET_ALIAS_MEMBERSHIP,
&DomainObject);
if (!NT_SUCCESS(Status))
return Status;
@ -2835,6 +2903,13 @@ SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle,
KEY_READ,
&MembersKeyHandle);
TRACE("SampRegOpenKey returned %08lX\n", Status);
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
{
Status = STATUS_SUCCESS;
goto done;
}
if (!NT_SUCCESS(Status))
goto done;
@ -2859,13 +2934,21 @@ TRACE("Open %S\n", MemberSidString);
MaxSidCount += ValueCount;
}
NtClose(MemberKeyHandle);
}
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
Status = STATUS_SUCCESS;
LocalFree(MemberSidString);
}
if (MaxSidCount == 0)
{
Status = STATUS_SUCCESS;
goto done;
}
TRACE("Maximum sid count: %lu\n", MaxSidCount);
RidArray = midl_user_allocate(MaxSidCount * sizeof(ULONG));
if (RidArray == NULL)
@ -2895,14 +2978,18 @@ TRACE("Open %S\n", MemberSidString);
for (j = 0; j < ValueCount; j++)
{
DataLength = sizeof(ULONG);
DataLength = 9 * sizeof(WCHAR);
Status = SampRegEnumerateValue(MemberKeyHandle,
j,
NameBuffer,
&DataLength,
NULL,
NULL,
NULL,
(PVOID)&RidArray[j],
&DataLength);
NULL);
if (NT_SUCCESS(Status))
{
RidArray[j] = wcstoul(NameBuffer, NULL, 16);
}
}
}
@ -2912,7 +2999,6 @@ TRACE("Open %S\n", MemberSidString);
LocalFree(MemberSidString);
}
done:
if (NT_SUCCESS(Status))
{
@ -3452,6 +3538,10 @@ SamrOpenGroup(IN SAMPR_HANDLE DomainHandle,
TRACE("SamrOpenGroup(%p %lx %lx %p)\n",
DomainHandle, DesiredAccess, GroupId, GroupHandle);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&GroupMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -3900,6 +3990,10 @@ SamrOpenAlias(IN SAMPR_HANDLE DomainHandle,
TRACE("SamrOpenAlias(%p %lx %lx %p)\n",
DomainHandle, DesiredAccess, AliasId, AliasHandle);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&AliasMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -4565,6 +4659,10 @@ SamrOpenUser(IN SAMPR_HANDLE DomainHandle,
TRACE("SamrOpenUser(%p %lx %lx %p)\n",
DomainHandle, DesiredAccess, UserId, UserHandle);
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&UserMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -5903,6 +6001,181 @@ done:
}
static NTSTATUS
SampSetUserAll(PSAM_DB_OBJECT UserObject,
PSAMPR_USER_INFO_BUFFER Buffer)
{
SAM_USER_FIXED_DATA FixedData;
ULONG Length = 0;
ULONG WhichFields;
NTSTATUS Status = STATUS_SUCCESS;
WhichFields = Buffer->All.WhichFields;
if (WhichFields & USER_ALL_USERNAME)
{
Status = SampSetObjectAttribute(UserObject,
L"Name",
REG_SZ,
Buffer->All.UserName.Buffer,
Buffer->All.UserName.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_FULLNAME)
{
Status = SampSetObjectAttribute(UserObject,
L"FullName",
REG_SZ,
Buffer->All.FullName.Buffer,
Buffer->All.FullName.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_ADMINCOMMENT)
{
Status = SampSetObjectAttribute(UserObject,
L"AdminComment",
REG_SZ,
Buffer->All.AdminComment.Buffer,
Buffer->All.AdminComment.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_USERCOMMENT)
{
Status = SampSetObjectAttribute(UserObject,
L"UserComment",
REG_SZ,
Buffer->All.UserComment.Buffer,
Buffer->All.UserComment.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_HOMEDIRECTORY)
{
Status = SampSetObjectAttribute(UserObject,
L"HomeDirectory",
REG_SZ,
Buffer->All.HomeDirectory.Buffer,
Buffer->All.HomeDirectory.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_HOMEDIRECTORYDRIVE)
{
Status = SampSetObjectAttribute(UserObject,
L"HomeDirectoryDrive",
REG_SZ,
Buffer->All.HomeDirectoryDrive.Buffer,
Buffer->All.HomeDirectoryDrive.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_SCRIPTPATH)
{
Status = SampSetObjectAttribute(UserObject,
L"ScriptPath",
REG_SZ,
Buffer->All.ScriptPath.Buffer,
Buffer->All.ScriptPath.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_PROFILEPATH)
{
Status = SampSetObjectAttribute(UserObject,
L"ProfilePath",
REG_SZ,
Buffer->All.ProfilePath.Buffer,
Buffer->All.ProfilePath.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_WORKSTATIONS)
{
Status = SampSetObjectAttribute(UserObject,
L"WorkStations",
REG_SZ,
Buffer->All.WorkStations.Buffer,
Buffer->All.WorkStations.MaximumLength);
if (!NT_SUCCESS(Status))
goto done;
}
if (WhichFields & USER_ALL_PARAMETERS)
{
Status = SampSetObjectAttribute(UserObject,
L"Parameters",
REG_SZ,
Buffer->All.Parameters.Buffer,
Buffer->All.Parameters.MaximumLength);
}
if (WhichFields & (USER_ALL_PRIMARYGROUPID |
USER_ALL_ACCOUNTEXPIRES |
USER_ALL_USERACCOUNTCONTROL |
USER_ALL_COUNTRYCODE |
USER_ALL_CODEPAGE))
{
Length = sizeof(SAM_USER_FIXED_DATA);
Status = SampGetObjectAttribute(UserObject,
L"F",
NULL,
(PVOID)&FixedData,
&Length);
if (!NT_SUCCESS(Status))
goto done;
if (WhichFields & USER_ALL_PRIMARYGROUPID)
FixedData.PrimaryGroupId = Buffer->All.PrimaryGroupId;
if (WhichFields & USER_ALL_ACCOUNTEXPIRES)
{
FixedData.AccountExpires.LowPart = Buffer->All.AccountExpires.LowPart;
FixedData.AccountExpires.HighPart = Buffer->All.AccountExpires.HighPart;
}
if (WhichFields & USER_ALL_USERACCOUNTCONTROL)
FixedData.UserAccountControl = Buffer->All.UserAccountControl;
if (WhichFields & USER_ALL_COUNTRYCODE)
FixedData.CountryCode = Buffer->Preferences.CountryCode;
if (WhichFields & USER_ALL_CODEPAGE)
FixedData.CodePage = Buffer->Preferences.CodePage;
Status = SampSetObjectAttribute(UserObject,
L"F",
REG_BINARY,
&FixedData,
Length);
if (!NT_SUCCESS(Status))
goto done;
}
/*
FIXME:
USER_ALL_LOGONHOURS
USER_ALL_NTPASSWORDPRESENT
USER_ALL_LMPASSWORDPRESENT
USER_ALL_PASSWORDEXPIRED
*/
done:
return Status;
}
/* Function 37 */
NTSTATUS
NTAPI
@ -5931,6 +6204,7 @@ SamrSetInformationUser(IN SAMPR_HANDLE UserHandle,
case UserWorkStationsInformation:
case UserControlInformation:
case UserExpiresInformation:
case UserParametersInformation:
DesiredAccess = USER_WRITE_ACCOUNT;
break;
@ -5947,6 +6221,10 @@ SamrSetInformationUser(IN SAMPR_HANDLE UserHandle,
DesiredAccess = USER_FORCE_PASSWORD_CHANGE;
break;
case UserAllInformation:
DesiredAccess = 0; /* FIXME */
break;
default:
return STATUS_INVALID_INFO_CLASS;
}
@ -6086,8 +6364,20 @@ SamrSetInformationUser(IN SAMPR_HANDLE UserHandle,
break;
// case UserInternal1Information:
// case UserParametersInformation:
// case UserAllInformation:
case UserParametersInformation:
Status = SampSetObjectAttribute(UserObject,
L"Parameters",
REG_SZ,
Buffer->Parameters.Parameters.Buffer,
Buffer->Parameters.Parameters.MaximumLength);
break;
case UserAllInformation:
Status = SampSetUserAll(UserObject,
Buffer);
break;
// case UserInternal4Information:
// case UserInternal5Information:
// case UserInternal4InformationNew:
@ -6100,6 +6390,7 @@ SamrSetInformationUser(IN SAMPR_HANDLE UserHandle,
return Status;
}
/* Function 38 */
NTSTATUS
NTAPI
@ -6285,6 +6576,10 @@ SamrCreateUser2InDomain(IN SAMPR_HANDLE DomainHandle,
AccountType != USER_TEMP_DUPLICATE_ACCOUNT)
return STATUS_INVALID_PARAMETER;
/* Map generic access rights */
RtlMapGenericMask(&DesiredAccess,
&UserMapping);
/* Validate the domain handle */
Status = SampValidateDbObject(DomainHandle,
SamDbDomainObject,
@ -6639,6 +6934,7 @@ SamrConnect2(IN PSAMPR_SERVER_NAME ServerName,
return STATUS_NOT_IMPLEMENTED;
}
/* Function 58 */
NTSTATUS
NTAPI
@ -6646,10 +6942,14 @@ SamrSetInformationUser2(IN SAMPR_HANDLE UserHandle,
IN USER_INFORMATION_CLASS UserInformationClass,
IN PSAMPR_USER_INFO_BUFFER Buffer)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
TRACE("(%p %lu %p)\n", UserHandle, UserInformationClass, Buffer);
return SamrSetInformationUser(UserHandle,
UserInformationClass,
Buffer);
}
/* Function 59 */
NTSTATUS
NTAPI

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -143,7 +143,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -159,7 +159,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Exécuter"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -158,7 +158,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -156,7 +156,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 9, "MS UI Gothic"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -163,7 +163,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -158,7 +158,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -158,7 +158,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -155,7 +155,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -146,7 +146,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -145,7 +145,7 @@ END
IDD_RUN DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
CAPTION "Run"
FONT 8, "MS Shell Dlg"
BEGIN
ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE

View file

@ -1,4 +1,3 @@
# Functions exported by the WinXP SP3 shell32.dll (6.0.2900.5686)
2 stdcall SHChangeNotifyRegister(long long long long long ptr)
3 stdcall SHDefExtractIconA(str long long ptr ptr long)
4 stdcall SHChangeNotifyDeregister(long)
@ -27,7 +26,7 @@
27 stdcall ILSaveToStream(ptr ptr)
28 stdcall SHILCreateFromPath(ptr ptr ptr) SHILCreateFromPathAW
29 stdcall -noname PathIsRoot(ptr) PathIsRootAW
30 stdcall -noname PathBuildRoot(ptr long) PathBuildRootAW
30 stdcall -noname PathBuildRoot(ptr long) PathBuildRootAW # FIXME: should be PathBuildRootW
31 stdcall -noname PathFindExtension(wstr) PathFindExtensionW
32 stdcall -noname PathAddBackslash(wstr) PathAddBackslashW
33 stdcall -noname PathRemoveBlanks(wstr) PathRemoveBlanksW
@ -41,7 +40,6 @@
41 stdcall IsLFNDriveA(str)
42 stdcall IsLFNDriveW(wstr)
43 stdcall PathIsExe(ptr) PathIsExeAW
44 stdcall OpenAs_RunDLL(long long str long) OpenAs_RunDLLA
45 stdcall -noname PathFileExists(ptr) PathFileExistsAW # Fixme
46 stdcall -noname PathMatchSpec(wstr wstr) PathMatchSpecW
47 stdcall PathMakeUniqueName(ptr long ptr ptr ptr) PathMakeUniqueNameAW
@ -50,7 +48,7 @@
50 stdcall -noname PathStripToRoot(wstr) PathStripToRootW
51 stdcall PathResolve(str long long) PathResolveAW
52 stdcall -noname PathGetArgs(wstr) PathGetArgsW
53 stdcall -noname IsSuspendAllowed()
53 stdcall -noname IsSuspendAllowed() # FIXME: Wine says DoEnvironmentSubst
54 stdcall -noname LogoffWindowsDialog(ptr)
55 stdcall -noname PathQuoteSpaces(wstr) PathQuoteSpacesW
56 stdcall -noname PathUnquoteSpaces(wstr) PathUnquoteSpacesW
@ -68,27 +66,26 @@
68 stdcall SHGetSetSettings(ptr long long)
69 stdcall -noname SHGetNetResource(ptr long ptr long)
70 stdcall -noname SHCreateDefClassObject(long long long long long)
71 stdcall -noname Shell_GetImageLists(ptr ptr)
71 stdcall Shell_GetImageLists(ptr ptr)
72 stdcall Shell_GetCachedImageIndex(ptr ptr long) Shell_GetCachedImageIndexAW
73 stdcall SHShellFolderView_Message(long long long)
74 stdcall SHCreateStdEnumFmtEtc(long ptr ptr)
75 stdcall PathYetAnotherMakeUniqueName(ptr wstr wstr wstr)
76 stdcall DragQueryInfo(ptr ptr)
76 stdcall -noname DragQueryInfo(ptr ptr)
77 stdcall SHMapPIDLToSystemImageListIndex(ptr ptr ptr)
78 stdcall -noname OleStrToStrN(str long wstr long) OleStrToStrNAW # Fixme
79 stdcall -noname StrToOleStrN(wstr long str long) StrToOleStrNAW # Fixme
80 stdcall SHOpenPropSheetW(wstr ptr long ptr ptr ptr wstr)
81 stdcall OpenAs_RunDLLA(long long str long)
82 stdcall -noname DDECreatePostNotify(ptr)
83 stdcall -noname CIDLData_CreateFromIDArray(ptr long ptr ptr)
84 stdcall SHIsBadInterfacePtr(ptr long) # Fixme
84 stdcall -noname SHIsBadInterfacePtr(ptr long) # Fixme
85 stdcall OpenRegStream(long str str long) shlwapi.SHOpenRegStreamA
86 stdcall -noname SHRegisterDragDrop(long ptr)
87 stdcall -noname SHRevokeDragDrop(long)
88 stdcall SHDoDragDrop(long ptr ptr long ptr)
89 stdcall SHCloneSpecialIDList(long long long)
90 stdcall SHFindFiles(ptr ptr)
91 stdcall SHFindComputer(ptr ptr)
91 stdcall -noname SHFindComputer(ptr ptr)
92 stdcall PathGetShortPath(ptr) PathGetShortPathAW
93 stdcall -noname Win32CreateDirectory(wstr ptr) Win32CreateDirectoryW
94 stdcall -noname Win32RemoveDirectory(wstr) Win32RemoveDirectoryW
@ -98,31 +95,12 @@
98 stdcall SHGetRealIDL(ptr ptr ptr)
99 stdcall -noname SetAppStartingCursor(long long) # Fixme
100 stdcall SHRestricted(long)
101 stdcall OpenAs_RunDLLW(long long wstr long)
102 stdcall SHCoCreateInstance(wstr ptr long ptr ptr)
103 stdcall SignalFileOpen(long)
104 stdcall Activate_RunDLL(long ptr ptr ptr)
105 stdcall AppCompat_RunDLLW(ptr ptr wstr long)
106 stdcall CheckEscapesA(str long)
107 stdcall CheckEscapesW(wstr long)
108 stdcall CommandLineToArgvW(wstr ptr)
109 stdcall Control_FillCache_RunDLL(long long long long) Control_FillCache_RunDLLA
110 stdcall Control_FillCache_RunDLLA(long long long long)
111 stdcall Control_FillCache_RunDLLW(long long long long)
112 stdcall Control_RunDLL(ptr ptr str long) Control_RunDLLA
113 stdcall Control_RunDLLA(ptr ptr str long)
114 stdcall Control_RunDLLAsUserW(ptr ptr wstr long)
115 stdcall Control_RunDLLW(ptr ptr wstr long)
@ stdcall -private DllCanUnloadNow()
@ stdcall -private DllGetClassObject(ptr ptr ptr)
118 stdcall DllGetVersion(ptr)
103 stdcall SignalFileOpen(ptr)
119 stdcall IsLFNDrive(ptr) IsLFNDriveAW
@ stdcall -private DllInstall(long wstr)
121 stdcall SHFlushClipboard()
122 stdcall -noname RunDLL_CallEntry16(long long long str long) # Fixme #name wrong?
123 stdcall -noname SHFreeUnusedLibraries()
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
126 stdcall -noname SHOutOfMemoryMessageBox(long long long) # Fixme
127 stdcall -noname SHWinHelp(long long long long)
128 stdcall -noname SHDllGetClassObject(ptr ptr ptr) DllGetClassObject
@ -130,24 +108,14 @@
130 stdcall -noname DAD_DragEnter(long)
131 stdcall DAD_DragEnterEx(long double)
132 stdcall DAD_DragLeave()
133 stdcall DoEnvironmentSubstA(str str)
134 stdcall DAD_DragMove(double)
135 stdcall DoEnvironmentSubstW(wstr wstr)
136 stdcall DAD_SetDragImage(long long)
137 stdcall DAD_ShowDragImage(long)
138 stdcall DragAcceptFiles(long long)
139 stdcall DragFinish(long)
140 stdcall DragQueryFile(long long ptr long) DragQueryFileA
141 stdcall DragQueryFileA(long long ptr long)
142 stdcall DragQueryFileAorW(ptr long wstr long long long)
143 stdcall DragQueryFileW(long long ptr long)
144 stdcall DragQueryPoint(long ptr)
145 stdcall -noname PathFindOnPath(wstr wstr) PathFindOnPathW
146 stdcall -noname RLBuildListOfPaths()
147 stdcall SHCLSIDFromString(long long) SHCLSIDFromStringAW
148 stdcall SHMapIDListToImageListIndexAsync(ptr ptr ptr long ptr ptr ptr ptr ptr)
149 stdcall SHFind_InitMenuPopup(long long long long)
150 stdcall DuplicateIcon(long long)
151 stdcall SHLoadOLE(long)
152 stdcall ILGetSize(ptr)
153 stdcall ILGetNext(ptr)
@ -157,7 +125,7 @@
157 stdcall ILCreateFromPath(ptr) ILCreateFromPathAW
158 stdcall -noname PathGetExtension(wstr long long) SHPathGetExtensionW
159 stdcall -noname PathIsDirectory(wstr) PathIsDirectoryW
160 stdcall SHNetConnectionDialog(ptr wstr long) # Fixme
160 stdcall -noname SHNetConnectionDialog(ptr wstr long) # Fixme
161 stdcall SHRunControlPanel(long long)
162 stdcall SHSimpleIDListFromPath(ptr) SHSimpleIDListFromPathAW # Fixme
163 stdcall -noname StrToOleStr(wstr str) StrToOleStrAW # Fixme
@ -179,8 +147,8 @@
179 stdcall SHGetNewLinkInfoA(str str ptr long long)
180 stdcall SHGetNewLinkInfoW(wstr wstr ptr long long)
181 stdcall -noname RegisterShellHook(long long)
182 varargs ShellMessageBoxA(long long str str long)
183 varargs ShellMessageBoxW(long long wstr wstr long)
182 varargs ShellMessageBoxW(long long wstr wstr long)
183 varargs ShellMessageBoxA(long long str str long)
184 stdcall -noname ArrangeWindows(long long long long long)
185 stdcall -noname SHHandleDiskFull(ptr long) # Fixme
186 stdcall -noname ILGetDisplayNameEx(ptr ptr ptr long)
@ -196,16 +164,13 @@
196 stdcall SHAlloc(long)
197 stdcall -noname SHGlobalDefect(long)
198 stdcall -noname SHAbortInvokeCommand()
199 stdcall ExtractAssociatedIconA(long str ptr)
# FIXME: Wine has SHGetFileIcon/SHLocalAlloc/SHLocalFree/SHLocalReAlloc from 199-202
200 stdcall -noname SHCreateDesktop(ptr)
201 stdcall -noname SHDesktopMessageLoop(ptr)
202 stub -noname DDEHandleViewFolderNotify
203 stdcall -noname AddCommasW(long wstr)
204 stdcall -noname ShortSizeFormatW(double)
205 stdcall Printer_LoadIconsW(wstr ptr ptr)
206 stdcall ExtractAssociatedIconExA(long str long long)
207 stdcall ExtractAssociatedIconExW(long wstr long long)
208 stdcall ExtractAssociatedIconW(long wstr ptr)
205 stdcall -noname Printer_LoadIconsW(wstr ptr ptr)
209 stdcall -noname Int64ToString(double wstr long long ptr long) # Fixme
210 stdcall -noname LargeIntegerToString(ptr wstr long long ptr long) # Fixme
211 stdcall -noname Printers_GetPidl(ptr str) # Fixme
@ -213,20 +178,6 @@
213 stdcall -noname Printers_RegisterWindowW(wstr long ptr ptr)
214 stdcall -noname Printers_UnregisterWindow(long long)
215 stdcall -noname SHStartNetConnectionDialog(long str long)
216 stdcall ExtractIconA(long str long)
217 stdcall ExtractIconEx(ptr long ptr ptr long) ExtractIconExA
218 stdcall ExtractIconExA(str long ptr ptr long)
219 stdcall ExtractIconExW(wstr long ptr ptr long)
220 stdcall ExtractIconResInfoA(ptr str long ptr ptr)
221 stdcall ExtractIconResInfoW(ptr wstr long ptr ptr)
222 stdcall ExtractIconW(long wstr long)
223 stdcall ExtractVersionResource16W(wstr ptr)
224 stdcall FindExeDlgProc(ptr long ptr ptr)
225 stdcall FindExecutableA(str str ptr)
226 stdcall FindExecutableW(wstr wstr ptr)
227 stdcall FreeIconList(long)
228 stdcall InternalExtractIconListA(ptr str ptr)
229 stdcall InternalExtractIconListW(ptr wstr ptr)
230 stdcall -noname FirstUserLogon(wstr wstr)
231 stdcall -noname SHSetFolderPathA(long ptr long str)
232 stdcall -noname SHSetFolderPathW(long ptr long wstr)
@ -235,7 +186,6 @@
235 stdcall -noname SHOpenEffectiveToken(ptr)
236 stdcall -noname SHTestTokenPrivilegeW(ptr ptr)
237 stdcall -noname SHShouldShowWizards(ptr)
238 stdcall Options_RunDLL(ptr ptr str long)
239 stdcall PathIsSlowW(wstr long)
240 stdcall PathIsSlowA(str long)
241 stdcall -noname SHGetUserDisplayName(wstr ptr)
@ -252,148 +202,10 @@
252 stdcall -noname PathIsURL(wstr) shlwapi.PathIsURLW
253 stub -noname SHIsCurrentProcessConsoleSession
254 stub -noname DisconnectWindowsDialog
255 stdcall Options_RunDLLA(ptr ptr str long)
256 stdcall SHCreateShellFolderView(ptr ptr)
257 stdcall -noname SHGetShellFolderViewCB(ptr)
258 stdcall -noname LinkWindow_RegisterClass()
259 stdcall -noname LinkWindow_UnregisterClass()
260 stdcall Options_RunDLLW(ptr ptr wstr long)
261 stdcall PrintersGetCommand_RunDLL(ptr ptr wstr long)
262 stdcall PrintersGetCommand_RunDLLA(ptr ptr str long)
263 stdcall PrintersGetCommand_RunDLLW(ptr ptr wstr long)
264 stdcall RealShellExecuteA(ptr str str str str str str str long ptr)
265 stdcall RealShellExecuteExA(ptr str str str str str str str long ptr long)
266 stdcall RealShellExecuteExW(ptr str str str str str str str long ptr long)
267 stdcall RealShellExecuteW(ptr wstr wstr wstr wstr wstr wstr wstr long ptr)
268 stdcall RegenerateUserEnvironment(ptr long)
269 stdcall SHAddToRecentDocs(long ptr)
270 stdcall SHAppBarMessage(long ptr)
271 stdcall SHBindToParent(ptr ptr ptr ptr)
272 stdcall SHBrowseForFolder(ptr) SHBrowseForFolderA
273 stdcall SHBrowseForFolderA(ptr)
274 stdcall SHBrowseForFolderW(ptr)
275 stdcall SHChangeNotify(long long ptr ptr)
276 stdcall SHChangeNotifySuspendResume(long ptr long long)
277 stdcall SHCreateDirectoryExA(long str ptr)
278 stdcall SHCreateDirectoryExW(long wstr ptr)
279 stub SHCreateLocalServerRunDll
280 stdcall SHCreateProcessAsUserW(ptr)
281 stdcall SHCreateQueryCancelAutoPlayMoniker(ptr)
282 stdcall SHCreateShellItem(ptr ptr ptr ptr)
283 stdcall SHEmptyRecycleBinA(long str long)
284 stdcall SHEmptyRecycleBinW(long wstr long)
285 stub SHEnableServiceObject
286 stub SHEnumerateUnreadMailAccountsW
287 stdcall SHExtractIconsW(wstr long long long ptr ptr long long) user32.PrivateExtractIconsW
288 stdcall SHFileOperation(ptr) SHFileOperationA
289 stdcall SHFileOperationA(ptr)
290 stdcall SHFileOperationW(ptr)
291 stdcall SHFormatDrive(long long long long)
292 stdcall SHFreeNameMappings(ptr)
293 stdcall SHGetDataFromIDListA(ptr ptr long ptr long)
294 stdcall SHGetDataFromIDListW(ptr ptr long ptr long)
295 stdcall SHGetDesktopFolder(ptr)
296 stdcall SHGetDiskFreeSpaceA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
297 stdcall SHGetDiskFreeSpaceExA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
298 stdcall SHGetDiskFreeSpaceExW(wstr ptr ptr ptr) kernel32.GetDiskFreeSpaceExW
299 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfoA
300 stdcall SHGetFileInfoA(ptr long ptr long long)
301 stdcall SHGetFileInfoW(ptr long ptr long long)
302 stdcall SHGetFolderLocation(long long long long ptr)
303 stdcall SHGetFolderPathA(long long long long ptr)
304 stdcall SHGetFolderPathAndSubDirA(long long long long str ptr)
305 stdcall SHGetFolderPathAndSubDirW(long long long long wstr ptr)
306 stdcall SHGetFolderPathW(long long long long ptr)
307 stdcall SHGetIconOverlayIndexA(str long)
308 stdcall SHGetIconOverlayIndexW(wstr long)
309 stdcall SHGetInstanceExplorer(long)
310 stdcall SHGetMalloc(ptr)
311 stdcall SHGetNewLinkInfo(str str ptr long long) SHGetNewLinkInfoA
312 stdcall SHGetPathFromIDList(ptr ptr) SHGetPathFromIDListA
313 stdcall SHGetPathFromIDListA(ptr ptr)
314 stdcall SHGetPathFromIDListW(ptr ptr)
315 stdcall SHGetSettings(ptr long)
316 stdcall SHGetSpecialFolderLocation(long long ptr)
317 stdcall SHGetSpecialFolderPathA(long ptr long long)
318 stdcall SHGetSpecialFolderPathW(long ptr long long)
319 stdcall SHGetUnreadMailCountW (long wstr long ptr wstr long)
320 stdcall SHHelpShortcuts_RunDLL(long long long long) SHHelpShortcuts_RunDLLA
321 stdcall SHHelpShortcuts_RunDLLA(long long long long)
322 stdcall SHHelpShortcuts_RunDLLW(long long long long)
323 stdcall SHInvokePrinterCommandA(ptr long str str long)
324 stdcall SHInvokePrinterCommandW(ptr long wstr wstr long)
325 stdcall SHIsFileAvailableOffline(wstr ptr)
326 stdcall SHLoadInProc(long)
327 stdcall SHLoadNonloadedIconOverlayIdentifiers()
328 stdcall SHOpenFolderAndSelectItems(ptr long ptr long)
329 stdcall SHParseDisplayName(wstr ptr ptr long ptr)
330 stdcall SHPathPrepareForWriteA(long ptr str long)
331 stdcall SHPathPrepareForWriteW(long ptr wstr long)
332 stdcall SHQueryRecycleBinA(str ptr)
333 stdcall SHQueryRecycleBinW(wstr ptr)
334 stdcall SHSetLocalizedName(wstr wstr long)
335 stdcall SHSetUnreadMailCountW (wstr long wstr)
336 stdcall SHUpdateRecycleBinIcon()
337 stdcall SheChangeDirA(str)
338 stdcall SheChangeDirExA(str)
339 stdcall SheChangeDirExW(wstr)
340 stdcall SheChangeDirW(wstr)
341 stdcall SheConvertPathW(wstr wstr long)
342 stdcall SheFullPathA(str long str)
343 stdcall SheFullPathW(wstr long wstr)
344 stdcall SheGetCurDrive()
345 stdcall SheGetDirA(long long)
346 stdcall SheGetDirExW(wstr ptr wstr)
347 stdcall SheGetDirW(long long)
348 stdcall SheGetPathOffsetW(wstr)
349 stdcall SheRemoveQuotesA(str)
350 stdcall SheRemoveQuotesW(wstr)
351 stdcall SheSetCurDrive(long)
352 stdcall SheShortenPathA(str long)
353 stdcall SheShortenPathW(wstr long)
354 stdcall ShellAboutA(long str str long)
355 stdcall ShellAboutW(long wstr wstr long)
356 stdcall ShellExec_RunDLL(ptr ptr wstr long)
357 stdcall ShellExec_RunDLLA(ptr ptr str long)
358 stdcall ShellExec_RunDLLW(ptr ptr wstr long)
359 stdcall ShellExecuteA(long str str str str long)
360 stdcall ShellExecuteEx(long) ShellExecuteExA
361 stdcall ShellExecuteExA (long)
362 stdcall ShellExecuteExW (long)
363 stdcall ShellExecuteW(long wstr wstr wstr wstr long)
364 stdcall ShellHookProc(long ptr ptr)
365 stdcall Shell_NotifyIcon(long ptr) Shell_NotifyIconA
366 stdcall Shell_NotifyIconA(long ptr)
367 stdcall Shell_NotifyIconW(long ptr)
368 stdcall StrChrA(str long) shlwapi.StrChrA
369 stdcall StrChrIA(str long) shlwapi.StrChrIA
370 stdcall StrChrIW(wstr long) shlwapi.StrChrIW
371 stdcall StrChrW(wstr long) shlwapi.StrChrW
372 stdcall StrCmpNA(str str long) shlwapi.StrCmpNA
373 stdcall StrCmpNIA(str str long) shlwapi.StrCmpNIA
374 stdcall StrCmpNIW(wstr wstr long) shlwapi.StrCmpNIW
375 stdcall StrCmpNW(wstr wstr long) shlwapi.StrCmpNW
376 stdcall StrCpyNA (ptr str long) kernel32.lstrcpynA
377 stdcall StrCpyNW(wstr wstr long) shlwapi.StrCpyNW
378 stdcall StrNCmpA(str str long) shlwapi.StrCmpNA
379 stdcall StrNCmpIA(str str long) shlwapi.StrCmpNIA
380 stdcall StrNCmpIW(wstr wstr long) shlwapi.StrCmpNIW
381 stdcall StrNCmpW(wstr wstr long) shlwapi.StrCmpNW
382 stdcall StrNCpyA (ptr str long) kernel32.lstrcpynA
383 stdcall StrNCpyW(wstr wstr long) shlwapi.StrCpyNW
384 stdcall StrRChrA(str str long) shlwapi.StrRChrA
385 stdcall StrRChrIA(str str long) shlwapi.StrRChrIA
386 stdcall StrRChrIW(str str long) shlwapi.StrRChrIW
387 stdcall StrRChrW(wstr wstr long) shlwapi.StrRChrW
388 stdcall StrRStrA(str str str)
389 stdcall StrRStrIA(str str str) shlwapi.StrRStrIA
390 stdcall StrRStrIW(wstr wstr wstr) shlwapi.StrRStrIW
391 stdcall StrRStrW(wstr wstr wstr)
392 stdcall StrStrA(str str) shlwapi.StrStrA
393 stdcall StrStrIA(str str) shlwapi.StrStrIA
394 stdcall StrStrIW(wstr wstr) shlwapi.StrStrIW
395 stdcall StrStrW(wstr wstr) shlwapi.StrStrW
396 stdcall WOWShellExecute(ptr wstr wstr wstr wstr long ptr)
520 stdcall SHAllocShared(ptr long long)
521 stdcall SHLockShared(long long)
522 stdcall SHUnlockShared(ptr)
@ -465,6 +277,195 @@
755 stdcall -noname PathIsEqualOrSubFolder(wstr wstr)
756 stub -noname DeleteFileThumbnail
@ stdcall Activate_RunDLL(long ptr ptr ptr)
@ stdcall AppCompat_RunDLLW(ptr ptr wstr long)
@ stdcall CheckEscapesA(str long)
@ stdcall CheckEscapesW(wstr long)
@ stdcall CommandLineToArgvW(wstr ptr)
@ stdcall Control_FillCache_RunDLL(long long long long) Control_FillCache_RunDLLA
@ stdcall Control_FillCache_RunDLLA(long long long long)
@ stdcall Control_FillCache_RunDLLW(long long long long)
@ stdcall Control_RunDLL(ptr ptr str long) Control_RunDLLA
@ stdcall Control_RunDLLA(ptr ptr str long)
@ stdcall Control_RunDLLAsUserW(ptr ptr wstr long)
@ stdcall Control_RunDLLW(ptr ptr wstr long)
@ stdcall -private DllCanUnloadNow()
@ stdcall -private DllGetClassObject(ptr ptr ptr)
@ stdcall -private DllGetVersion(ptr)
@ stdcall -private DllInstall(long wstr)
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
@ stdcall DoEnvironmentSubstA(str str)
@ stdcall DoEnvironmentSubstW(wstr wstr)
@ stdcall DragAcceptFiles(long long)
@ stdcall DragFinish(long)
@ stdcall DragQueryFile(long long ptr long) DragQueryFileA
@ stdcall DragQueryFileA(long long ptr long)
@ stdcall DragQueryFileAorW(ptr long wstr long long long)
@ stdcall DragQueryFileW(long long ptr long)
@ stdcall DragQueryPoint(long ptr)
@ stdcall DuplicateIcon(long long)
@ stdcall ExtractAssociatedIconA(long str ptr)
@ stdcall ExtractAssociatedIconExA(long str long long)
@ stdcall ExtractAssociatedIconExW(long wstr long long)
@ stdcall ExtractAssociatedIconW(long wstr ptr)
@ stdcall ExtractIconA(long str long)
@ stdcall ExtractIconEx(ptr long ptr ptr long) ExtractIconExA
@ stdcall ExtractIconExA(str long ptr ptr long)
@ stdcall ExtractIconExW(wstr long ptr ptr long)
@ stdcall ExtractIconResInfoA(ptr str long ptr ptr)
@ stdcall ExtractIconResInfoW(ptr wstr long ptr ptr)
@ stdcall ExtractIconW(long wstr long)
@ stdcall ExtractVersionResource16W(wstr ptr)
@ stdcall FindExecutableA(str str ptr)
@ stdcall FindExecutableW(wstr wstr ptr)
@ stdcall FindExeDlgProc(ptr long ptr ptr)
@ stdcall FreeIconList(long)
@ stdcall InternalExtractIconListA(ptr str ptr)
@ stdcall InternalExtractIconListW(ptr wstr ptr)
@ stdcall OpenAs_RunDLL(long long str long) OpenAs_RunDLLA
@ stdcall OpenAs_RunDLLA(long long str long)
@ stdcall OpenAs_RunDLLW(long long wstr long)
@ stdcall Options_RunDLL(ptr ptr str long)
@ stdcall Options_RunDLLA(ptr ptr str long)
@ stdcall Options_RunDLLW(ptr ptr wstr long)
@ stdcall PrintersGetCommand_RunDLL(ptr ptr wstr long)
@ stdcall PrintersGetCommand_RunDLLA(ptr ptr str long)
@ stdcall PrintersGetCommand_RunDLLW(ptr ptr wstr long)
@ stdcall RealShellExecuteA(ptr str str str str str str str long ptr)
@ stdcall RealShellExecuteExA(ptr str str str str str str str long ptr long)
@ stdcall RealShellExecuteExW(ptr str str str str str str str long ptr long)
@ stdcall RealShellExecuteW(ptr wstr wstr wstr wstr wstr wstr wstr long ptr)
@ stdcall RegenerateUserEnvironment(ptr long)
@ stdcall SHAddToRecentDocs(long ptr)
@ stdcall SHAppBarMessage(long ptr)
@ stdcall SHBindToParent(ptr ptr ptr ptr)
@ stdcall SHBrowseForFolder(ptr) SHBrowseForFolderA
@ stdcall SHBrowseForFolderA(ptr)
@ stdcall SHBrowseForFolderW(ptr)
@ stdcall SHChangeNotify(long long ptr ptr)
@ stdcall SHChangeNotifySuspendResume(long ptr long long)
@ stdcall SHCreateDirectoryExA(long str ptr)
@ stdcall SHCreateDirectoryExW(long wstr ptr)
@ stub SHCreateLocalServerRunDll
@ stdcall SHCreateProcessAsUserW(ptr)
@ stdcall SHCreateQueryCancelAutoPlayMoniker(ptr)
@ stdcall SHCreateShellItem(ptr ptr ptr ptr)
@ stdcall SHEmptyRecycleBinA(long str long)
@ stdcall SHEmptyRecycleBinW(long wstr long)
@ stub SHEnableServiceObject
@ stub SHEnumerateUnreadMailAccountsW
@ stdcall SHExtractIconsW(wstr long long long ptr ptr long long) user32.PrivateExtractIconsW
@ stdcall SHFileOperation(ptr) SHFileOperationA
@ stdcall SHFileOperationA(ptr)
@ stdcall SHFileOperationW(ptr)
@ stdcall SHFormatDrive(long long long long)
@ stdcall SHFreeNameMappings(ptr)
@ stdcall SHGetDataFromIDListA(ptr ptr long ptr long)
@ stdcall SHGetDataFromIDListW(ptr ptr long ptr long)
@ stdcall SHGetDesktopFolder(ptr)
@ stdcall SHGetDiskFreeSpaceA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
@ stdcall SHGetDiskFreeSpaceExA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
@ stdcall SHGetDiskFreeSpaceExW(wstr ptr ptr ptr) kernel32.GetDiskFreeSpaceExW
@ stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfoA
@ stdcall SHGetFileInfoA(ptr long ptr long long)
@ stdcall SHGetFileInfoW(ptr long ptr long long)
@ stdcall SHGetFolderLocation(long long long long ptr)
@ stdcall SHGetFolderPathA(long long long long ptr)
@ stdcall SHGetFolderPathAndSubDirA(long long long long str ptr)
@ stdcall SHGetFolderPathAndSubDirW(long long long long wstr ptr)
@ stdcall SHGetFolderPathW(long long long long ptr)
@ stdcall SHGetIconOverlayIndexA(str long)
@ stdcall SHGetIconOverlayIndexW(wstr long)
@ stdcall SHGetInstanceExplorer(long)
@ stdcall SHGetMalloc(ptr)
@ stdcall SHGetNewLinkInfo(str str ptr long long) SHGetNewLinkInfoA
@ stdcall SHGetPathFromIDList(ptr ptr) SHGetPathFromIDListA
@ stdcall SHGetPathFromIDListA(ptr ptr)
@ stdcall SHGetPathFromIDListW(ptr ptr)
@ stdcall SHGetSettings(ptr long)
@ stdcall SHGetSpecialFolderLocation(long long ptr)
@ stdcall SHGetSpecialFolderPathA(long ptr long long)
@ stdcall SHGetSpecialFolderPathW(long ptr long long)
@ stdcall SHGetUnreadMailCountW (long wstr long ptr wstr long)
@ stdcall SHHelpShortcuts_RunDLL(long long long long) SHHelpShortcuts_RunDLLA
@ stdcall SHHelpShortcuts_RunDLLA(long long long long)
@ stdcall SHHelpShortcuts_RunDLLW(long long long long)
@ stdcall SHInvokePrinterCommandA(ptr long str str long)
@ stdcall SHInvokePrinterCommandW(ptr long wstr wstr long)
@ stdcall SHIsFileAvailableOffline(wstr ptr)
@ stdcall SHLoadInProc(long)
@ stdcall SHLoadNonloadedIconOverlayIdentifiers()
@ stdcall SHOpenFolderAndSelectItems(ptr long ptr long)
@ stdcall SHParseDisplayName(wstr ptr ptr long ptr)
@ stdcall SHPathPrepareForWriteA(long ptr str long)
@ stdcall SHPathPrepareForWriteW(long ptr wstr long)
@ stdcall SHQueryRecycleBinA(str ptr)
@ stdcall SHQueryRecycleBinW(wstr ptr)
@ stdcall SHSetLocalizedName(wstr wstr long)
@ stdcall SHSetUnreadMailCountW (wstr long wstr)
@ stdcall SHUpdateRecycleBinIcon()
@ stdcall SheChangeDirA(str)
@ stdcall SheChangeDirExA(str)
@ stdcall SheChangeDirExW(wstr)
@ stdcall SheChangeDirW(wstr)
@ stdcall SheConvertPathW(wstr wstr long)
@ stdcall SheFullPathA(str long str)
@ stdcall SheFullPathW(wstr long wstr)
@ stdcall SheGetCurDrive()
@ stdcall SheGetDirA(long long)
@ stdcall SheGetDirExW(wstr ptr wstr)
@ stdcall SheGetDirW(long long)
@ stdcall SheGetPathOffsetW(wstr)
@ stdcall SheRemoveQuotesA(str)
@ stdcall SheRemoveQuotesW(wstr)
@ stdcall SheSetCurDrive(long)
@ stdcall SheShortenPathA(str long)
@ stdcall SheShortenPathW(wstr long)
@ stdcall ShellAboutA(long str str long)
@ stdcall ShellAboutW(long wstr wstr long)
@ stdcall ShellExec_RunDLL(ptr ptr wstr long)
@ stdcall ShellExec_RunDLLA(ptr ptr str long)
@ stdcall ShellExec_RunDLLW(ptr ptr wstr long)
@ stdcall ShellExecuteA(long str str str str long)
@ stdcall ShellExecuteEx(long) ShellExecuteExA
@ stdcall ShellExecuteExA (long)
@ stdcall ShellExecuteExW (long)
@ stdcall ShellExecuteW(long wstr wstr wstr wstr long)
@ stdcall ShellHookProc(long ptr ptr)
@ stdcall Shell_NotifyIcon(long ptr) Shell_NotifyIconA
@ stdcall Shell_NotifyIconA(long ptr)
@ stdcall Shell_NotifyIconW(long ptr)
@ stdcall StrChrA(str long) shlwapi.StrChrA
@ stdcall StrChrIA(str long) shlwapi.StrChrIA
@ stdcall StrChrIW(wstr long) shlwapi.StrChrIW
@ stdcall StrChrW(wstr long) shlwapi.StrChrW
@ stdcall StrCmpNA(str str long) shlwapi.StrCmpNA
@ stdcall StrCmpNIA(str str long) shlwapi.StrCmpNIA
@ stdcall StrCmpNIW(wstr wstr long) shlwapi.StrCmpNIW
@ stdcall StrCmpNW(wstr wstr long) shlwapi.StrCmpNW
@ stdcall StrCpyNA (ptr str long) kernel32.lstrcpynA
@ stdcall StrCpyNW(wstr wstr long) shlwapi.StrCpyNW
@ stdcall StrNCmpA(str str long) shlwapi.StrCmpNA
@ stdcall StrNCmpIA(str str long) shlwapi.StrCmpNIA
@ stdcall StrNCmpIW(wstr wstr long) shlwapi.StrCmpNIW
@ stdcall StrNCmpW(wstr wstr long) shlwapi.StrCmpNW
@ stdcall StrNCpyA (ptr str long) kernel32.lstrcpynA
@ stdcall StrNCpyW(wstr wstr long) shlwapi.StrCpyNW
@ stdcall StrRChrA(str str long) shlwapi.StrRChrA
@ stdcall StrRChrIA(str str long) shlwapi.StrRChrIA
@ stdcall StrRChrIW(wstr wstr long) shlwapi.StrRChrIW
@ stdcall StrRChrW(wstr wstr long) shlwapi.StrRChrW
@ stdcall StrRStrA(str str str)
@ stdcall StrRStrIA(str str str) shlwapi.StrRStrIA
@ stdcall StrRStrIW(wstr wstr wstr) shlwapi.StrRStrIW
@ stdcall StrRStrW(wstr wstr wstr)
@ stdcall StrStrA(str str) shlwapi.StrStrA
@ stdcall StrStrIA(str str) shlwapi.StrStrIA
@ stdcall StrStrIW(wstr wstr) shlwapi.StrStrIW
@ stdcall StrStrW(wstr wstr) shlwapi.StrStrW
@ stdcall WOWShellExecute(ptr str str str str long ptr)
# Functions exported by the WinVista shell32.dll
@ stdcall SHCreateDefaultContextMenu(ptr ptr ptr)
@ stdcall SHCreateDefaultExtractIcon(ptr ptr)
@ -495,6 +496,7 @@
@ stdcall FileMenu_GetItemExtent(long long)
# 4.0 (NT) and higher. Until discontinued in 5.0
# FIXME: ordinals 505-512?
@ stdcall SHRegCloseKey(long)
@ stdcall SHRegOpenKeyA(long str long)
@ stdcall SHRegOpenKeyW(long wstr long)

View file

@ -348,6 +348,7 @@ AckPageDlgProc(HWND hwndDlg,
if (HIWORD(wParam) == BN_CLICKED && IDC_VIEWGPL == LOWORD(wParam))
{
DialogBox(hDllInstance, MAKEINTRESOURCE(IDD_GPL), NULL, GplDlgProc);
SetForegroundWindow(GetParent(hwndDlg));
}
break;

View file

@ -262,7 +262,7 @@ Device_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -272,7 +272,7 @@ Device_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -282,7 +282,7 @@ Device_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* EOF */

View file

@ -148,13 +148,13 @@ PciComputeNewCurrentSettings(IN PPCI_PDO_EXTENSION PdoExtension,
/* Not used in the driver yet */
case 1:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
/* Not used in the driver yet */
case 2:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
/* A drain request */
@ -541,7 +541,8 @@ PciQueryEjectionRelations(IN PPCI_PDO_EXTENSION PdoExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
@ -599,7 +600,7 @@ PciQueryRequirements(IN PPCI_PDO_EXTENSION PdoExtension,
{
/* Have not tested this on eVb's machine yet */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Check if the requirements are actually the zero list */
@ -1522,7 +1523,7 @@ PciProcessBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* Not really handling this year */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
/* Check for PCI bridges with the ISA bit set, or required */
if ((PdoExtension) &&
@ -1532,7 +1533,7 @@ PciProcessBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* We'll need to do some legacy support */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}
else
@ -1547,7 +1548,7 @@ PciProcessBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* Again, some more legacy support we'll have to do */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}
}
@ -1557,7 +1558,7 @@ PciProcessBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* Not yet supported */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}
@ -1606,7 +1607,7 @@ PciScanBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
DPRINT1("PCI: Bus numbers have been changed! Restoring originals.\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}
@ -1668,7 +1669,7 @@ PciScanBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* Check if this PCI device is the ACPI Watchdog Device... */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Check for non-simple devices */
@ -1734,7 +1735,7 @@ PciScanBus(IN PPCI_FDO_EXTENSION DeviceExtension)
{
/* Rescan scenarios are not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Bus processing will need to happen */
@ -2197,7 +2198,7 @@ PciSetResources(IN PPCI_PDO_EXTENSION PdoExtension,
{
/* Don't have hotplug devices to test with yet, QEMU 0.14 should */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Locate the correct resource configurator for this type of device */

View file

@ -94,7 +94,7 @@ PciFdoIrpStartDevice(IN PIRP Irp,
/* These resources would only be for non-root FDOs, unhandled for now */
ASSERT(Resources->Count == 1);
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Initialize the arbiter for this FDO */
@ -112,7 +112,7 @@ PciFdoIrpStartDevice(IN PIRP Irp,
/* Unhandled for now */
ASSERT(Resources->Count == 1);
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Commit the transition to the started state */
@ -137,7 +137,7 @@ PciFdoIrpRemoveDevice(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -148,7 +148,7 @@ PciFdoIrpCancelRemoveDevice(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -159,7 +159,7 @@ PciFdoIrpStopDevice(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -170,7 +170,7 @@ PciFdoIrpQueryStopDevice(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -181,7 +181,7 @@ PciFdoIrpCancelStopDevice(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -319,7 +319,7 @@ PciFdoIrpDeviceUsageNotification(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -330,7 +330,7 @@ PciFdoIrpSurpriseRemoval(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -341,7 +341,7 @@ PciFdoIrpQueryLegacyBusInformation(IN PIRP Irp,
IN PPCI_FDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -393,7 +393,7 @@ PciGetHotPlugParameters(IN PPCI_FDO_EXTENSION FdoExtension)
/* HotPlug PCI Support not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
} while (FALSE);
/* Free the buffer and return */
@ -545,7 +545,7 @@ PciAddDevice(IN PDRIVER_OBJECT DriverObject,
{
/* Root PDO in ReactOS does not assign boot resources */
UNIMPLEMENTED;
// while (TRUE);
ASSERT(FALSE); // while (TRUE);
DPRINT1("Encountered during setup\n");
Descriptor = NULL;
}
@ -554,7 +554,7 @@ PciAddDevice(IN PDRIVER_OBJECT DriverObject,
{
/* Root PDO in ReactOS does not assign boot resources */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
else
{

View file

@ -679,7 +679,7 @@ PciGetDebugPorts(IN HANDLE DebugKey)
{
/* This function is not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}
@ -690,7 +690,7 @@ PciDriverUnload(IN PDRIVER_OBJECT DriverObject)
/* This function is not yet implemented */
DPRINT1("PCI: Unload\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
NTSTATUS

View file

@ -59,7 +59,8 @@ agpintrf_Constructor(IN PVOID DeviceExtension,
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -49,7 +49,8 @@ busintrf_Constructor(IN PVOID DeviceExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -34,7 +34,7 @@ NTAPI
Cardbus_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -42,7 +42,7 @@ NTAPI
Cardbus_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -50,7 +50,7 @@ NTAPI
Cardbus_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -58,7 +58,7 @@ NTAPI
Cardbus_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -68,7 +68,7 @@ Cardbus_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context,
IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -77,7 +77,7 @@ Cardbus_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension,
IN PPCI_COMMON_HEADER PciData)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -86,7 +86,7 @@ Cardbus_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension,
IN PPCI_COMMON_HEADER PciData)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
NTSTATUS
@ -109,7 +109,8 @@ pcicbintrf_Constructor(IN PVOID DeviceExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -51,7 +51,8 @@ devpresent_Constructor(IN PVOID DeviceExtension,
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -49,7 +49,8 @@ lddintrf_Constructor(IN PVOID DeviceExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -49,7 +49,8 @@ locintrf_Constructor(IN PVOID DeviceExtension,
{
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -52,7 +52,8 @@ PciPmeInterfaceConstructor(IN PVOID DeviceExtension,
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -54,7 +54,8 @@ routeintrf_Constructor(IN PVOID DeviceExtension,
/* Not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS

View file

@ -66,7 +66,7 @@ PciReadWriteConfigSpace(IN PPCI_FDO_EXTENSION DeviceExtension,
{
/* Currently this driver only supports the legacy HAL interface */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
else
{

View file

@ -672,7 +672,7 @@ PPBridge_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension,
IN PPCI_COMMON_HEADER PciData)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID

View file

@ -80,7 +80,7 @@ PciVerifierProfileChangeCallback(IN PVOID NotificationStructure,
{
/* This function is not yet implemented */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}

View file

@ -80,7 +80,7 @@ PciPdoWaitWake(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -101,7 +101,7 @@ PciPdoIrpQueryPower(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -219,7 +219,7 @@ PciPdoIrpRemoveDevice(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -230,7 +230,7 @@ PciPdoIrpCancelRemoveDevice(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -241,7 +241,7 @@ PciPdoIrpStopDevice(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -252,7 +252,7 @@ PciPdoIrpQueryStopDevice(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -263,7 +263,7 @@ PciPdoIrpCancelStopDevice(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -274,7 +274,7 @@ PciPdoIrpQueryInterface(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -405,7 +405,7 @@ PciPdoIrpReadConfig(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -416,7 +416,7 @@ PciPdoIrpWriteConfig(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -437,7 +437,7 @@ PciPdoIrpDeviceUsageNotification(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -448,7 +448,7 @@ PciPdoIrpSurpriseRemoval(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}
@ -459,7 +459,7 @@ PciPdoIrpQueryLegacyBusInformation(IN PIRP Irp,
IN PPCI_PDO_EXTENSION DeviceExtension)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_NOT_SUPPORTED;
}

View file

@ -192,7 +192,8 @@ PciSetPowerManagedDevicePowerState(IN PPCI_PDO_EXTENSION DeviceExtension,
{
/* We would normally re-assign resources after powerup */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
Status = STATUS_NOT_IMPLEMENTED;
}
}

View file

@ -153,7 +153,7 @@ PciIsDatacenter(VOID)
{
/* This scenario shouldn't happen yet, since SetupDD isn't used */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* Return if this is Datacenter or not */
@ -758,7 +758,8 @@ PciIsDeviceOnDebugPath(IN PPCI_PDO_EXTENSION DeviceExtension)
/* eVb has not been able to test such devices yet */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return FALSE;
}
NTSTATUS

View file

@ -631,12 +631,16 @@ IKsDevice_Create(
ASSERT(ObjectHeader);
/* find a matching a create item */
Status = FindMatchingCreateItem(&ObjectHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
Status = FindMatchingCreateItem(&ObjectHeader->ItemList,
&IoStack->FileObject->FileName,
&CreateItemEntry);
}
else
{
/* request to create a filter */
Status = FindMatchingCreateItem(&DeviceHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
Status = FindMatchingCreateItem(&DeviceHeader->ItemList,
&IoStack->FileObject->FileName,
&CreateItemEntry);
}
if (NT_SUCCESS(Status))

View file

@ -1744,31 +1744,41 @@ KsCancelRoutine(
NTSTATUS
FindMatchingCreateItem(
PLIST_ENTRY ListHead,
ULONG BufferSize,
LPWSTR Buffer,
PUNICODE_STRING String,
OUT PCREATE_ITEM_ENTRY *OutCreateItem)
{
PLIST_ENTRY Entry;
PCREATE_ITEM_ENTRY CreateItemEntry;
UNICODE_STRING RefString;
LPWSTR pStr;
ULONG Count;
/* get terminator */
pStr = wcschr(Buffer, L'\\');
/* Copy the input string */
RefString = *String;
/* sanity check */
ASSERT(pStr != NULL);
if (pStr == Buffer)
/* Check if the string starts with a backslash */
if (String->Buffer[0] == L'\\')
{
// skip slash
RtlInitUnicodeString(&RefString, ++pStr);
/* Skip backslash */
RefString.Buffer++;
RefString.Length -= sizeof(WCHAR);
}
else
{
/* get terminator */
pStr = String->Buffer;
Count = String->Length / sizeof(WCHAR);
while ((Count > 0) && (*pStr != L'\\'))
{
pStr++;
Count--;
}
/* sanity check */
ASSERT(Count != 0);
// request is for pin / node / allocator
RefString.Buffer = Buffer;
RefString.Length = BufferSize = RefString.MaximumLength = ((ULONG_PTR)pStr - (ULONG_PTR)Buffer);
RefString.Length = (USHORT)((PCHAR)pStr - (PCHAR)String->Buffer);
}
/* point to first entry */
@ -1778,7 +1788,9 @@ FindMatchingCreateItem(
while (Entry != ListHead)
{
/* get create item entry */
CreateItemEntry = (PCREATE_ITEM_ENTRY)CONTAINING_RECORD(Entry, CREATE_ITEM_ENTRY, Entry);
CreateItemEntry = (PCREATE_ITEM_ENTRY)CONTAINING_RECORD(Entry,
CREATE_ITEM_ENTRY,
Entry);
ASSERT(CreateItemEntry->CreateItem);
@ -1796,7 +1808,8 @@ FindMatchingCreateItem(
continue;
}
DPRINT("CreateItem %S Length %u Request %wZ %u\n", CreateItemEntry->CreateItem->ObjectClass.Buffer,
DPRINT("CreateItem %S Length %u Request %wZ %u\n",
CreateItemEntry->CreateItem->ObjectClass.Buffer,
CreateItemEntry->CreateItem->ObjectClass.Length,
&RefString,
RefString.Length);
@ -1809,7 +1822,9 @@ FindMatchingCreateItem(
}
/* now check if the object class is the same */
if (!RtlCompareUnicodeString(&CreateItemEntry->CreateItem->ObjectClass, &RefString, TRUE))
if (!RtlCompareUnicodeString(&CreateItemEntry->CreateItem->ObjectClass,
&RefString,
TRUE))
{
/* found matching create item */
*OutCreateItem = CreateItemEntry;
@ -1865,12 +1880,16 @@ KspCreate(
ASSERT(ObjectHeader);
/* find a matching a create item */
Status = FindMatchingCreateItem(&ObjectHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
Status = FindMatchingCreateItem(&ObjectHeader->ItemList,
&IoStack->FileObject->FileName,
&CreateItemEntry);
}
else
{
/* request to create a filter */
Status = FindMatchingCreateItem(&DeviceHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
Status = FindMatchingCreateItem(&DeviceHeader->ItemList,
&IoStack->FileObject->FileName,
&CreateItemEntry);
}
if (NT_SUCCESS(Status))

View file

@ -106,8 +106,7 @@ KspPinPropertyHandler(
NTSTATUS
FindMatchingCreateItem(
PLIST_ENTRY ListHead,
ULONG BufferSize,
LPWSTR Buffer,
PUNICODE_STRING String,
OUT PCREATE_ITEM_ENTRY *OutCreateItem);
NTSTATUS

View file

@ -773,7 +773,7 @@ RamdiskCreateDiskDevice(IN PRAMDISK_BUS_EXTENSION DeviceExtension,
FailCreate:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}
@ -1068,7 +1068,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("Get drive layout request\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_DISK_GET_PARTITION_INFO:
@ -1080,7 +1080,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("Invalid request\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
}
@ -1097,7 +1097,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("Read/Write request\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
//
@ -1107,7 +1107,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("SCSI request\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
//
@ -1117,7 +1117,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("Flush request\n");
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
//
@ -1127,7 +1127,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject,
DPRINT1("Invalid request: %lx\n", IoStackLocation->MajorFunction);
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
}
@ -1481,8 +1481,7 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
//
// We don't handle anything else yet
//
ASSERT(FALSE);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}
else
@ -1498,7 +1497,7 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
case IOCTL_CDROM_CHECK_VERIFY:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_STORAGE_GET_MEDIA_TYPES:
@ -1664,67 +1663,67 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
case IOCTL_DISK_GET_DRIVE_LAYOUT:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_DISK_GET_LENGTH_INFO:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_DISK_IS_WRITABLE:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_SCSI_MINIPORT:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_STORAGE_QUERY_PROPERTY:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_MOUNTDEV_QUERY_STABLE_GUID:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_VOLUME_SET_GPT_ATTRIBUTES:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_VOLUME_GET_GPT_ATTRIBUTES:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IOCTL_VOLUME_OFFLINE:
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
default:
@ -1793,7 +1792,7 @@ RamdiskQueryDeviceRelations(IN DEVICE_RELATION_TYPE Type,
// FIXME: TODO
//
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
//
@ -1980,7 +1979,7 @@ RamdiskDeleteDiskDevice(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}
@ -2148,37 +2147,37 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
case IRP_MN_START_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_QUERY_STOP_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_CANCEL_STOP_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_STOP_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_QUERY_REMOVE_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_CANCEL_REMOVE_DEVICE:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_REMOVE_DEVICE:
@ -2213,7 +2212,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
case IRP_MN_SURPRISE_REMOVAL:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_QUERY_ID:
@ -2224,7 +2223,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
if (DeviceExtension->Type == RamdiskDrive)
{
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
break;
@ -2236,14 +2235,14 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
if (DeviceExtension->Type == RamdiskDrive)
{
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
break;
case IRP_MN_EJECT:
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
break;
case IRP_MN_QUERY_DEVICE_TEXT:
@ -2254,7 +2253,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
if (DeviceExtension->Type == RamdiskDrive)
{
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
break;
@ -2278,7 +2277,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
if (DeviceExtension->Type == RamdiskDrive)
{
DPRINT1("PnP IRP: %lx\n", Minor);
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
break;

View file

@ -1,4 +1,4 @@
/*
/*
* PROJECT: ReactOS Universal Serial Bus Hub Driver
* LICENSE: GPL - See COPYING in the top level directory
* FILE: drivers/usb/usbhub/fdo.c

View file

@ -814,7 +814,7 @@ HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
DPRINT1("HAL: PnP Driver WMI!\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}

View file

@ -216,6 +216,8 @@ HalpTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
/* Strange, it isn't! This can happen during NMI */
DPRINT1("HAL: Trap0D while not in V86 mode\n");
KiDumpTrapFrame(TrapFrame);
ASSERT(FALSE);
while (TRUE);
}

View file

@ -229,7 +229,7 @@ HalHandleNMI(IN PVOID NmiInfo)
//
// Don't recurse
//
if (HalpNMIInProgress++) while (TRUE);
if (HalpNMIInProgress++) ASSERT(FALSE); // while (TRUE);
//
// Read the system control register B

View file

@ -182,7 +182,8 @@ KeTryToAcquireQueuedSpinLockRaiseToSynch(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
{
#ifdef CONFIG_SMP
ASSERT(FALSE); // FIXME: Unused
while (TRUE);
// while (TRUE);
return FALSE;
#endif
/* Simply raise to synch */
@ -206,7 +207,8 @@ KeTryToAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
{
#ifdef CONFIG_SMP
ASSERT(FALSE); // FIXME: Unused
while (TRUE);
// while (TRUE);
return FALSE;
#endif
/* Simply raise to dispatch */

View file

@ -26,7 +26,7 @@ HalpcGetCmosData(IN PBUS_HANDLER BusHandler,
IN ULONG Length)
{
DPRINT1("CMOS GetData\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return 0;
}
@ -40,7 +40,7 @@ HalpcSetCmosData(IN PBUS_HANDLER BusHandler,
IN ULONG Length)
{
DPRINT1("CMOS SetData\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return 0;
}

View file

@ -537,7 +537,7 @@ HalpPCIPin2ISALine(IN PBUS_HANDLER BusHandler,
IN PPCI_COMMON_CONFIG PciData)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -549,7 +549,7 @@ HalpPCIISALine2Pin(IN PBUS_HANDLER BusHandler,
IN PPCI_COMMON_CONFIG PciOldData)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
NTSTATUS
@ -643,7 +643,8 @@ HalpRegisterPciDebuggingDeviceInfo(VOID)
/* FIXME: TODO */
DPRINT1("You have implemented the KD routines for searching PCI debugger"
"devices, but you have forgotten to implement this routine\n");
while (TRUE);
UNIMPLEMENTED;
ASSERT(FALSE); // while (TRUE);
}
static ULONG NTAPI
@ -678,7 +679,7 @@ HalpAdjustPCIResourceList(IN PBUS_HANDLER BusHandler,
{
/* /PCILOCK is not yet supported */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
#endif
/* Now create the correct resource list based on the supported bus ranges */

View file

@ -812,7 +812,7 @@ HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
DPRINT1("HAL: PnP Driver WMI!\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}

View file

@ -192,6 +192,39 @@ extern "C" {
#define SAM_HOURS_PER_WEEK (24 * SAM_DAYS_PER_WEEK)
#define SAM_MINUTES_PER_WEEK (60 * SAM_HOURS_PER_WEEK)
/* Flags used in USER_ALL_INFORMATION.WhichField */
#define USER_ALL_USERNAME 0x00000001
#define USER_ALL_FULLNAME 0x00000002
#define USER_ALL_USERID 0x00000004
#define USER_ALL_PRIMARYGROUPID 0x00000008
#define USER_ALL_ADMINCOMMENT 0x00000010
#define USER_ALL_USERCOMMENT 0x00000020
#define USER_ALL_HOMEDIRECTORY 0x00000040
#define USER_ALL_HOMEDIRECTORYDRIVE 0x00000080
#define USER_ALL_SCRIPTPATH 0x00000100
#define USER_ALL_PROFILEPATH 0x00000200
#define USER_ALL_WORKSTATIONS 0x00000400
#define USER_ALL_LASTLOGON 0x00000800
#define USER_ALL_LASTLOGOFF 0x00001000
#define USER_ALL_LOGONHOURS 0x00002000
#define USER_ALL_BADPASSWORDCOUNT 0x00004000
#define USER_ALL_LOGONCOUNT 0x00008000
#define USER_ALL_PASSWORDCANCHANGE 0x00010000
#define USER_ALL_PASSWORDMUSTCHANGE 0x00020000
#define USER_ALL_PASSWORDLASTSET 0x00040000
#define USER_ALL_ACCOUNTEXPIRES 0x00080000
#define USER_ALL_USERACCOUNTCONTROL 0x00100000
#define USER_ALL_PARAMETERS 0x00200000
#define USER_ALL_COUNTRYCODE 0x00400000
#define USER_ALL_CODEPAGE 0x00800000
#define USER_ALL_NTPASSWORDPRESENT 0x01000000
#define USER_ALL_LMPASSWORDPRESENT 0x02000000
#define USER_ALL_PRIVATEDATA 0x04000000
#define USER_ALL_PASSWORDEXPIRED 0x08000000
#define USER_ALL_SECURITYDESCRIPTOR 0x10000000
#define USER_ALL_OWFPASSWORD 0x20000000
#define USER_ALL_UNDEFINED_MASK 0xC0000000
typedef PVOID SAM_HANDLE, *PSAM_HANDLE;
typedef ULONG SAM_ENUMERATE_HANDLE, *PSAM_ENUMERATE_HANDLE;
@ -345,6 +378,12 @@ typedef struct _LOGON_HOURS
PUCHAR LogonHours;
} LOGON_HOURS, *PLOGON_HOURS;
typedef struct _SR_SECURITY_DESCRIPTOR
{
ULONG Length;
PUCHAR SecurityDescriptor;
} SR_SECURITY_DESCRIPTOR, *PSR_SECURITY_DESCRIPTOR;
typedef enum _USER_INFORMATION_CLASS
{
UserGeneralInformation = 1,
@ -506,6 +545,55 @@ typedef struct _USER_CONTROL_INFORMATION
ULONG UserAccountControl;
} USER_CONTROL_INFORMATION, *PUSER_CONTROL_INFORMATION;
typedef struct _USER_EXPIRES_INFORMATION
{
LARGE_INTEGER AccountExpires;
} USER_EXPIRES_INFORMATION, *PUSER_EXPIRES_INFORMATION;
typedef struct _USER_PARAMETERS_INFORMATION
{
UNICODE_STRING Parameters;
} USER_PARAMETERS_INFORMATION, *PUSER_PARAMETERS_INFORMATION;
#include "pshpack4.h"
typedef struct _USER_ALL_INFORMATION
{
LARGE_INTEGER LastLogon;
LARGE_INTEGER LastLogoff;
LARGE_INTEGER PasswordLastSet;
LARGE_INTEGER AccountExpires;
LARGE_INTEGER PasswordCanChange;
LARGE_INTEGER PasswordMustChange;
UNICODE_STRING UserName;
UNICODE_STRING FullName;
UNICODE_STRING HomeDirectory;
UNICODE_STRING HomeDirectoryDrive;
UNICODE_STRING ScriptPath;
UNICODE_STRING ProfilePath;
UNICODE_STRING AdminComment;
UNICODE_STRING WorkStations;
UNICODE_STRING UserComment;
UNICODE_STRING Parameters;
UNICODE_STRING LmPassword;
UNICODE_STRING NtPassword;
UNICODE_STRING PrivateData;
SR_SECURITY_DESCRIPTOR SecurityDescriptor;
ULONG UserId;
ULONG PrimaryGroupId;
ULONG UserAccountControl;
ULONG WhichFields;
LOGON_HOURS LogonHours;
USHORT BadPasswordCount;
USHORT LogonCount;
USHORT CountryCode;
USHORT CodePage;
BOOLEAN LmPasswordPresent;
BOOLEAN NtPasswordPresent;
BOOLEAN PasswordExpired;
BOOLEAN PrivateDataSensitive;
} USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION;
#include "poppack.h"
#define SAM_SID_COMPATIBILITY_ALL 0
#define SAM_SID_COMPATIBILITY_LAX 1
@ -535,7 +623,7 @@ SamCloseHandle(IN SAM_HANDLE SamHandle);
NTSTATUS
NTAPI
SamConnect(IN OUT PUNICODE_STRING ServerName,
SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL,
OUT PSAM_HANDLE ServerHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes);
@ -667,7 +755,7 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
IN ULONG Count,
IN PULONG RelativeIds,
OUT PUNICODE_STRING *Names,
OUT PSID_NAME_USE *Use);
OUT PSID_NAME_USE *Use OPTIONAL);
NTSTATUS
NTAPI

View file

@ -459,12 +459,12 @@ typedef struct _USER_CONTROL_INFORMATION
{
unsigned long UserAccountControl;
} USER_CONTROL_INFORMATION, *PUSER_CONTROL_INFORMATION;
cpp_quote("#endif")
typedef struct _USER_EXPIRES_INFORMATION
{
OLD_LARGE_INTEGER AccountExpires;
} USER_EXPIRES_INFORMATION, *PUSER_EXPIRES_INFORMATION;
cpp_quote("#endif")
typedef struct _SAMPR_LOGON_HOURS
{

View file

@ -1,947 +0,0 @@
/* Pointer size */
SizeofPointer = 0x4
/* Breakpoints */
BREAKPOINT_BREAK = 0x0
BREAKPOINT_PRINT = 0x1
BREAKPOINT_PROMPT = 0x2
BREAKPOINT_LOAD_SYMBOLS = 0x3
BREAKPOINT_UNLOAD_SYMBOLS = 0x4
BREAKPOINT_COMMAND_STRING = 0x5
/* Context Frame Flags */
CONTEXT_FULL = 0x10007
CONTEXT_CONTROL = 0x10001
CONTEXT_INTEGER = 0x10002
CONTEXT_SEGMENTS = 0x10004
CONTEXT_FLOATING_POINT = 0x10008
CONTEXT_DEBUG_REGISTERS = 0x10010
/* Exception flags */
EXCEPTION_NONCONTINUABLE = 0x1
EXCEPTION_UNWINDING = 0x2
EXCEPTION_EXIT_UNWIND = 0x4
EXCEPTION_STACK_INVALID = 0x8
EXCEPTION_NESTED_CALL = 0x10
EXCEPTION_TARGET_UNWIND = 0x20
EXCEPTION_COLLIDED_UNWIND = 0x20
EXCEPTION_UNWIND = 0x6
EXCEPTION_EXECUTE_HANDLER = 0x1
EXCEPTION_CONTINUE_SEARCH = 0x0
EXCEPTION_CONTINUE_EXECUTION = 0xffffffff
EXCEPTION_CHAIN_END = 0xffffffff
/* Exception types */
ExceptionContinueExecution = 0x0
ExceptionContinueSearch = 0x1
ExceptionNestedException = 0x2
ExceptionCollidedUnwind = 0x3
/* Lock Queue */
LOCK_QUEUE_WAIT = 0x1
LOCK_QUEUE_OWNER = 0x2
LockQueueDispatcherLock = 0x0
/* Process states */
ProcessInMemory = 0x0
ProcessOutOfMemory = 0x1
ProcessInTransition = 0x2
/* Processor mode */
KernelMode = 0x0
UserMode = 0x1
/* Status codes */
STATUS_ACCESS_VIOLATION = 0xc0000005
STATUS_ASSERTION_FAILURE = 0xc0000420
STATUS_ARRAY_BOUNDS_EXCEEDED = 0xc000008c
STATUS_BAD_COMPRESSION_BUFFER = 0xc0000242
STATUS_BREAKPOINT = 0x80000003
STATUS_CALLBACK_POP_STACK = 0xc0000423
STATUS_DATATYPE_MISALIGNMENT = 0x80000002
STATUS_FLOAT_DENORMAL_OPERAND = 0xc000008d
STATUS_FLOAT_DIVIDE_BY_ZERO = 0xc000008e
STATUS_FLOAT_INEXACT_RESULT = 0xc000008f
STATUS_FLOAT_INVALID_OPERATION = 0xc0000090
STATUS_FLOAT_OVERFLOW = 0xc0000091
STATUS_FLOAT_STACK_CHECK = 0xc0000092
STATUS_FLOAT_UNDERFLOW = 0xc0000093
STATUS_FLOAT_MULTIPLE_FAULTS = 0xc00002b4
STATUS_FLOAT_MULTIPLE_TRAPS = 0xc00002b5
STATUS_GUARD_PAGE_VIOLATION = 0x80000001
STATUS_ILLEGAL_FLOAT_CONTEXT = 0xc000014a
STATUS_ILLEGAL_INSTRUCTION = 0xc000001d
STATUS_INSTRUCTION_MISALIGNMENT = 0xc00000aa
STATUS_INVALID_HANDLE = 0xc0000008
STATUS_INVALID_LOCK_SEQUENCE = 0xc000001e
STATUS_INVALID_OWNER = 0xc000005a
STATUS_INVALID_PARAMETER = 0xc000000d
STATUS_INVALID_PARAMETER_1 = 0xc00000ef
STATUS_INVALID_SYSTEM_SERVICE = 0xc000001c
STATUS_INTEGER_DIVIDE_BY_ZERO = 0xc0000094
STATUS_INTEGER_OVERFLOW = 0xc0000095
STATUS_IN_PAGE_ERROR = 0xc0000006
STATUS_KERNEL_APC = 0x100
STATUS_LONGJUMP = 0x80000026
STATUS_NO_CALLBACK_ACTIVE = 0xc0000258
STATUS_NO_EVENT_PAIR = 0xc000014e
STATUS_PRIVILEGED_INSTRUCTION = 0xc0000096
STATUS_SINGLE_STEP = 0x80000004
STATUS_STACK_BUFFER_OVERRUN = 0xc0000409
STATUS_STACK_OVERFLOW = 0xc00000fd
STATUS_SUCCESS = 0x0
STATUS_THREAD_IS_TERMINATING = 0xc000004b
STATUS_TIMEOUT = 0x102
STATUS_UNWIND = 0xc0000027
STATUS_UNWIND_CONSOLIDATE = 0x80000029
STATUS_USER_APC = 0xc0
STATUS_WAKE_SYSTEM_DEBUGGER = 0x80000007
/* TLS defines */
TLS_MINIMUM_AVAILABLE = 0x40
TLS_EXPANSION_SLOTS = 0x400
/* Thread states */
Initialized = 0x0
Ready = 0x1
Running = 0x2
Standby = 0x3
Terminated = 0x4
Waiting = 0x5
/* Wait type / reason */
WrExecutive = 0x7
WrMutex = 0x1d
WrDispatchInt = 0x1f
WrQuantumEnd = 0x1e
WrEventPair = 0xe
WaitAny = 0x1
WaitAll = 0x0
/* Interrupt object types */
InLevelSensitive = 0x0
InLatched = 0x1
/* Bug Check Codes */
APC_INDEX_MISMATCH = 0x1
INVALID_AFFINITY_SET = 0x3
INVALID_DATA_ACCESS_TRAP = 0x4
IRQL_NOT_GREATER_OR_EQUAL = 0x9
IRQL_NOT_LESS_OR_EQUAL = 0xa
NO_USER_MODE_CONTEXT = 0xe
SPIN_LOCK_ALREADY_OWNED = 0xf
SPIN_LOCK_NOT_OWNED = 0x10
THREAD_NOT_MUTEX_OWNER = 0x11
TRAP_CAUSE_UNKNOWN = 0x12
KMODE_EXCEPTION_NOT_HANDLED = 0x1e
KERNEL_APC_PENDING_DURING_EXIT = 0x20
PANIC_STACK_SWITCH = 0x2b
DATA_BUS_ERROR = 0x2e
INSTRUCTION_BUS_ERROR = 0x2f
SYSTEM_EXIT_OWNED_MUTEX = 0x39
PAGE_FAULT_WITH_INTERRUPTS_OFF = 0x49
IRQL_GT_ZERO_AT_SYSTEM_SERVICE = 0x4a
DATA_COHERENCY_EXCEPTION = 0x55
INSTRUCTION_COHERENCY_EXCEPTION = 0x56
HAL1_INITIALIZATION_FAILED = 0x61
UNEXPECTED_KERNEL_MODE_TRAP = 0x7f
NMI_HARDWARE_FAILURE = 0x80
SPIN_LOCK_INIT_FAILURE = 0x81
ATTEMPTED_SWITCH_FROM_DPC = 0xb8
/* IRQL */
PASSIVE_LEVEL = 0x0
APC_LEVEL = 0x1
DISPATCH_LEVEL = 0x2
CLOCK1_LEVEL = 0x1c
CLOCK2_LEVEL = 0x1c
IPI_LEVEL = 0x1d
POWER_LEVEL = 0x1e
PROFILE_LEVEL = 0x1b
HIGH_LEVEL = 0x1f
#ifdef NT_UP
SYNCH_LEVEL = 0x2
#else
SYNCH_LEVEL = 0x1b
#endif
/* Stack sizes */
KERNEL_STACK_SIZE = 0x3000
KERNEL_LARGE_STACK_SIZE = 0xf000
KERNEL_LARGE_STACK_COMMIT = 0x3000
/* Miscellaneous Definitions */
LOW_REALTIME_PRIORITY = 0x10
CLOCK_QUANTUM_DECREMENT = 0x3
WAIT_QUANTUM_DECREMENT = 0x1
MAXIMUM_PROCESSORS = 0x20
INITIAL_STALL_COUNT = 0x64
KI_EXCEPTION_ACCESS_VIOLATION = 0x10000004
Executive = 0x0
FALSE = 0x0
TRUE = 0x1
DBG_STATUS_CONTROL_C = 0x1
USER_SHARED_DATA = 0xffdf0000
PAGE_SIZE = 0x1000
MAXIMUM_IDTVECTOR = 0xff
PRIMARY_VECTOR_BASE = 0x30
RPL_MASK = 0x3
MODE_MASK = 0x1
NUMBER_SERVICE_TABLES = 0x2
SERVICE_NUMBER_MASK = 0xfff
SERVICE_TABLE_SHIFT = 0x8
SERVICE_TABLE_MASK = 0x10
SERVICE_TABLE_TEST = 0x10
/* KAPC */
ApType = 0x0
ApSize = 0x2
ApThread = 0x8
ApApcListEntry = 0xc
ApKernelRoutine = 0x14
ApRundownRoutine = 0x18
ApNormalRoutine = 0x1c
ApNormalContext = 0x20
ApSystemArgument1 = 0x24
ApSystemArgument2 = 0x28
ApApcStateIndex = 0x2c
ApApcMode = 0x2d
ApInserted = 0x2e
ApcObjectLength = 0x30
/* KAPC_STATE */
AsApcListHead = 0x0
AsProcess = 0x10
AsKernelApcInProgress = 0x14
AsKernelApcPending = 0x15
AsUserApcPending = 0x16
/* CLIENT_ID */
CidUniqueProcess = 0x0
CidUniqueThread = 0x4
/* RTL_CRITICAL_SECTION */
CsDebugInfo = 0x0
CsLockCount = 0x4
CsRecursionCount = 0x8
CsOwningThread = 0xc
CsLockSemaphore = 0x10
CsSpinCount = 0x14
/* RTL_CRITICAL_SECTION_DEBUG */
CsType = 0x0
CsCreatorBackTraceIndex = 0x2
CsCriticalSection = 0x4
CsProcessLocksList = 0x8
CsEntryCount = 0x10
CsContentionCount = 0x14
/* KDEVICE_QUEUE_ENTRY */
DeDeviceListEntry = 0x0
DeSortKey = 0x8
DeInserted = 0xc
DeviceQueueEntryLength = 0x10
/* KDPC */
DpType = 0x0
DpImportance = 0x1
DpNumber = 0x2
DpDpcListEntry = 0x4
DpDeferredRoutine = 0xc
DpDeferredContext = 0x10
DpSystemArgument1 = 0x14
DpSystemArgument2 = 0x18
DpDpcData = 0x1c
DpcObjectLength = 0x20
/* KDEVICE_QUEUE */
DvType = 0x0
DvSize = 0x2
DvDeviceListHead = 0x4
DvSpinLock = 0xc
DvBusy = 0x10
DeviceQueueObjectLength = 0x14
/* EXCEPTION_RECORD */
ErExceptionCode = 0x0
ErExceptionFlags = 0x4
ErExceptionRecord = 0x8
ErExceptionAddress = 0xc
ErNumberParameters = 0x10
ErExceptionInformation = 0x14
ExceptionRecordLength = 0x50
EXCEPTION_RECORD_LENGTH = 0x50
/* EPROCESS */
EpDebugPort = 0xcc
EpVdmObjects = 0x144
ExecutiveProcessObjectLength = 0x278
/* KEVENT */
EvType = 0x0
EvSize = 0x2
EvSignalState = 0x4
EvWaitListHead = 0x8
EventObjectLength = 0x10
/* FAST_MUTEX */
FmCount = 0x0
FmOwner = 0x4
FmContention = 0x8
FmOldIrql = 0x1c
/* KINTERRUPT */
InType = 0x0
InSize = 0x2
InInterruptListEntry = 0x4
InServiceRoutine = 0xc
InServiceContext = 0x10
InSpinLock = 0x14
InTickCount = 0x18
InActualLock = 0x1c
InDispatchAddress = 0x20
InVector = 0x24
InIrql = 0x28
InSynchronizeIrql = 0x29
InFloatingSave = 0x2a
InConnected = 0x2b
InNumber = 0x2c
InShareVector = 0x2d
InMode = 0x30
InServiceCount = 0x34
InDispatchCount = 0x38
InDispatchCode = 0x3c
InterruptObjectLength = 0x1e4
/* IO_STATUS_BLOCK */
IoStatus = 0x0
IoPointer = 0x0
IoInformation = 0x4
/* KNODE */
KnPfnDereferenceSListHead = 0x8
KnProcessorMask = 0x10
KnColor = 0x14
KnSeed = 0x18
KnNodeNumber = 0x19
KnFlags = 0x1a
knMmShiftedColor = 0x1e
KnFreeCount = 0x22
KnPfnDeferredList = 0x2a
KNODE_SIZE = 0x2e
/* KSPIN_LOCK_QUEUE */
LqNext = 0x0
LqLock = 0x4
/* KLOCK_QUEUE_HANDLE */
LqhNext = 0x0
LqhLock = 0x4
LqhOldIrql = 0x8
LOCK_QUEUE_HEADER_SIZE = 0xc
/* LARGE_INTEGER */
LiLowPart = 0x0
LiHighPart = 0x4
/* LIST_ENTRY */
LsFlink = 0x0
LsBlink = 0x4
/* PEB */
PeKernelCallbackTable = 0x2c
ProcessEnvironmentBlockLength = 0x230
/* KPROFILE */
PfType = 0x0
PfSize = 0x2
PfProfileListEntry = 0x4
PfProcess = 0xc
PfRangeBase = 0x10
PfRangeLimit = 0x14
PfBucketShift = 0x18
PfBuffer = 0x1c
PfSegment = 0x20
PfAffinity = 0x24
PfSource = 0x28
PfStarted = 0x2c
ProfileObjectLength = 0x30
/* PORT_MESSAGE */
PmLength = 0x0
PmZeroInit = 0x4
PmClientId = 0x8
PmProcess = 0x8
PmThread = 0xc
PmMessageId = 0x10
PmClientViewSize = 0x14
PortMessageLength = 0x18
/* KPROCESS */
PrType = 0x0
PrSize = 0x2
PrSignalState = 0x4
PrProfileListHead = 0x10
PrDirectoryTableBase = 0x18
PrLdtDescriptor = 0x20
PrIopmOffset = 0x30
PrInt21Descriptor = 0x28
PrVdmTrapcHandler = 0x4c
PrFlags = 0x6b
PrActiveProcessors = 0x34
PrKernelTime = 0x38
PrUserTime = 0x3c
PrReadyListHead = 0x40
PrSwapListEntry = 0x48
PrThreadListHead = 0x50
PrProcessLock = 0x58
PrAffinity = 0x5c
PrProcessFlags = 0x60
PrBasePriority = 0x64
PrQuantumReset = 0x65
PrState = 0x66
PrStackCount = 0x6c
KernelProcessObjectLength = 0x78
/* KQUEUE */
QuType = 0x0
QuSize = 0x2
QuSignalState = 0x4
QuEntryListHead = 0x10
QuCurrentCount = 0x18
QuMaximumCount = 0x1c
QuThreadListHead = 0x20
QueueObjectLength = 0x28
/* STRING */
StrLength = 0x0
StrMaximumLength = 0x2
StrBuffer = 0x4
/* TEB */
TeCmTeb = 0x0
TeExceptionList = 0x0
TeStackBase = 0x4
TeStackLimit = 0x8
TeFiberData = 0x10
TeSelf = 0x18
TeEnvironmentPointer = 0x1c
TeClientId = 0x20
TeActiveRpcHandle = 0x28
TeThreadLocalStoragePointer = 0x2c
TeCountOfOwnedCriticalSections = 0x38
TePeb = 0x30
TeCsrClientThread = 0x3c
TeWOW32Reserved = 0xc0
TeExceptionCode = 0x1a4
TeActivationContextStackPointer = 0x1a8
TeGdiClientPID = 0x6c0
TeGdiClientTID = 0x6c4
TeGdiThreadLocalInfo = 0x6c8
TeglDispatchTable = 0x7c4
TeglReserved1 = 0xb68
TeglReserved2 = 0xbdc
TeglSectionInfo = 0xbe0
TeglSection = 0xbe4
TeglTable = 0xbe8
TeglCurrentRC = 0xbec
TeglContext = 0xbf0
TeDeallocationStack = 0xe0c
TeTlsSlots = 0xe10
TeTlsExpansionSlots = 0xf94
TeLastErrorValue = 0x34
TeVdm = 0xf18
TeInstrumentation = 0xf2c
TeGdiBatchCount = 0xf70
TeGuaranteedStackBytes = 0xf78
TeFlsData = 0xfb4
TeSafeThunkCall = 0xfb8
ThreadEnvironmentBlockLength = 0xfbc
/* TIME_FIELDS */
TfSecond = 0xa
TfMinute = 0x8
TfHour = 0x6
TfWeekday = 0xe
TfDay = 0x4
TfMonth = 0x2
TfYear = 0x0
TfMilliseconds = 0xc
/* KTHREAD */
ThType = 0x0
ThSize = 0x2
ThLock = 0x0
ThDebugActive = 0x3
ThSignalState = 0x4
ThInitialStack = 0x18
ThStackLimit = 0x1c
ThKernelStack = 0x20
ThThreadLock = 0x24
ThAlerted = 0x5e
ThApcState = 0x28
ThPriority = 0x5b
ThSwapBusy = 0x5d
ThNextProcessor = 0x40
ThDeferredProcessor = 0x41
ThApcQueueLock = 0x44
ThContextSwitches = 0x48
ThState = 0x4c
ThNpxState = 0x4d
ThWaitIrql = 0x4e
ThWaitMode = 0x4f
ThWaitStatus = 0x50
ThWaitBlockList = 0x54
ThGateObject = 0x54
ThWaitListEntry = 0x60
ThSwapListEntry = 0x60
ThQueue = 0x68
ThWaitTime = 0x6c
ThCombinedApcDisable = 0x70
ThKernelApcDisable = 0x70
ThSpecialApcDisable = 0x72
ThTeb = 0x74
ThTimer = 0x78
ThThreadFlags = 0xa0
ThServiceTable = 0x118
ThWaitBlock = 0xa8
ThResourceIndex = 0xef
ThQueueListEntry = 0x108
ThTrapFrame = 0x110
ThCallbackStack = 0x114
ThApcStateIndex = 0x11c
ThIdealProcessor = 0x11d
ThBasePriority = 0x121
ThPriorityDecrement = 0x122
ThAdjustReason = 0x42
ThAdjustIncrement = 0x43
ThPreviousMode = 0xd7
ThSaturation = 0x123
ThFreezeCount = 0x14f
ThUserAffinity = 0x124
ThProcess = 0x128
ThAffinity = 0x12c
ThUserIdealProcessor = 0x151
ThApcStatePointer = 0x130
ThSavedApcState = 0x138
ThWaitReason = 0x5a
ThSuspendCount = 0x150
ThWin32Thread = 0x154
ThStackBase = 0x158
ThSuspendApc = 0x15c
ThPowerState = 0x18b
ThKernelTime = 0x160
ThLegoData = 0x184
ThLargeStack = 0x107
ThUserTime = 0x18c
ThSuspendSemaphore = 0x190
ThSListFaultCount = 0x1a4
ThThreadListEntry = 0x1a8
ThMutantListHead = 0x10
ThSListFaultAddress = 0x1b0
KernelThreadObjectLength = 0x1b8
ExecutiveThreadObjectLength = 0x250
/* KTIMER */
TiType = 0x0
TiSize = 0x2
TiInserted = 0x3
TiSignalState = 0x4
TiDueTime = 0x10
TiTimerListEntry = 0x18
TiDpc = 0x20
TiPeriod = 0x24
TimerObjectLength = 0x28
/* TIME */
/* KUSER_SHARED_DATA */
UsTickCountMultiplier = 0x4
UsInterruptTime = 0x8
UsSystemTime = 0x14
UsTimeZoneBias = 0x20
UsImageNumberLow = 0x2c
UsImageNumberHigh = 0x2e
UsNtSystemRoot = 0x30
UsMaxStackTraceDepth = 0x238
UsCryptoExponent = 0x23c
UsTimeZoneId = 0x240
UsLargePageMinimum = 0x244
UsReserved2 = 0x248
UsNtProductType = 0x264
UsProductTypeIsValid = 0x268
UsNtMajorVersion = 0x26c
UsNtMinorVersion = 0x270
UsProcessorFeatures = 0x274
UsReserved1 = 0x2b4
UsReserved3 = 0x2b8
UsTimeSlip = 0x2bc
UsAlternativeArchitecture = 0x2c0
UsSystemExpirationDate = 0x2c8
UsSuiteMask = 0x2d0
UsKdDebuggerEnabled = 0x2d4
UsActiveConsoleId = 0x2d8
UsDismountCount = 0x2dc
UsComPlusPackage = 0x2e0
UsLastSystemRITEventTickCount = 0x2e4
UsNumberOfPhysicalPages = 0x2e8
UsSafeBootMode = 0x2ec
UsTestRetInstruction = 0x2f8
UsSystemCall = 0x300
UsSystemCallReturn = 0x304
UsSystemCallPad = 0x308
UsTickCount = 0x320
UsTickCountQuad = 0x320
UsWow64SharedInformation = 0x340
/* KWAIT_BLOCK */
WbWaitListEntry = 0x0
WbThread = 0x8
WbObject = 0xc
WbNextWaitBlock = 0x10
WbWaitKey = 0x14
WbWaitType = 0x16
/* CR0 flags */
CR0_PE = 0x1
CR0_MP = 0x2
CR0_EM = 0x4
CR0_TS = 0x8
CR0_ET = 0x10
CR0_NE = 0x20
CR0_WP = 0x10000
CR0_AM = 0x40000
CR0_NW = 0x20000000
CR0_CD = 0x40000000
CR0_PG = 0x80000000
/* CR4 flags */
CR4_VME = 0x1
CR4_PVI = 0x2
CR4_TSD = 0x4
CR4_DE = 0x8
CR4_PSE = 0x10
CR4_PAE = 0x20
CR4_MCE = 0x40
CR4_PGE = 0x80
CR4_FXSR = 0x200
CR4_XMMEXCPT = 0x400
/* KeFeatureBits flags */
KF_RDTSC = 0x2
KF_CR4 = 0x4
KF_GLOBAL_PAGE = 0x10
KF_LARGE_PAGE = 0x20
KF_CMPXCHG8B = 0x80
KF_FAST_SYSCALL = 0x1000
KF_V86_VIS = 0x1
/* Machine type definitions */
MACHINE_TYPE_ISA = 0x0
MACHINE_TYPE_EISA = 0x1
MACHINE_TYPE_MCA = 0x2
/* EFLAGS */
EFLAGS_TF = 0x100
EFLAGS_INTERRUPT_MASK = 0x200
EFLAGS_V86_MASK = 0x20000
EFLAGS_ALIGN_CHECK = 0x40000
EFLAGS_VIF = 0x80000
EFLAGS_VIP = 0x100000
EFLAGS_USER_SANITIZE = 0x3f4dd7
/* KDGT selectors */
KGDT_R3_DATA = 0x20
KGDT_R3_CODE = 0x18
KGDT_R0_CODE = 0x8
KGDT_R0_DATA = 0x10
KGDT_R0_PCR = 0x30
KGDT_TSS = 0x28
KGDT_R3_TEB = 0x38
KGDT_DF_TSS = 0x50
KGDT_NMI_TSS = 0x58
KGDT_LDT = 0x48
NPX_STATE_NOT_LOADED = 0xa
NPX_STATE_LOADED = 0x0
PF_XMMI_INSTRUCTIONS_AVAILABLE = 0x6
EFLAG_SELECT = 0xc000
/* CONTEXT */
CsContextFlags = 0x0
CsDr0 = 0x4
CsDr1 = 0x8
CsDr2 = 0xc
CsDr3 = 0x10
CsDr6 = 0x14
CsDr7 = 0x18
CsFloatSave = 0x1c
CsSegGs = 0x8c
CsSegFs = 0x90
CsSegEs = 0x94
CsSegDs = 0x98
CsEdi = 0x9c
CsEsi = 0xa0
CsEbx = 0xa4
CsEdx = 0xa8
CsEcx = 0xac
CsEax = 0xb0
CsEbp = 0xb4
CsEip = 0xb8
CsSegCs = 0xbc
CsEflags = 0xc0
CsEsp = 0xc4
CsSegSs = 0xc8
CsExtendedRegisters = 0xcc
ContextFrameLength = 0x2cc
CONTEXT_LENGTH = 0x2cc
/* KGDTENTRY */
KgdtBaseLow = 0x2
KgdtBaseMid = 0x4
KgdtBaseHi = 0x7
KgdtLimitHi = 0x6
KgdtLimitLow = 0x0
/* KTRAP_FRAME */
TsExceptionList = 0x4c
TsPreviousPreviousMode = 0x48
TsSegGs = 0x30
TsSegFs = 0x50
TsSegEs = 0x34
TsSegDs = 0x38
TsEdi = 0x54
TsEsi = 0x58
TsEbp = 0x60
TsEbx = 0x5c
TsEdx = 0x3c
TsEcx = 0x40
TsEax = 0x44
TsErrCode = 0x64
TsEip = 0x68
TsSegCs = 0x6c
TsEflags = 0x70
TsHardwareEsp = 0x74
TsHardwareSegSs = 0x78
TsTempSegCs = 0x10
TsTempEsp = 0x14
TsDbgEbp = 0x0
TsDbgEip = 0x4
TsDbgArgMark = 0x8
TsDbgArgPointer = 0xc
TsDr0 = 0x18
TsDr1 = 0x1c
TsDr2 = 0x20
TsDr3 = 0x24
TsDr6 = 0x28
TsDr7 = 0x2c
TsV86Es = 0x7c
TsV86Ds = 0x80
TsV86Fs = 0x84
TsV86Gs = 0x88
KTRAP_FRAME_LENGTH = 0x8c
KTRAP_FRAME_ALIGN = 0x4
FRAME_EDITED = 0xfff8
/* KTSS */
TssEsp0 = 0x4
TssCR3 = 0x1c
TssEip = 0x20
TssEFlags = 0x24
TssEax = 0x28
TssEbx = 0x34
TssEcx = 0x2c
TssEdx = 0x30
TssEsp = 0x38
TssEbp = 0x3c
TssEsi = 0x40
TssEdi = 0x44
TssEs = 0x48
TssCs = 0x4c
TssSs = 0x50
TssDs = 0x54
TssFs = 0x58
TssGs = 0x5c
TssLDT = 0x60
TssIoMapBase = 0x66
TssIoMaps = 0x68
TssLength = 0x20ac
/* KPCR */
KPCR_EXCEPTION_LIST = 0x0
KPCR_PERF_GLOBAL_GROUP_MASK = 0x8
KPCR_CONTEXT_SWITCHES = 0x10
KPCR_TEB = 0x18
KPCR_SELF = 0x1c
KPCR_PRCB = 0x20
KPCR_IDT = 0x38
KPCR_GDT = 0x3c
KPCR_TSS = 0x40
KPCR_STALL_SCALE_FACTOR = 0x4c
KPCR_PRCB_DATA = 0x120
KPCR_CURRENT_THREAD = 0x124
KPCR_PRCB_NEXT_THREAD = 0x128
KPCR_PRCB_DPC_QUEUE_DEPTH = 0xa4c
KPCR_PRCB_DPC_STACK = 0xa68
KPCR_PRCB_MAXIMUM_DPC_QUEUE_DEPTH = 0xa6c
KPCR_PRCB_DPC_ROUTINE_ACTIVE = 0xa7a
KPCR_PRCB_TIMER_REQUEST = 0xa88
KPCR_PRCB_QUANTUM_END = 0xaa1
KPCR_PRCB_DEFERRED_READY_LIST_HEAD = 0xc10
KPCR_PRCB_POWER_STATE_IDLE_FUNCTION = 0xec0
/* KTRAP_FRAME */
KTRAP_FRAME_DEBUGEBP = 0x0
KTRAP_FRAME_DEBUGEIP = 0x4
KTRAP_FRAME_TEMPESP = 0x14
KTRAP_FRAME_DR0 = 0x18
KTRAP_FRAME_DR1 = 0x1c
KTRAP_FRAME_DR2 = 0x20
KTRAP_FRAME_DR3 = 0x24
KTRAP_FRAME_DR6 = 0x28
KTRAP_FRAME_DR7 = 0x2c
KTRAP_FRAME_GS = 0x30
KTRAP_FRAME_ES = 0x34
KTRAP_FRAME_DS = 0x38
KTRAP_FRAME_EDX = 0x3c
KTRAP_FRAME_ECX = 0x40
KTRAP_FRAME_EAX = 0x44
KTRAP_FRAME_PREVIOUS_MODE = 0x48
KTRAP_FRAME_EXCEPTION_LIST = 0x4c
KTRAP_FRAME_FS = 0x50
KTRAP_FRAME_EDI = 0x54
KTRAP_FRAME_ESI = 0x58
KTRAP_FRAME_EBX = 0x5c
KTRAP_FRAME_EBP = 0x60
KTRAP_FRAME_ERROR_CODE = 0x64
KTRAP_FRAME_EIP = 0x68
KTRAP_FRAME_EFLAGS = 0x70
KTRAP_FRAME_ESP = 0x74
KTRAP_FRAME_SS = 0x78
KTRAP_FRAME_V86_ES = 0x7c
KTRAP_FRAME_V86_DS = 0x80
KTRAP_FRAME_V86_FS = 0x84
KTRAP_FRAME_V86_GS = 0x88
KTRAP_FRAME_SIZE = 0x8c
FRAME_EDITED = 0xfff8
/* CONTEXT */
CONTEXT_FLAGS = 0x0
CONTEXT_SEGGS = 0x8c
CONTEXT_SEGFS = 0x90
CONTEXT_SEGES = 0x94
CONTEXT_SEGDS = 0x98
CONTEXT_EDI = 0x9c
CONTEXT_ESI = 0xa0
CONTEXT_EBX = 0xa4
CONTEXT_EDX = 0xa8
CONTEXT_ECX = 0xac
CONTEXT_EAX = 0xb0
CONTEXT_EBP = 0xb4
CONTEXT_EIP = 0xb8
CONTEXT_SEGCS = 0xbc
CONTEXT_EFLAGS = 0xc0
CONTEXT_ESP = 0xc4
CONTEXT_SEGSS = 0xc8
CONTEXT_FRAME_LENGTH = 0x2cc
/* FIBER */
FIBER_PARAMETER = 0x0
FIBER_EXCEPTION_LIST = 0x4
FIBER_STACK_BASE = 0x8
FIBER_STACK_LIMIT = 0xc
FIBER_DEALLOCATION_STACK = 0x10
FIBER_CONTEXT = 0x14
FIBER_CONTEXT_FLAGS = 0x14
FIBER_CONTEXT_EAX = 0xc4
FIBER_CONTEXT_EBX = 0xb8
FIBER_CONTEXT_ECX = 0xc0
FIBER_CONTEXT_EDX = 0xbc
FIBER_CONTEXT_ESI = 0xb4
FIBER_CONTEXT_EDI = 0xb0
FIBER_CONTEXT_EBP = 0xc8
FIBER_CONTEXT_EIP = 0xcc
FIBER_CONTEXT_ESP = 0xd8
FIBER_CONTEXT_DR6 = 0x28
FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD = 0x30
FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD = 0x34
FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD = 0x38
FIBER_GUARANTEED_STACK_BYTES = 0x2e0
FIBER_FLS_DATA = 0x2e4
FIBER_ACTIVATION_CONTEXT_STACK = 0x2e8
/* KTSS */
KTSS_IOMAPBASE = 0x66
KTSS_ESP0 = 0x4
/* EXCEPTION_RECORD */
EXCEPTION_RECORD_EXCEPTION_CODE = 0x0
EXCEPTION_RECORD_EXCEPTION_FLAGS = 0x4
EXCEPTION_RECORD_EXCEPTION_RECORD = 0x8
EXCEPTION_RECORD_EXCEPTION_ADDRESS = 0xc
EXCEPTION_RECORD_NUMBER_PARAMETERS = 0x10
EXCEPTION_RECORD_EXCEPTION_ADDRESS = 0xc
SIZEOF_EXCEPTION_RECORD = 0x50
EXCEPTION_RECORD_LENGTH = 0x50
/* KTHREAD */
KTHREAD_DEBUG_ACTIVE = 0x3
KTHREAD_INITIAL_STACK = 0x18
KTHREAD_STACK_LIMIT = 0x1c
KTHREAD_TEB = 0x74
KTHREAD_KERNEL_STACK = 0x20
KTHREAD_APCSTATE_PROCESS = 0x38
KTHREAD_PENDING_KERNEL_APC = 0x3d
KTHREAD_CONTEXT_SWITCHES = 0x48
KTHREAD_STATE_ = 0x4c
KTHREAD_NPX_STATE = 0x4d
KTHREAD_WAIT_IRQL = 0x4e
KTHREAD_WAIT_REASON = 0x5a
KTHREAD_COMBINED_APC_DISABLE = 0x70
KTHREAD_SPECIAL_APC_DISABLE = 0x72
KTHREAD_LARGE_STACK = 0x107
KTHREAD_TRAP_FRAME = 0x110
KTHREAD_CALLBACK_STACK = 0x114
KTHREAD_APC_STATE_INDEX = 0x11c
KTHREAD_STACK_BASE = 0x158
/* KPROCESS */
KPROCESS_DIRECTORY_TABLE_BASE = 0x18
KPROCESS_LDT_DESCRIPTOR0 = 0x20
KPROCESS_LDT_DESCRIPTOR1 = 0x24
KPROCESS_INT21_DESCRIPTOR0 = 0x28
KPROCESS_INT21_DESCRIPTOR1 = 0x2c
KPROCESS_IOPM_OFFSET = 0x30
/* Teb */
TEB_EXCEPTION_LIST = 0x0
TEB_STACK_LIMIT = 0x8
TEB_STACK_BASE = 0x4
TEB_SELF = 0x18
TEB_FIBER_DATA = 0x10
TEB_PEB = 0x30
TEB_EXCEPTION_CODE = 0x1a4
PEB_KERNEL_CALLBACK_TABLE = 0x2c
TEB_FLS_DATA = 0xfb4
TEB_ACTIVATION_CONTEXT_STACK_POINTER = 0x1a8
TEB_GUARANTEED_STACK_BYTES = 0xf78
TEB_DEALLOCATION_STACK = 0xe0c
/* Misc */
NPX_FRAME_LENGTH = 0x210
FN_CR0_NPX_STATE = 0x20c
DR7_RESERVED_MASK = 0xdc00
FP_CONTROL_WORD = 0x0
FP_STATUS_WORD = 0x4
FP_TAG_WORD = 0x8
FP_DATA_SELECTOR = 0x18
CBSTACK_RESULT = 0x20
CBSTACK_RESULT_LENGTH = 0x24
CBSTACK_TRAP_FRAME = 0x4
CBSTACK_CALLBACK_STACK = 0x8
SIZEOF_FX_SAVE_AREA = 0x210
KUSER_SHARED_SYSCALL = 0x7ffe0300
EXCEPTION_EXECUTE_HANDLER = 0x1
STATUS_CALLBACK_POP_STACK = 0xc0000423
CONTEXT_ALIGNED_SIZE = 0x2cc
PROCESSOR_FEATURE_FXSR = 0x7ffe0278

File diff suppressed because it is too large Load diff

View file

@ -45,6 +45,9 @@ typedef struct _SEH3$_REGISTRATION_FRAME
} SEH3$_REGISTRATION_FRAME ,*PSEH3$_REGISTRATION_FRAME;
/* Prevent gcc from inlining functions that use SEH. */
static inline __attribute__((always_inline)) __attribute__((returns_twice)) void _SEH3$_PreventInlining() {}
extern inline __attribute__((always_inline,gnu_inline))
void _SEH3$_UnregisterFrame(volatile SEH3$_REGISTRATION_FRAME *RegistrationFrame)
{
@ -92,18 +95,20 @@ void * __cdecl __attribute__((error("Can only be used inside an exception filter
/* This is an asm wrapper around _SEH3$_RegisterFrame */
#define _SEH3$_RegisterFrame(_TrylevelFrame, _DataTable, _Target) \
asm goto ("call __SEH3$_RegisterFrame\n" \
asm goto ("leal %0, %%ecx\n" \
"call __SEH3$_RegisterFrame\n" \
: \
: "c" (_TrylevelFrame), "a" (_DataTable) \
: "edx", "memory" \
: "m" (*(_TrylevelFrame)), "a" (_DataTable) \
: "ecx", "edx", "memory" \
: _Target)
/* This is an asm wrapper around _SEH3$_EnterTryLevel */
#define _SEH3$_RegisterTryLevel(_TrylevelFrame, _DataTable, _Target) \
asm goto ("call __SEH3$_RegisterTryLevel\n" \
asm goto ("leal %0, %%ecx\n" \
"call __SEH3$_RegisterTryLevel\n" \
: \
: "c" (_TrylevelFrame), "a" (_DataTable) \
: "edx", "memory" \
: "m" (*(_TrylevelFrame)), "a" (_DataTable) \
: "ecx", "edx", "memory" \
: _Target)
/* On GCC the filter function is a nested function with __fastcall calling
@ -165,13 +170,16 @@ void * __cdecl __attribute__((error("Can only be used inside an exception filter
around into places that are never executed. */
#define _SEH3$_SCARE_GCC() \
void *plabel; \
_SEH3$_ASM_GOTO("#\n", _SEH3$_l_BeforeTry); \
_SEH3$_ASM_GOTO("#\n", _SEH3$_l_HandlerTarget); \
_SEH3$_ASM_GOTO("#\n", _SEH3$_l_OnException); \
asm volatile ("#" : "=a"(plabel) : "p"(&&_SEH3$_l_BeforeTry), "p"(&&_SEH3$_l_HandlerTarget), "p"(&&_SEH3$_l_OnException) \
: _SEH3$_CLOBBER_ON_EXCEPTION ); \
goto *plabel;
goto _SEH3$_l_OnException;
#define _SEH3_TRY \
_SEH3$_PreventInlining(); \
/* Enter the outer scope */ \
do { \
/* Declare local labels */ \

View file

@ -549,7 +549,7 @@ HvTrackCellRef(PHV_TRACK_CELL_REF CellRef,
/* FIXME: TODO */
DPRINT1("ERROR: Too many references\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return FALSE;
}

View file

@ -132,7 +132,7 @@ CcGetFlushedValidData(IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
{
LARGE_INTEGER Result = {{0}};
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return Result;
}

View file

@ -122,7 +122,7 @@ CcFastCopyRead(IN PFILE_OBJECT FileObject,
OUT PIO_STATUS_BLOCK IoStatus)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
BOOLEAN
@ -209,7 +209,7 @@ CcFastCopyWrite(IN PFILE_OBJECT FileObject,
IN PVOID Buffer)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
BOOLEAN
@ -220,7 +220,7 @@ CcCanIWrite(IN PFILE_OBJECT FileObject,
IN UCHAR Retrying)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return FALSE;
}
@ -234,7 +234,7 @@ CcDeferWrite(IN PFILE_OBJECT FileObject,
IN BOOLEAN Retrying)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/* EOF */

View file

@ -399,7 +399,7 @@ CcSetDirtyPageThreshold(IN PFILE_OBJECT FileObject,
IN ULONG DirtyPageThreshold)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
/*

View file

@ -24,7 +24,7 @@ CcSetAdditionalCacheAttributes(IN PFILE_OBJECT FileObject,
IN BOOLEAN DisableWriteBehind)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -48,7 +48,7 @@ CcGetDirtyPages(IN PVOID LogHandle,
{
LARGE_INTEGER Result = {{0}};
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return Result;
}
@ -57,7 +57,7 @@ NTAPI
CcIsThereDirtyData(IN PVPB Vpb)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return FALSE;
}
@ -68,7 +68,7 @@ CcGetLsnForFileObject(IN PFILE_OBJECT FileObject,
{
LARGE_INTEGER Result = {{0}};
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return Result;
}

View file

@ -138,8 +138,8 @@ typedef union _KTRAP_EXIT_SKIP_BITS
{ \
/* Not yet handled */ \
UNIMPLEMENTED; \
while (TRUE); \
return TRUE; \
ASSERT(FALSE); /* while (TRUE); */ \
return FALSE; \
}
C_ASSERT(NPX_FRAME_LENGTH == sizeof(FX_SAVE_AREA));

View file

@ -266,7 +266,8 @@ IopCompleteRequest(IN PKAPC Apc,
{
/* We should never get this yet */
DPRINT1("Reparse support not yet present!\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return;
}
}
@ -1373,7 +1374,7 @@ IofCompleteRequest(IN PIRP Irp,
#else
/* Not implemented yet. */
DPRINT1("Not supported!\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
#endif
}

View file

@ -3784,7 +3784,7 @@ PiGetDeviceRegistryProperty(IN PDEVICE_OBJECT DeviceObject,
#define PIP_RETURN_DATA(x, y) {ReturnLength = x; Data = y; Status = STATUS_SUCCESS; break;}
#define PIP_REGISTRY_DATA(x, y) {ValueName = x; ValueType = y; break;}
#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED; while(TRUE); break;}
#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED; ASSERT(FALSE); /* while (TRUE); */ break;}
/*
* @implemented

View file

@ -108,6 +108,7 @@ KdpServiceDispatcher(ULONG Service,
#endif /* KDBG */
#endif /* DBG */
default:
DPRINT1("Invalid debug service call!\n");
HalDisplayString("Invalid debug service call!\n");
break;
}

View file

@ -140,7 +140,7 @@ KdpSysReadBusData(IN ULONG BusDataType,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -155,7 +155,7 @@ KdpSysWriteBusData(IN ULONG BusDataType,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -358,7 +358,7 @@ NTAPI
KdpSysCheckLowMemory(IN ULONG Flags)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -367,6 +367,6 @@ NTAPI
KdpAllowDisable(VOID)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_ACCESS_DENIED;
}

View file

@ -23,7 +23,7 @@ KdpGetStateChange(IN PDBGKD_MANIPULATE_STATE64 State,
IN PCONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -32,7 +32,7 @@ KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
IN PCONTEXT Context)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
NTSTATUS
@ -41,7 +41,7 @@ KdpSysReadMsr(IN ULONG Msr,
OUT PLARGE_INTEGER MsrValue)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -51,7 +51,7 @@ KdpSysWriteMsr(IN ULONG Msr,
IN PLARGE_INTEGER MsrValue)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -66,7 +66,7 @@ KdpSysReadBusData(IN ULONG BusDataType,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -81,7 +81,7 @@ KdpSysWriteBusData(IN ULONG BusDataType,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -94,7 +94,7 @@ KdpSysReadControlSpace(IN ULONG Processor,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -107,7 +107,7 @@ KdpSysWriteControlSpace(IN ULONG Processor,
OUT PULONG ActualLength)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -122,7 +122,7 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
OUT PULONG ActualDataSize)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -137,7 +137,7 @@ KdpSysWriteIoSpace(IN ULONG InterfaceType,
OUT PULONG ActualDataSize)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -146,7 +146,7 @@ NTAPI
KdpSysCheckLowMemory(IN ULONG Flags)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_UNSUCCESSFUL;
}
@ -155,6 +155,6 @@ NTAPI
KdpAllowDisable(VOID)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_ACCESS_DENIED;
}

View file

@ -1178,6 +1178,7 @@ KeBugCheckWithTf(IN ULONG BugCheckCode,
KiBugCheckDebugBreak(DBG_STATUS_BUGCHECK_SECOND);
/* Shouldn't get here */
ASSERT(FALSE);
while (TRUE);
}

View file

@ -780,6 +780,7 @@ KeInsertQueueDpc(IN PKDPC Dpc,
{
/* FIXME: Setup Threaded DPC */
DPRINT1("Threaded DPC not supported\n");
ASSERT(FALSE);
while (TRUE);
}
}

View file

@ -36,7 +36,8 @@ KiSwapProcess(IN PKPROCESS NewProcess,
{
/* Not handled yet */
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return;
}
/* Update CR3 */

View file

@ -663,6 +663,7 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Should only happen in VDM mode */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
@ -735,6 +736,7 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Not implemented */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
@ -921,6 +923,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Should only happen in VDM mode */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
@ -1077,6 +1080,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Not implemented */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
@ -1133,6 +1137,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Otherwise, this is another kind of IRET fault */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
}
@ -1191,6 +1196,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
{
/* The stack is somewhere in between frames, we need to fix it */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
}
@ -1256,6 +1262,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Not yet implemented */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
#endif
@ -1439,7 +1446,7 @@ FASTCALL
KiGetTickCountHandler(IN PKTRAP_FRAME TrapFrame)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
VOID
@ -1447,7 +1454,7 @@ FASTCALL
KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame)
{
UNIMPLEMENTED;
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
DECLSPEC_NORETURN
@ -1618,6 +1625,7 @@ KiSystemCall(IN PKTRAP_FRAME TrapFrame,
{
/* Access violation */
UNIMPLEMENTED;
ASSERT(FALSE);
while (TRUE);
}
@ -1683,6 +1691,7 @@ Kei386EoiHelper(VOID)
{
/* We should never see this call happening */
DPRINT1("Mismatched NT/HAL version");
ASSERT(FALSE);
while (TRUE);
}

View file

@ -66,7 +66,7 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
// Always return success for now
//
DPRINT1("NEVER TELL ME THE ODDS!\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
return STATUS_SUCCESS;
}

View file

@ -59,7 +59,7 @@ MiSyncCachedRanges(VOID)
for (i = 0; i < MiLargePageRangeIndex; i++)
{
DPRINT1("No support for large pages\n");
while (TRUE);
ASSERT(FALSE); // while (TRUE);
}
}

View file

@ -2043,7 +2043,7 @@ MmArmInitSystem(IN ULONG Phase,
// Define the basic user vs. kernel address space separation
//
MmSystemRangeStart = (PVOID)MI_DEFAULT_SYSTEM_RANGE_START;
MmUserProbeAddress = (ULONG_PTR)MI_HIGHEST_USER_ADDRESS;
MmUserProbeAddress = (ULONG_PTR)MI_USER_PROBE_ADDRESS;
MmHighestUserAddress = (PVOID)MI_HIGHEST_USER_ADDRESS;
/* Highest PTE and PDE based on the addresses above */

View file

@ -876,7 +876,8 @@ MiDispatchFault(IN BOOLEAN StoreInstruction,
NTSTATUS Status;
PMMPTE SuperProtoPte;
PMMPFN Pfn1, OutPfn = NULL;
PFN_NUMBER PageFrameIndex, PteCount, ProcessedPtes;
PFN_NUMBER PageFrameIndex;
PFN_COUNT PteCount, ProcessedPtes;
DPRINT("ARM3 Page Fault Dispatcher for address: %p in process: %p\n",
Address,
Process);
@ -1055,7 +1056,7 @@ MiDispatchFault(IN BOOLEAN StoreInstruction,
if (ProcessedPtes)
{
/* Bump the transition count */
InterlockedExchangeAdd(&KeGetCurrentPrcb()->MmTransitionCount, ProcessedPtes);
InterlockedExchangeAddSizeT(&KeGetCurrentPrcb()->MmTransitionCount, ProcessedPtes);
ProcessedPtes--;
/* Loop all the processing we did */
@ -1208,9 +1209,15 @@ MmArmAccessFault(IN BOOLEAN StoreInstruction,
if (TrapInformation)
{
PKTRAP_FRAME TrapFrame = TrapInformation;
#ifdef _M_IX86
DbgPrint("MM:***EIP %p, EFL %p\n", TrapFrame->Eip, TrapFrame->EFlags);
DbgPrint("MM:***EAX %p, ECX %p EDX %p\n", TrapFrame->Eax, TrapFrame->Ecx, TrapFrame->Edx);
DbgPrint("MM:***EBX %p, ESI %p EDI %p\n", TrapFrame->Ebx, TrapFrame->Esi, TrapFrame->Edi);
#elif defined(_M_AMD64)
DbgPrint("MM:***RIP %p, EFL %p\n", TrapFrame->Rip, TrapFrame->EFlags);
DbgPrint("MM:***RAX %p, RCX %p RDX %p\n", TrapFrame->Rax, TrapFrame->Rcx, TrapFrame->Rdx);
DbgPrint("MM:***RBX %p, RSI %p RDI %p\n", TrapFrame->Rbx, TrapFrame->Rsi, TrapFrame->Rdi);
#endif
}
/* Tell the trap handler to fail */

View file

@ -1324,8 +1324,10 @@ MiInitializeSessionPool(VOID)
/* Initialize the first page table */
Index = (ULONG_PTR)MmSessionSpace->PagedPoolStart - (ULONG_PTR)MmSessionBase;
Index >>= 22;
#ifndef _M_AMD64 // FIXME
ASSERT(MmSessionSpace->PageTables[Index].u.Long == 0);
MmSessionSpace->PageTables[Index] = *PointerPde;
#endif
/* Bump up counters */
InterlockedIncrementSizeT(&MmSessionSpace->NonPageablePages);

Some files were not shown because too many files have changed in this diff Show more