EjectDiskFromSADrive Function

[Removable Storage Manager is no longer available as of Windows 7 and Windows Server 2008 R2.]

The EjectDiskFromSADrive function ejects the media that is in a standalone removable drive.

Syntax

DWORD EjectDiskFromSADrive(
  __in  LPCWSTR lpComputerName,
  __in  LPCWSTR  lpAppName,
  __in  LPCWSTR  lpDeviceName,
  __in  HWND  hWnd,
  __in  LPCWSTR  lpTitle,
  __in  LPCWSTR   lpMessage,
  __in  DWORD    dwOptions
);

Parameters

  • lpComputerName [in]
    Removable Storage Manager (RSM) server name. If this parameter is NULL, the current computer name is used.

  • lpAppName [in]
    Unique character string that identifies the application. This name identifies resources and operator requests. This parameter is optional and may be NULL.

  • lpDeviceName [in]
    Name of the device to eject. For example, \\.\Cdrom0 or \\.\PhysicalDriveX (where X is the number of the drive being accessed).

  • hWnd [in]
    Handle to a dialog box window for user confirmation.

  • lpTitle [in]
    Title displayed in a dialog box to get user input.

  • lpMessage [in]
    Message displayed in a dialog box to get user input.

  • dwOptions [in]
    Action to perform. This parameter can be one of the following values.

    Value Meaning
    NTMS_EJECT_START

    Start the eject operation with a port. The specified medium is ejected until the time-out event occurs or the function is called again with NTMS_EJECT_STOP. The time-out value is specified in the library object and is applied to all ejections in the library.

    NTMS_EJECT_STOP

    Terminate the ejection process before the time-out event lapses.

    NTMS_EJECT_QUEUE

    Allow the eject to be asynchronous. The function queues the specified media for ejection and then returns.

    NTMS_EJECT_FORCE

    Force the media to be ejected. For example, NTFS can hold locks on media, and this option will cause the media to be ejected despite that lock.

    NTMS_EJECT_IMMEDIATE

    Eject the media immediately and synchronously. The function will not return until the eject is complete. Does not queue the specified media for ejection.

    NTMS_EJECT_ASK_USER

    Eject the media immediately and synchronously. The function will not return until the eject is complete. Does not queue the specified media for ejection. If the eject operation fails, prompt the user to either cancel or force the operation.

     

Return Value

This function returns one of the following values.

Value Meaning
ERROR_ACCESS_DENIED

NTMS_CONTROL_ACCESS to the library is denied. Other security errors are also possible, but they would indicate a security subsystem error.

ERROR_DATABASE_FAILURE

The database is inaccessible or damaged.

ERROR_DATABASE_FULL

The database is full.

ERROR_DEVICE_NOT_AVAILABLE

The library is disabled.

ERROR_INVALID_HANDLE

The session ID is missing or is not valid.

ERROR_INVALID_OPERATION

A stop was performed on an operation ID that was not valid.

ERROR_INVALID_PARAMETER

A library ID or operation ID pointer is missing.

ERROR_LIBRARY_OFFLINE

The library ID refers to an offline library that cannot eject media.

ERROR_MEDIA_NOT_AVAILABLE

The media is disabled.

ERROR_NOT_ENOUGH_MEMORY

There was an allocation failure during processing.

ERROR_SUCCESS

The eject operation was successful.

 

Remarks

Although EjectNtmsMedia can, in some cases, be used to accomplish the same functionality, EjectDiskFromSADrive provides a convenient way to eject media from a standalone device, by specifying its drive name instead of its RSM name. In some cases it is the only way to overcome file system locks on the media in order to eject that media.

The EjectDiskFromSADrive function returns to the application as soon as the eject request is queued, unless NTMS_EJECT_IMMEDIATE option is specified.

Media ejected using the EjectDiskFromSADrive function is moved to the offline library or deleted from the database. Import media, unrecognized media, and incompatible media are deleted when ejected.

The EjectDiskFromSADrive function does not work with the offline library.

Requirements

Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2003

End of client support

Windows Vista

End of server support

Windows Server 2008

Header

Ntmsapi.h

Library

Ntmsapi.lib

DLL

Ntmsapi.dll

Unicode and ANSI names

EjectDiskFromSADriveW (Unicode) and EjectDiskFromSADriveA (ANSI)

See Also

Library Control Functions

InjectNtmsMedia

EjectNtmsMedia

 

 

Send comments about this topic to Microsoft

Build date: 6/9/2011