InjectNtmsMedia Function
[Removable Storage Manager is no longer available as of Windows 7 and Windows Server 2008 R2.]
The InjectNtmsMedia function allows media to be inserted into the port of the specified library. If the library is busy, RSM queues InjectNtmsMedia and returns success.
Syntax
DWORD InjectNtmsMedia(
__in HANDLE hSession,
__in LPNTMS_GUID lpLibraryId,
__out LPNTMS_GUID lpInjectOperation,
__in DWORD dwAction
);
Parameters
hSession [in]
Handle to the session returned by the OpenNtmsSession function.lpLibraryId [in]
Unique identifier of a library object.lpInjectOperation [out]
GUID of the insert library operation. If dwAction is NTMS_INJECT_START, this parameter receives the GUID for the operation. If dwAction is NTMS_INJECT_STOP, this parameter must be set to the GUID for the operation to be stopped.dwAction [in]
This parameter can be one of the following values.Value Meaning NTMS_INJECT_START Start the insert operation with a port. Media is repeatedly inserted until the time-out event occurs or the function is called again with NTMS_INJECT_STOP.
NTMS_INJECT_STOP Terminate the insertion process prior to the time-out event lapsing.
NTMS_INJECT_RETRACT Direct the library to retract the insert/eject port and check for media placed there by the operator.
NTMS_INJECT_START_MANY Direct the insert/eject port to open continually and check for media placed there by the operator. If a medium is found, the insert/eject port is reopened to receive more media.
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 action was performed on an operation ID that was not valid. |
ERROR_INVALID_PARAMETER | The library ID or operation ID pointer is missing. |
ERROR_LIBRARY_OFFLINE | The library ID refers to an offline library that cannot eject media. |
ERROR_NOT_ENOUGH_MEMORY | There was an allocation failure during processing. |
ERROR_SUCCESS | The insert is queued. |
Remarks
This function returns to the application as soon as the insert request is queued.
If the library specified by the InjectNtmsMedia function does not have a port, use the AccessNtmsLibraryDoor function to insert and eject media.
This function cannot be used with the offline library.
Insert begins the process of inserting media into a library. Because libraries vary on the functionality of the NTMS_IEPORT object, each device may operate slightly differently. The following steps describe how RSM generally handles an inject:
To insert media into a library
- Allow/unlock/extend the NTMS_IEPORT.
- Poll for a full NTMS_IEPORT, a retracted NTMS_IEPORT, a Stop Inject command, or a time-out value. If none of these have occurred, continue to wait. (Multi-cartridge insert/eject ports are not scanned for full status.)
- When one of the preceding events occurs, the NTMS_IEPORT is locked, each medium in the NTMS_IEPORT is moved to a slot, and an identify medium command is queued for each medium.
If there are not enough slots for the media in the NTMS_IEPORT object, the media remains in the NTMS_IEPORT object and an Operator Request is posted to have media removed from the library.
If there are no free slots, the InjectNtmsMedia function receives an error.
Requirements
Minimum supported client |
Windows 2000 Professional |
Minimum supported server |
Windows 2000 Server |
End of client support |
Windows Vista |
End of server support |
Windows Server 2008 |
Header |
Ntmsapi.h |
Library |
Ntmsapi.lib |
DLL |
Ntmsapi.dll |
See Also
Send comments about this topic to Microsoft
Build date: 6/9/2011