甘えているといわれるかもしれないけど、
宣言の方法を教えていただけませんかね。

引数の数はあってるはず。多分宣言時の型が間違っているのだろうけど

http://www.pinvoke.net/default.aspx/kernel32.deviceiocontrol

上のサイトのvb signatureを引用して
marshal.allocglobalでポインタに必要な配列分のメモリを割り当てて
実行して結果をとるというもの。

64bit win8.1では動くこともあった。
32bit win8では動かず。