update windows.kernel32 structs (*)
parent
c093f52271
commit
81db20f59e
|
@ -1,7 +1,7 @@
|
||||||
USING: alien alien.c-types alien.data alien.syntax arrays continuations
|
USING: alien alien.c-types alien.data alien.syntax arrays continuations
|
||||||
destructors generic io.mmap io.ports io.backend.windows io.files.windows
|
destructors generic io.mmap io.ports io.backend.windows io.files.windows
|
||||||
kernel libc math math.bitwise namespaces quotations sequences windows
|
kernel libc math math.bitwise namespaces quotations sequences windows
|
||||||
windows.advapi32 windows.kernel32 io.backend system accessors
|
windows.advapi32 windows.kernel32 windows.types io.backend system accessors
|
||||||
io.backend.windows.privileges windows.errors ;
|
io.backend.windows.privileges windows.errors ;
|
||||||
IN: io.backend.windows.nt.privileges
|
IN: io.backend.windows.nt.privileges
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
|
||||||
! http://msdn.microsoft.com/msdnmag/issues/05/03/TokenPrivileges/
|
! http://msdn.microsoft.com/msdnmag/issues/05/03/TokenPrivileges/
|
||||||
|
|
||||||
: (open-process-token) ( handle -- handle )
|
: (open-process-token) ( handle -- handle )
|
||||||
{ TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY } flags "PHANDLE" <c-object>
|
{ TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY } flags PHANDLE <c-object>
|
||||||
[ OpenProcessToken win32-error=0/f ] keep *void* ;
|
[ OpenProcessToken win32-error=0/f ] keep *void* ;
|
||||||
|
|
||||||
: open-process-token ( -- handle )
|
: open-process-token ( -- handle )
|
||||||
|
@ -25,25 +25,17 @@ TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
|
||||||
[ CloseHandle drop ] [ ] cleanup ; inline
|
[ CloseHandle drop ] [ ] cleanup ; inline
|
||||||
|
|
||||||
: lookup-privilege ( string -- luid )
|
: lookup-privilege ( string -- luid )
|
||||||
[ f ] dip "LUID" <c-object>
|
[ f ] dip LUID <struct>
|
||||||
[ LookupPrivilegeValue win32-error=0/f ] keep ;
|
[ LookupPrivilegeValue win32-error=0/f ] keep ;
|
||||||
|
|
||||||
: make-token-privileges ( name ? -- obj )
|
: make-token-privileges ( name ? -- obj )
|
||||||
"TOKEN_PRIVILEGES" <c-object>
|
TOKEN_PRIVILEGES <struct>
|
||||||
1 over set-TOKEN_PRIVILEGES-PrivilegeCount
|
1 >>PrivilegeCount
|
||||||
"LUID_AND_ATTRIBUTES" malloc-object &free
|
LUID_AND_ATTRIBUTES malloc-struct &free
|
||||||
over set-TOKEN_PRIVILEGES-Privileges
|
swap [ SE_PRIVILEGE_ENABLED >>Attributes ] when
|
||||||
|
>>Privileges
|
||||||
swap [
|
|
||||||
SE_PRIVILEGE_ENABLED over TOKEN_PRIVILEGES-Privileges
|
|
||||||
set-LUID_AND_ATTRIBUTES-Attributes
|
|
||||||
] when
|
|
||||||
|
|
||||||
[ lookup-privilege ] dip
|
[ lookup-privilege ] dip
|
||||||
[
|
[ Privileges>> (>>Luid) ] keep ;
|
||||||
TOKEN_PRIVILEGES-Privileges
|
|
||||||
set-LUID_AND_ATTRIBUTES-Luid
|
|
||||||
] keep ;
|
|
||||||
|
|
||||||
M: winnt set-privilege ( name ? -- )
|
M: winnt set-privilege ( name ? -- )
|
||||||
[
|
[
|
||||||
|
|
|
@ -317,14 +317,14 @@ STRUCT: OSVERSIONINFO
|
||||||
|
|
||||||
TYPEDEF: void* LPOSVERSIONINFO
|
TYPEDEF: void* LPOSVERSIONINFO
|
||||||
|
|
||||||
C-STRUCT: MEMORY_BASIC_INFORMATION
|
STRUCT: MEMORY_BASIC_INFORMATION
|
||||||
{ "void*" "BaseAddress" }
|
{ BaseAddress void* }
|
||||||
{ "void*" "AllocationBase" }
|
{ AllocationBase void* }
|
||||||
{ "DWORD" "AllocationProtect" }
|
{ AllocationProtect DWORD }
|
||||||
{ "SIZE_T" "RegionSize" }
|
{ RegionSize SIZE_T }
|
||||||
{ "DWORD" "state" }
|
{ state DWORD }
|
||||||
{ "DWORD" "protect" }
|
{ protect DWORD }
|
||||||
{ "DWORD" "type" } ;
|
{ type DWORD } ;
|
||||||
|
|
||||||
STRUCT: GUID
|
STRUCT: GUID
|
||||||
{ Data1 ULONG }
|
{ Data1 ULONG }
|
||||||
|
@ -524,55 +524,55 @@ CONSTANT: EV_RX80FULL HEX: 400
|
||||||
CONSTANT: EV_EVENT1 HEX: 800
|
CONSTANT: EV_EVENT1 HEX: 800
|
||||||
CONSTANT: EV_EVENT2 HEX: 1000
|
CONSTANT: EV_EVENT2 HEX: 1000
|
||||||
|
|
||||||
C-STRUCT: DCB
|
STRUCT: DCB
|
||||||
{ "DWORD" "DCBlength" }
|
{ DCBlength DWORD }
|
||||||
{ "DWORD" "BaudRate" }
|
{ BaudRate DWORD }
|
||||||
{ "DWORD" "flags" }
|
{ flags DWORD }
|
||||||
{ "WORD" "wReserved" }
|
{ wReserved WORD }
|
||||||
{ "WORD" "XonLim" }
|
{ XonLim WORD }
|
||||||
{ "WORD" "XoffLim" }
|
{ XoffLim WORD }
|
||||||
{ "BYTE" "ByteSize" }
|
{ ByteSize BYTE }
|
||||||
{ "BYTE" "Parity" }
|
{ Parity BYTE }
|
||||||
{ "BYTE" "StopBits" }
|
{ StopBits BYTE }
|
||||||
{ "char" "XonChar" }
|
{ XonChar char }
|
||||||
{ "char" "XoffChar" }
|
{ XoffChar char }
|
||||||
{ "char" "ErrorChar" }
|
{ ErrorChar char }
|
||||||
{ "char" "EofChar" }
|
{ EofChar char }
|
||||||
{ "char" "EvtChar" }
|
{ EvtChar char }
|
||||||
{ "WORD" "wReserved1" } ;
|
{ wReserved1 WORD } ;
|
||||||
TYPEDEF: DCB* PDCB
|
TYPEDEF: DCB* PDCB
|
||||||
TYPEDEF: DCB* LPDCB
|
TYPEDEF: DCB* LPDCB
|
||||||
|
|
||||||
C-STRUCT: COMM_CONFIG
|
STRUCT: COMM_CONFIG
|
||||||
{ "DWORD" "dwSize" }
|
{ dwSize DWORD }
|
||||||
{ "WORD" "wVersion" }
|
{ wVersion WORD }
|
||||||
{ "WORD" "wReserved" }
|
{ wReserved WORD }
|
||||||
{ "DCB" "dcb" }
|
{ dcb DCB }
|
||||||
{ "DWORD" "dwProviderSubType" }
|
{ dwProviderSubType DWORD }
|
||||||
{ "DWORD" "dwProviderOffset" }
|
{ dwProviderOffset DWORD }
|
||||||
{ "DWORD" "dwProviderSize" }
|
{ dwProviderSize DWORD }
|
||||||
{ { "WCHAR" 1 } "wcProviderData" } ;
|
{ wcProviderData { WCHAR 1 } } ;
|
||||||
TYPEDEF: COMMCONFIG* LPCOMMCONFIG
|
TYPEDEF: COMMCONFIG* LPCOMMCONFIG
|
||||||
|
|
||||||
C-STRUCT: COMMPROP
|
STRUCT: COMMPROP
|
||||||
{ "WORD" "wPacketLength" }
|
{ wPacketLength WORD }
|
||||||
{ "WORD" "wPacketVersion" }
|
{ wPacketVersion WORD }
|
||||||
{ "DWORD" "dwServiceMask" }
|
{ dwServiceMask DWORD }
|
||||||
{ "DWORD" "dwReserved1" }
|
{ dwReserved1 DWORD }
|
||||||
{ "DWORD" "dwMaxTxQueue" }
|
{ dwMaxTxQueue DWORD }
|
||||||
{ "DWORD" "dwMaxRxQueue" }
|
{ dwMaxRxQueue DWORD }
|
||||||
{ "DWORD" "dwMaxBaud" }
|
{ dwMaxBaud DWORD }
|
||||||
{ "DWORD" "dwProvSubType" }
|
{ dwProvSubType DWORD }
|
||||||
{ "DWORD" "dwProvCapabilities" }
|
{ dwProvCapabilities DWORD }
|
||||||
{ "DWORD" "dwSettableParams" }
|
{ dwSettableParams DWORD }
|
||||||
{ "DWORD" "dwSettableBaud" }
|
{ dwSettableBaud DWORD }
|
||||||
{ "WORD" "wSettableData" }
|
{ wSettableData WORD }
|
||||||
{ "WORD" "wSettableStopParity" }
|
{ wSettableStopParity WORD }
|
||||||
{ "DWORD" "dwCurrentTxQueue" }
|
{ dwCurrentTxQueue DWORD }
|
||||||
{ "DWORD" "dwCurrentRxQueue" }
|
{ dwCurrentRxQueue DWORD }
|
||||||
{ "DWORD" "dwProvSpec1" }
|
{ dwProvSpec1 DWORD }
|
||||||
{ "DWORD" "dwProvSpec2" }
|
{ dwProvSpec2 DWORD }
|
||||||
{ { "WCHAR" 1 } "wcProvChar" } ;
|
{ wcProvChar { WCHAR 1 } } ;
|
||||||
TYPEDEF: COMMPROP* LPCOMMPROP
|
TYPEDEF: COMMPROP* LPCOMMPROP
|
||||||
|
|
||||||
|
|
||||||
|
@ -645,19 +645,19 @@ CONSTANT: WAIT_TIMEOUT 258
|
||||||
CONSTANT: WAIT_IO_COMPLETION HEX: c0
|
CONSTANT: WAIT_IO_COMPLETION HEX: c0
|
||||||
CONSTANT: WAIT_FAILED HEX: ffffffff
|
CONSTANT: WAIT_FAILED HEX: ffffffff
|
||||||
|
|
||||||
C-STRUCT: LUID
|
STRUCT: LUID
|
||||||
{ "DWORD" "LowPart" }
|
{ LowPart DWORD }
|
||||||
{ "LONG" "HighPart" } ;
|
{ HighPart LONG } ;
|
||||||
TYPEDEF: LUID* PLUID
|
TYPEDEF: LUID* PLUID
|
||||||
|
|
||||||
C-STRUCT: LUID_AND_ATTRIBUTES
|
STRUCT: LUID_AND_ATTRIBUTES
|
||||||
{ "LUID" "Luid" }
|
{ Luid LUID }
|
||||||
{ "DWORD" "Attributes" } ;
|
{ Attributes DWORD } ;
|
||||||
TYPEDEF: LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES
|
TYPEDEF: LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES
|
||||||
|
|
||||||
C-STRUCT: TOKEN_PRIVILEGES
|
STRUCT: TOKEN_PRIVILEGES
|
||||||
{ "DWORD" "PrivilegeCount" }
|
{ PrivilegeCount DWORD }
|
||||||
{ "LUID_AND_ATTRIBUTES*" "Privileges" } ;
|
{ Privileges LUID_AND_ATTRIBUTES* } ;
|
||||||
TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
|
TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
|
||||||
|
|
||||||
STRUCT: WIN32_FILE_ATTRIBUTE_DATA
|
STRUCT: WIN32_FILE_ATTRIBUTE_DATA
|
||||||
|
@ -669,29 +669,29 @@ STRUCT: WIN32_FILE_ATTRIBUTE_DATA
|
||||||
{ nFileSizeLow DWORD } ;
|
{ nFileSizeLow DWORD } ;
|
||||||
TYPEDEF: WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA
|
TYPEDEF: WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA
|
||||||
|
|
||||||
C-STRUCT: BY_HANDLE_FILE_INFORMATION
|
STRUCT: BY_HANDLE_FILE_INFORMATION
|
||||||
{ "DWORD" "dwFileAttributes" }
|
{ dwFileAttributes DWORD }
|
||||||
{ "FILETIME" "ftCreationTime" }
|
{ ftCreationTime FILETIME }
|
||||||
{ "FILETIME" "ftLastAccessTime" }
|
{ ftLastAccessTime FILETIME }
|
||||||
{ "FILETIME" "ftLastWriteTime" }
|
{ ftLastWriteTime FILETIME }
|
||||||
{ "DWORD" "dwVolumeSerialNumber" }
|
{ dwVolumeSerialNumber DWORD }
|
||||||
{ "DWORD" "nFileSizeHigh" }
|
{ nFileSizeHigh DWORD }
|
||||||
{ "DWORD" "nFileSizeLow" }
|
{ nFileSizeLow DWORD }
|
||||||
{ "DWORD" "nNumberOfLinks" }
|
{ nNumberOfLinks DWORD }
|
||||||
{ "DWORD" "nFileIndexHigh" }
|
{ nFileIndexHigh DWORD }
|
||||||
{ "DWORD" "nFileIndexLow" } ;
|
{ nFileIndexLow DWORD } ;
|
||||||
TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
|
TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
|
||||||
|
|
||||||
CONSTANT: OFS_MAXPATHNAME 128
|
CONSTANT: OFS_MAXPATHNAME 128
|
||||||
|
|
||||||
C-STRUCT: OFSTRUCT
|
STRUCT: OFSTRUCT
|
||||||
{ "BYTE" "cBytes" }
|
{ cBytes BYTE }
|
||||||
{ "BYTE" "fFixedDisk" }
|
{ fFixedDisk BYTE }
|
||||||
{ "WORD" "nErrCode" }
|
{ nErrCode WORD }
|
||||||
{ "WORD" "Reserved1" }
|
{ Reserved1 WORD }
|
||||||
{ "WORD" "Reserved2" }
|
{ Reserved2 WORD }
|
||||||
! { { "CHAR" OFS_MAXPATHNAME } "szPathName" } ;
|
! { szPathName { CHAR OFS_MAXPATHNAME } } ;
|
||||||
{ { "CHAR" 128 } "szPathName" } ;
|
{ szPathName { CHAR 128 } } ;
|
||||||
|
|
||||||
TYPEDEF: OFSTRUCT* LPOFSTRUCT
|
TYPEDEF: OFSTRUCT* LPOFSTRUCT
|
||||||
|
|
||||||
|
@ -707,18 +707,6 @@ STRUCT: WIN32_FIND_DATA
|
||||||
{ cFileName { "TCHAR" MAX_PATH } }
|
{ cFileName { "TCHAR" MAX_PATH } }
|
||||||
{ cAlternateFileName TCHAR[14] } ;
|
{ cAlternateFileName TCHAR[14] } ;
|
||||||
|
|
||||||
STRUCT: BY_HANDLE_FILE_INFORMATION
|
|
||||||
{ dwFileAttributes DWORD }
|
|
||||||
{ ftCreationTime FILETIME }
|
|
||||||
{ ftLastAccessTime FILETIME }
|
|
||||||
{ ftLastWriteTime FILETIME }
|
|
||||||
{ dwVolumeSerialNumber DWORD }
|
|
||||||
{ nFileSizeHigh DWORD }
|
|
||||||
{ nFileSizeLow DWORD }
|
|
||||||
{ nNumberOfLinks DWORD }
|
|
||||||
{ nFileIndexHigh DWORD }
|
|
||||||
{ nFileIndexLow DWORD } ;
|
|
||||||
|
|
||||||
TYPEDEF: WIN32_FIND_DATA* PWIN32_FIND_DATA
|
TYPEDEF: WIN32_FIND_DATA* PWIN32_FIND_DATA
|
||||||
TYPEDEF: WIN32_FIND_DATA* LPWIN32_FIND_DATA
|
TYPEDEF: WIN32_FIND_DATA* LPWIN32_FIND_DATA
|
||||||
TYPEDEF: void* POVERLAPPED
|
TYPEDEF: void* POVERLAPPED
|
||||||
|
|
Loading…
Reference in New Issue