to たろさん
WinNT系とWin95/98系でデバイスにアクセスする方法が異なりますが、
Win32APIのDeviceIoControl関数をうまいこと使うと操作できます。
以下のサンプルはNT系用で、エラー処理もなく、AドライブにFDがあることが
前提なスクリプトですが参考までにどうぞ。(^_^;
#include "kernel32.as"
#const null 0
// デバイスをオープン(決め打ち)
device = "\\\\.\\A:"
//#const GENERIC_READ $80000000
//#const FILE_SHARE_READ $00000001
//#const OPEN_EXISTING $00000003
//#const FILE_ATTRIBUTE_NORMAL $00000080
CreateFile varptr(device), $80000000, $1, null, $3, $80, null
hDevice = stat
ret = 0
// ボリュームをロック
//#const FSCTL_LOCK_VOLUME $00090018
DeviceIoControl hDevice, $90018, null, 0, null, 0, varptr(ret), null
// 物理ディスクのジオメトリ情報を取得
//#const IOCTL_DISK_GET_DRIVE_GEOMETRY $00070000
dim diskGeo, 6
DeviceIoControl hDevice, $70000, null, 0, varptr(diskGeo), 24, varptr(ret), null
// 1セクタ読み込んでみる
sdim buf, diskGeo(5) + 1
retSize = 0
ReadFile hDevice, varptr(buf), diskGeo(5), varptr(retSize), null
// ボリュームのロックを解除
//#const FSCTL_UNLOCK_VOLUME $0009001C
DeviceIoControl hDevice, $9001C, null, 0, null, 0, varptr(ret), null
// 後始末
CloseHandle hDevice
// OEMラベルを見てみる
mes "OEM ver : "+ strmid(buf, $3, 8)