update windows.kernel32 structs (*)

db4
Joe Groff 2009-09-18 18:54:08 -05:00
parent c093f52271
commit 81db20f59e
2 changed files with 89 additions and 109 deletions

View File

@ -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 ? -- )
[ [

View File

@ -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