IMSAdminBase::ChangePermissions

The IMSAdminBase::ChangePermissions method changes permissions on an open handle. If the handle was opened with write permission and you change it to read-only, this method will cause any callback methods registered to be called.

HRESULT ChangePermissions(
      METADATA_HANDLE hMDHandle,
      DWORD dwMDTimeOut,
      DWORD dwMDAccessRequested
);

Parameters

  • hMDHandle
    Specifies a handle to the metabase, as returned by the IMSAdminBase::OpenKey method.

  • dwMDTimeOut
    Specifies the time, in milliseconds, for the method to wait for the operation to succeed.

  • dwMDAccessRequested
    Specifies the new permissions for the handle. It must be one or both of the following values:

    Value

    Meaning

    METADATA_PERMISSION_READ

    Open the key for reading.

    METADATA_PERMISSION_WRITE

    Open the key for writing.

Return Values

Returns an HRESULT that contains one of the following values:

Value

Description

E_HANDLE

The metabase handle is invalid.

HRESULT_FROM_WIN32(ERROR_PATH_BUSY)

The path specified cannot be used at this time.

S_OK

The method succeeded.

Remarks

When you use this method to add permissions, you should follow the same rules that apply to IMSAdminBase::OpenKey. Timeout values should be short for this call; it is quite possible for two threads with read permission on the same data to attempt to update to write permission at the same time. Both will block until one read handle is closed.

Requirements

Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.

Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.

Product: IIS

Header: Declared in iadmw.h; include iiscnfg.h.