mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-01 14:47:28 -04:00
windows: revert breaking API changes from CL 196798, add new accessor funcs
CL 196798 changed API and broke a number of projects. Revert the signature changes but add new convenience functions instead. Change-Id: I49e389204f4756ec054ba8fd7555e235ef6370e8 Reviewed-on: https://go-review.googlesource.com/c/sys/+/197597 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
@@ -650,12 +650,12 @@ type Token Handle
|
|||||||
// OpenCurrentProcessToken opens an access token associated with current
|
// OpenCurrentProcessToken opens an access token associated with current
|
||||||
// process with TOKEN_QUERY access. It is a real token that needs to be closed.
|
// process with TOKEN_QUERY access. It is a real token that needs to be closed.
|
||||||
//
|
//
|
||||||
// Deprecated: Explicitly call OpenProcessToken(GetCurrentProcess(), ...)
|
// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...)
|
||||||
// with the desired access instead, or use GetCurrentProcessToken for a
|
// with the desired access instead, or use GetCurrentProcessToken for a
|
||||||
// TOKEN_QUERY token.
|
// TOKEN_QUERY token.
|
||||||
func OpenCurrentProcessToken() (Token, error) {
|
func OpenCurrentProcessToken() (Token, error) {
|
||||||
var token Token
|
var token Token
|
||||||
err := OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)
|
err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token)
|
||||||
return token, err
|
return token, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -309,16 +309,32 @@ func NewCallbackCDecl(fn interface{}) uintptr {
|
|||||||
|
|
||||||
// GetCurrentProcess returns the handle for the current process.
|
// GetCurrentProcess returns the handle for the current process.
|
||||||
// It is a pseudo handle that does not need to be closed.
|
// It is a pseudo handle that does not need to be closed.
|
||||||
func GetCurrentProcess() Handle {
|
// The returned error is always nil.
|
||||||
return Handle(^uintptr(1 - 1))
|
//
|
||||||
|
// Deprecated: use CurrentProcess for the same Handle without the nil
|
||||||
|
// error.
|
||||||
|
func GetCurrentProcess() (Handle, error) {
|
||||||
|
return CurrentProcess(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CurrentProcess returns the handle for the current process.
|
||||||
|
// It is a pseudo handle that does not need to be closed.
|
||||||
|
func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }
|
||||||
|
|
||||||
// GetCurrentThread returns the handle for the current thread.
|
// GetCurrentThread returns the handle for the current thread.
|
||||||
// It is a pseudo handle that does not need to be closed.
|
// It is a pseudo handle that does not need to be closed.
|
||||||
func GetCurrentThread() Handle {
|
// The returned error is always nil.
|
||||||
return Handle(^uintptr(2 - 1))
|
//
|
||||||
|
// Deprecated: use CurrentThread for the same Handle without the nil
|
||||||
|
// error.
|
||||||
|
func GetCurrentThread() (Handle, error) {
|
||||||
|
return CurrentThread(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CurrentThread returns the handle for the current thread.
|
||||||
|
// It is a pseudo handle that does not need to be closed.
|
||||||
|
func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }
|
||||||
|
|
||||||
// GetProcAddressByOrdinal retrieves the address of the exported
|
// GetProcAddressByOrdinal retrieves the address of the exported
|
||||||
// function from module by ordinal.
|
// function from module by ordinal.
|
||||||
func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {
|
func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ func TestGetNamedSecurityInfo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetSecurityInfo(t *testing.T) {
|
func TestGetSecurityInfo(t *testing.T) {
|
||||||
sd, err := windows.GetSecurityInfo(windows.GetCurrentProcess(), windows.SE_KERNEL_OBJECT, windows.DACL_SECURITY_INFORMATION)
|
sd, err := windows.GetSecurityInfo(windows.CurrentProcess(), windows.SE_KERNEL_OBJECT, windows.DACL_SECURITY_INFORMATION)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user