超初心者ですがお願いします。

I/Oに読み書きするのに、まずポートを開く関数を作って、そのなかで
HANDLE hIOport = CreateFile();
とかやってハンドルを取り出しますよね。

このハンドルを今度、書き込みとか読み込みとかする関数に受け渡すのは
どうやるのが定石なんですか?

なんか、WinProcとかに受け渡すのがよくわからなくて、結局グローバルで
宣言して使ってしまってるんですが、それでも動くからいいんですかね?

そこら辺が分かるようなコーディングの例とかあったら教えてください。