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