Windows 2000 における OBJECT_ATTRIBUTES の Attribute サポート
_OBJECT_ATTRIBUTES (ntdef.h) - Win32 apps | Microsoft Docs
|
Windows の OBJECT_ATTRIBUTES 構造体
Attributes 変数について
#define OBJ_INHERIT 0x00000002 #define OBJ_PERMANENT 0x00000010 #define OBJ_EXCLUSIVE 0x00000020 #define OBJ_CASE_INSENSITIVE 0x00000040 #define OBJ_OPENIF 0x00000080 #define OBJ_OPENLINK 0x00000100 #define OBJ_KERNEL_HANDLE 0x00000200 #define OBJ_FORCE_ACCESS_CHECK 0x00000400 #define OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x00000800 #define OBJ_DONT_REPARSE 0x00001000 |
下2つは Vista 以降のものだと思われます
水色の2つは Windows 2000では非対応だというサイトを多く見かけるので調べてみました。
下記コードは最新版のWindows 2000用 NTOSKRNL.EXE です
L004D7649: cmp dword ptr [eax],00000018h jnz L004D7711 test dword ptr [eax+0Ch],FFFFF80Dh // OBJ_VALID_ATTRIBUTES jnz L004D7711 mov ecx,[eax+04h] mov [ebx+04h],ecx mov ecx,[eax+0Ch] and ecx,000007F2h mov [ebx],ecx cmp byte ptr [ebp+10h],00h jz L004D767B and ch,FDh mov [ebx],ecx |
OBJ_VALID_ATTRIBUTES の値が 0xFFFFF80D なので、水色の部分までサポートしているのが分かります
Comments