IoDeleteDevice 関数 (wdm.h)
IoDeleteDevice ルーチンは、基になるデバイスがシステムから削除された場合などに、システムからデバイス オブジェクトを削除します。
構文
void IoDeleteDevice(
[in] PDEVICE_OBJECT DeviceObject
);
パラメーター
[in] DeviceObject
削除するデバイス オブジェクトへのポインター。
戻り値
何一つ
備考
PnP IRP_MN_REMOVE_DEVICE 要求を処理する場合、PnP ドライバーは IoDeleteDevice 呼び出して、関連付けられているデバイス オブジェクトを削除します。 詳細については、「IRP_MN_REMOVE_DEVICE要求 の処理の」を参照してください。
レガシ ドライバーは、アンロードされている場合、またはその DriverEntry ルーチンで、物理デバイスを適切に初期化できないなどの致命的な初期化エラーが発生したときに、このルーチンを呼び出す必要があります。 このルーチンは、ドライバーがデバイスを動的に再構成するときにも呼び出されます。 たとえば、ディスクを再パーティション分割するために呼び出されたディスク ドライバーは、IoDeleteDevice 呼び出して、置き換えられるパーティションを表すデバイス オブジェクトを破棄します。
ドライバーは、IoDeleteDevice を呼び出す前に、ドライバーがデバイス拡張機能で記憶域を提供した特定のリソース解放する必要があります。 たとえば、ドライバーが割り込みオブジェクトへのポインターをデバイス拡張機能に格納する場合は、IoDeleteDevice を呼び出す前 IoDisconnectInterrupt呼び出す必要があります。
ドライバーは、特定のデバイス オブジェクト 1 回だけ IoDeleteDevice を呼び出すことができます。
ドライバーが IoDeleteDevice 呼び出すと、I/O マネージャーは、未処理の参照がない場合、ターゲット デバイス オブジェクトを削除します。 ただし、未処理の参照が残っている場合、I/O マネージャーは、デバイス オブジェクトを "削除保留中" としてマークし、参照が解放されたときにデバイス オブジェクトを削除します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI コンプライアンス規則 を する | DeleteDevice(wdm), HwStorPortProhibitedDDDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm) |
関連項目
IoCreateDevice の